CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 #include <vector>
24 
25 class ParticlePropagator;
27 class G4ParticleDefinition;
28 class G4Track;
29 class G4Step;
30 class G4TheoFSGenerator;
31 class G4FTFModel;
32 class G4ExcitedStringDecay;
33 class G4LundStringFragmentation;
34 class G4GeneratorPrecompoundInterface;
35 
37 {
38 public:
39 
41  NuclearInteractionFTFSimulator(unsigned int distAlgo, double distCut);
42 
45 
46 private:
47 
50 
51  void saveDaughter(ParticlePropagator& Particle, const G4LorentzVector& lv, int pdgid);
52 
53  double distanceToPrimary(const RawParticle& Particle,
54  const RawParticle& aDaughter) const;
55 
56  std::vector<const G4ParticleDefinition*> theG4Hadron;
57  std::vector<double> theNuclIntLength;
58  std::vector<int> theId;
59 
60  G4TheoFSGenerator* theHadronicModel;
61  G4FTFModel* theStringModel;
62  G4ExcitedStringDecay* theStringDecay;
63  G4LundStringFragmentation* theLund;
64  G4GeneratorPrecompoundInterface* theCascade;
65 
66  G4Step* dummyStep;
67  G4Track* currTrack;
68  const G4ParticleDefinition* currParticle;
69 
70  G4Nucleus targetNucleus;
71  G4HadProjectile theProjectile;
72  G4LorentzVector curr4Mom;
73  G4ThreeVector vectProj;
74  G4ThreeVector theBoost;
75 
77 
78  double theDistCut;
79  double distMin;
80 
82  int currIdx;
83  unsigned int theDistAlgo;
84 };
85 #endif
void compute(ParticlePropagator &Particle, RandomEngineAndDistribution const *)
Generate a nuclear interaction according to the probability that it happens.
void saveDaughter(ParticlePropagator &Particle, const G4LorentzVector &lv, int pdgid)
std::vector< const G4ParticleDefinition * > theG4Hadron
double distanceToPrimary(const RawParticle &Particle, const RawParticle &aDaughter) const
const G4ParticleDefinition * currParticle
G4GeneratorPrecompoundInterface * theCascade
NuclearInteractionFTFSimulator(unsigned int distAlgo, double distCut)
Constructor.