19#include "CLHEP/Units/PhysicalConstants.h"
21#include <G4EmProcessSubType.hh>
22#include <G4ParticleDefinition.hh>
23#include <G4SystemOfUnits.hh>
25#include <G4VProcess.hh>
126 for (G4int i = 0; i <
kTOFMAX; i++) {
134 : fCutVector(right.fCutVector.size()), fDeltaRaysOn(right.fDeltaRaysOn)
158 if (
this == &right)
return *
this;
169 for (G4int i = 0; i <=
kDM; ++i) {
187 "TG4G3CutVector",
"operator[]",
"Index out of the vector scope");
301 std::ostringstream tmpStream;
303 std::strstream tmpStream;
306 tmpStream <<
" G3 cut vector:" << G4endl;
308 tmpStream <<
" Delta rays On" << G4endl;
310 tmpStream <<
" Delta rays Off" << G4endl;
313 for (G4int i = 0; i <
kTOFMAX; i++) {
329 return tmpStream.str();
353 if (track.GetCurrentStepNumber() == 1 &&
354 track.GetCreatorProcess() !=
nullptr &&
355 track.GetCreatorProcess()->GetProcessSubType() == fBremsstrahlung) {
368 auto processName = track.GetCreatorProcess()->GetProcessName();
369 if (processName ==
"eBrem") {
372 else if (processName ==
"muBrems" || processName ==
"hBrems") {
401 if (track.GetCurrentStepNumber() == 1 &&
402 track.GetCreatorProcess() !=
nullptr &&
403 track.GetCreatorProcess()->GetProcessSubType() == fIonisation ) {
421 auto processName = track.GetCreatorProcess()->GetProcessName();
422 if (processName ==
"eIoni") {
425 else if (processName ==
"muIoni") {
441 const G4Track& )
const
450 const G4Track& )
const
Definition of the TG4G3CutVector class.
Definition of the TG4G3Defaults class.
Definition of the TG4Globals class and basic container types.
Vector of kinetic energy cut values with convenient set/get methods.
std::array< G4bool, 4 > fApplyBDCut
flag set if [B/D]CUT[E/M] cut is different from CUT[ELE/GAM]
G4bool fIsCut
flag if any value is set
G4double GetMinEkineForChargedHadron(const G4Track &track) const
static TG4G3Cut GetCut(const G4String &cutName)
TG4doubleVector fCutVector
vector of kinetic energy cut values
G4double GetMinEtotPair() const
static G4double Tolerance()
static TG4StringVector fgCutNameVector
vector of cut parameters names
static const G4double fgkDCUTMOff
cut for delta rays by mu (if off)
static G4bool CheckCutValue(TG4G3Cut cut, G4double value)
std::array< G4bool, 4 > fIsBDCut
flag to prevent overwiting [B/D]CUT[E/M] cut if set by user
G4double operator[](G4int index) const
G4double GetMinEkineForGamma(const G4Track &track) const
static const G4String & GetCutName(TG4G3Cut cut)
G4double GetMinEkineForMuon(const G4Track &track) const
G4double GetMinEkineForNeutralHadron(const G4Track &track) const
static const G4double fgkDCUTEOff
cut for delta rays by e- (if off)
G4bool fDeltaRaysOn
delta rays process control
TG4G3CutVector & operator=(const TG4G3CutVector &right)
G4double GetMinEkineForElectron(const G4Track &track) const
static void FillCutNameVector()
void SetCut(TG4G3Cut cut, G4double cutValue)
static const G4double fgkTolerance
tolerance for comparing cuts
static TG4G3Defaults * Instance()
G4double CutValue(G4int cut) const
static void Exception(const TString &className, const TString &methodName, const TString &text)
std::vector< G4String > TG4StringVector
TG4G3Cut
Enumeration for G3 types of kinetic energy cuts.
@ kNoG3Cuts
Invalid value.