Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:27

0001 #ifndef SimG4Core_PhysicsLists_CMSEmStandardPhysicsTrackingManager_h
0002 #define SimG4Core_PhysicsLists_CMSEmStandardPhysicsTrackingManager_h
0003 
0004 #include "G4VTrackingManager.hh"
0005 #include "globals.hh"
0006 #include "G4MscStepLimitType.hh"
0007 
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 
0010 class G4eMultipleScattering;
0011 class G4CoulombScattering;
0012 class G4eIonisation;
0013 class G4eBremsstrahlung;
0014 class G4eplusAnnihilation;
0015 class G4ElectronNuclearProcess;
0016 class G4PositronNuclearProcess;
0017 
0018 class G4GammaGeneralProcess;
0019 
0020 class CMSEmStandardPhysicsTrackingManager : public G4VTrackingManager {
0021 public:
0022   CMSEmStandardPhysicsTrackingManager(const edm::ParameterSet &p);
0023   ~CMSEmStandardPhysicsTrackingManager() override;
0024 
0025   void BuildPhysicsTable(const G4ParticleDefinition &) override;
0026 
0027   void PreparePhysicsTable(const G4ParticleDefinition &) override;
0028 
0029   void HandOverOneTrack(G4Track *aTrack) override;
0030 
0031 private:
0032   void TrackElectron(G4Track *aTrack);
0033   void TrackPositron(G4Track *aTrack);
0034   void TrackGamma(G4Track *aTrack);
0035 
0036   G4double fRangeFactor;
0037   G4double fGeomFactor;
0038   G4double fSafetyFactor;
0039   G4double fLambdaLimit;
0040   G4MscStepLimitType fStepLimitType;
0041 
0042   struct {
0043     G4eMultipleScattering *msc;
0044     G4eIonisation *ioni;
0045     G4eBremsstrahlung *brems;
0046     G4CoulombScattering *ss;
0047     G4ElectronNuclearProcess *nuc;
0048   } electron;
0049 
0050   struct {
0051     G4eMultipleScattering *msc;
0052     G4eIonisation *ioni;
0053     G4eBremsstrahlung *brems;
0054     G4eplusAnnihilation *annihilation;
0055     G4CoulombScattering *ss;
0056     G4PositronNuclearProcess *nuc;
0057   } positron;
0058 
0059   G4GammaGeneralProcess *gammaProc;
0060 
0061   static CMSEmStandardPhysicsTrackingManager *masterTrackingManager;
0062 };
0063 
0064 #endif