CMS 3D CMS Logo

NuclearInteractionFTFSimulator.h
Go to the documentation of this file.
1 #ifndef FastSimulation_MaterialEffects_NuclearInteractionFTFSimulator_H
2 #define FastSimulation_MaterialEffects_NuclearInteractionFTFSimulator_H
3 
17 
18 #include "G4Nucleus.hh"
19 #include "G4HadProjectile.hh"
20 #include "G4LorentzVector.hh"
21 #include "G4ThreeVector.hh"
22 
23 class ParticlePropagator;
25 class G4ParticleDefinition;
26 class G4Track;
27 class G4Step;
28 class G4TheoFSGenerator;
29 class G4FTFModel;
30 class G4ExcitedStringDecay;
31 class G4LundStringFragmentation;
32 class G4GeneratorPrecompoundInterface;
33 class G4CascadeInterface;
34 class G4DiffuseElastic;
35 class G4PhysicsLogVector;
36 
37 static const int numHadrons = 30;
38 static const int npoints = 21;
39 
41 public:
43  NuclearInteractionFTFSimulator(unsigned int distAlgo, double distCut, double elimit, double eth);
44 
47 
48 private:
51 
52  void saveDaughter(ParticlePropagator& Particle, const G4LorentzVector& lv, int pdgid);
53 
54  double distanceToPrimary(const RawParticle& Particle, const RawParticle& aDaughter) const;
55 
56  static const G4ParticleDefinition* theG4Hadron[numHadrons];
57  static int theId[numHadrons];
58  G4PhysicsLogVector* vect;
59 
60  G4TheoFSGenerator* theHadronicModel;
61  G4FTFModel* theStringModel;
62  G4ExcitedStringDecay* theStringDecay;
63  G4LundStringFragmentation* theLund;
64  G4GeneratorPrecompoundInterface* theCascade;
65 
66  G4CascadeInterface* theBertiniCascade;
67  G4DiffuseElastic* theDiffuseElastic;
68 
69  G4Step* dummyStep;
70  G4Track* currTrack;
71  const G4ParticleDefinition* currParticle;
72 
73  G4Nucleus targetNucleus;
74  G4HadProjectile theProjectile;
75  G4LorentzVector curr4Mom;
76  G4ThreeVector vectProj;
77  G4ThreeVector theBoost;
78 
81 
82  double theDistCut;
83  double distMin;
84 
87 
88  int currIdx;
89  size_t index;
90  unsigned int theDistAlgo;
91 };
92 #endif
NuclearInteractionFTFSimulator::theProjectile
G4HadProjectile theProjectile
Definition: NuclearInteractionFTFSimulator.h:74
npoints
static const int npoints
Definition: NuclearInteractionFTFSimulator.h:38
NuclearInteractionFTFSimulator::theEnergyLimit
double theEnergyLimit
Definition: NuclearInteractionFTFSimulator.h:80
RawParticle
Definition: RawParticle.h:37
NuclearInteractionFTFSimulator::vect
G4PhysicsLogVector * vect
Definition: NuclearInteractionFTFSimulator.h:58
MaterialEffectsSimulator.h
numHadrons
static const int numHadrons
Definition: NuclearInteractionFTFSimulator.h:37
NuclearInteractionFTFSimulator::targetNucleus
G4Nucleus targetNucleus
Definition: NuclearInteractionFTFSimulator.h:73
NuclearInteractionFTFSimulator::NuclearInteractionFTFSimulator
NuclearInteractionFTFSimulator(unsigned int distAlgo, double distCut, double elimit, double eth)
Constructor.
Definition: NuclearInteractionFTFSimulator.cc:205
NuclearInteractionFTFSimulator::theBoost
G4ThreeVector theBoost
Definition: NuclearInteractionFTFSimulator.h:77
NuclearInteractionFTFSimulator::dummyStep
G4Step * dummyStep
Definition: NuclearInteractionFTFSimulator.h:69
NuclearInteractionFTFSimulator::theStringDecay
G4ExcitedStringDecay * theStringDecay
Definition: NuclearInteractionFTFSimulator.h:62
NuclearInteractionFTFSimulator::distanceToPrimary
double distanceToPrimary(const RawParticle &Particle, const RawParticle &aDaughter) const
Definition: NuclearInteractionFTFSimulator.cc:489
NuclearInteractionFTFSimulator::theBertiniCascade
G4CascadeInterface * theBertiniCascade
Definition: NuclearInteractionFTFSimulator.h:66
NuclearInteractionFTFSimulator::theG4Hadron
static const G4ParticleDefinition * theG4Hadron[numHadrons]
Definition: NuclearInteractionFTFSimulator.h:56
NuclearInteractionFTFSimulator::theDistAlgo
unsigned int theDistAlgo
Definition: NuclearInteractionFTFSimulator.h:90
MaterialEffectsSimulator
Definition: MaterialEffectsSimulator.h:25
NuclearInteractionFTFSimulator::currIdx
int currIdx
Definition: NuclearInteractionFTFSimulator.h:88
NuclearInteractionFTFSimulator
Definition: NuclearInteractionFTFSimulator.h:40
NuclearInteractionFTFSimulator::theDiffuseElastic
G4DiffuseElastic * theDiffuseElastic
Definition: NuclearInteractionFTFSimulator.h:67
ParticlePropagator
Definition: ParticlePropagator.h:28
NuclearInteractionFTFSimulator::theCascade
G4GeneratorPrecompoundInterface * theCascade
Definition: NuclearInteractionFTFSimulator.h:64
NuclearInteractionFTFSimulator::compute
void compute(ParticlePropagator &Particle, RandomEngineAndDistribution const *) override
Generate a nuclear interaction according to the probability that it happens.
Definition: NuclearInteractionFTFSimulator.cc:304
NuclearInteractionFTFSimulator::intLengthElastic
double intLengthElastic
Definition: NuclearInteractionFTFSimulator.h:85
NuclearInteractionFTFSimulator::theBertiniLimit
double theBertiniLimit
Definition: NuclearInteractionFTFSimulator.h:79
NuclearInteractionFTFSimulator::theStringModel
G4FTFModel * theStringModel
Definition: NuclearInteractionFTFSimulator.h:61
NuclearInteractionFTFSimulator::currTrack
G4Track * currTrack
Definition: NuclearInteractionFTFSimulator.h:70
NuclearInteractionFTFSimulator::theId
static int theId[numHadrons]
Definition: NuclearInteractionFTFSimulator.h:57
NuclearInteractionFTFSimulator::index
size_t index
Definition: NuclearInteractionFTFSimulator.h:89
NuclearInteractionFTFSimulator::distMin
double distMin
Definition: NuclearInteractionFTFSimulator.h:83
NuclearInteractionFTFSimulator::vectProj
G4ThreeVector vectProj
Definition: NuclearInteractionFTFSimulator.h:76
NuclearInteractionFTFSimulator::currParticle
const G4ParticleDefinition * currParticle
Definition: NuclearInteractionFTFSimulator.h:71
NuclearInteractionFTFSimulator::~NuclearInteractionFTFSimulator
~NuclearInteractionFTFSimulator() override
Default Destructor.
Definition: NuclearInteractionFTFSimulator.cc:297
NuclearInteractionFTFSimulator::theHadronicModel
G4TheoFSGenerator * theHadronicModel
Definition: NuclearInteractionFTFSimulator.h:60
NuclearInteractionFTFSimulator::theLund
G4LundStringFragmentation * theLund
Definition: NuclearInteractionFTFSimulator.h:63
MaterialEffects_cfi.distCut
distCut
Definition: MaterialEffects_cfi.py:128
Particle
Definition: Particle.py:1
MaterialEffects_cfi.distAlgo
distAlgo
Definition: MaterialEffects_cfi.py:127
EgammaValidation_cff.pdgid
pdgid
Definition: EgammaValidation_cff.py:30
NuclearInteractionFTFSimulator::saveDaughter
void saveDaughter(ParticlePropagator &Particle, const G4LorentzVector &lv, int pdgid)
Definition: NuclearInteractionFTFSimulator.cc:471
NuclearInteractionFTFSimulator::theDistCut
double theDistCut
Definition: NuclearInteractionFTFSimulator.h:82
NuclearInteractionFTFSimulator::intLengthInelastic
double intLengthInelastic
Definition: NuclearInteractionFTFSimulator.h:86
NuclearInteractionFTFSimulator::curr4Mom
G4LorentzVector curr4Mom
Definition: NuclearInteractionFTFSimulator.h:75
RandomEngineAndDistribution
Definition: RandomEngineAndDistribution.h:18