CMS 3D CMS Logo

CMSEmStandardPhysicsTrackingManager.h
Go to the documentation of this file.
1 #ifndef SimG4Core_PhysicsLists_CMSEmStandardPhysicsTrackingManager_h
2 #define SimG4Core_PhysicsLists_CMSEmStandardPhysicsTrackingManager_h
3 
4 #include "G4VTrackingManager.hh"
5 #include "globals.hh"
6 #include "G4MscStepLimitType.hh"
7 
9 
10 class G4eMultipleScattering;
11 class G4CoulombScattering;
12 class G4eIonisation;
13 class G4eBremsstrahlung;
14 class G4eplusAnnihilation;
15 class G4ElectronNuclearProcess;
16 class G4PositronNuclearProcess;
17 
19 
20 class CMSEmStandardPhysicsTrackingManager : public G4VTrackingManager {
21 public:
24 
25  void BuildPhysicsTable(const G4ParticleDefinition &) override;
26 
27  void PreparePhysicsTable(const G4ParticleDefinition &) override;
28 
29  void HandOverOneTrack(G4Track *aTrack) override;
30 
31 private:
32  void TrackElectron(G4Track *aTrack);
33  void TrackPositron(G4Track *aTrack);
34  void TrackGamma(G4Track *aTrack);
35 
36  G4double fRangeFactor;
37  G4double fGeomFactor;
38  G4double fSafetyFactor;
39  G4double fLambdaLimit;
40  G4MscStepLimitType fStepLimitType;
41 
42  struct {
43  G4eMultipleScattering *msc;
44  G4eIonisation *ioni;
45  G4eBremsstrahlung *brems;
46  G4CoulombScattering *ss;
47  G4ElectronNuclearProcess *nuc;
48  } electron;
49 
50  struct {
51  G4eMultipleScattering *msc;
52  G4eIonisation *ioni;
53  G4eBremsstrahlung *brems;
54  G4eplusAnnihilation *annihilation;
55  G4CoulombScattering *ss;
56  G4PositronNuclearProcess *nuc;
57  } positron;
58 
60 
62 };
63 
64 #endif
void PreparePhysicsTable(const G4ParticleDefinition &) override
struct CMSEmStandardPhysicsTrackingManager::@1032 electron
struct CMSEmStandardPhysicsTrackingManager::@1033 positron
void BuildPhysicsTable(const G4ParticleDefinition &) override
static CMSEmStandardPhysicsTrackingManager * masterTrackingManager