File indexing completed on 2024-04-06 12:30:13
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef SimG4Core_Application_CMSSimEventManager_hh
0009 #define SimG4Core_Application_CMSSimEventManager_hh 1
0010
0011 #include <vector>
0012 #include "globals.hh"
0013 #include "G4Track.hh"
0014 #include "G4TrackVector.hh"
0015
0016 namespace edm {
0017 class ParameterSet;
0018 }
0019
0020 class G4Event;
0021 class EventAction;
0022 class StackingAction;
0023 class TrackingAction;
0024 class G4UserSteppingAction;
0025 class G4SDManager;
0026 class G4StateManager;
0027 class G4PrimaryTransformer;
0028 class G4TrackingManager;
0029 class G4Navigator;
0030
0031 class CMSSimEventManager {
0032 public:
0033 CMSSimEventManager(const edm::ParameterSet& iConfig);
0034 ~CMSSimEventManager();
0035
0036 void InitialiseWorker();
0037
0038
0039 void ProcessOneEvent(G4Event* anEvent);
0040
0041
0042 void AbortCurrentEvent();
0043
0044 void SetUserAction(EventAction* ptr);
0045 void SetUserAction(StackingAction* ptr);
0046 void SetUserAction(TrackingAction* ptr);
0047 void SetUserAction(G4UserSteppingAction* ptr);
0048
0049 CMSSimEventManager(const CMSSimEventManager& right) = delete;
0050 CMSSimEventManager& operator=(const CMSSimEventManager& right) = delete;
0051
0052 private:
0053 void StackTracks(G4TrackVector*, bool IDisSet);
0054
0055 G4StateManager* m_stateManager;
0056 G4TrackingManager* m_defTrackManager;
0057 G4SDManager* m_sdManager;
0058 G4PrimaryTransformer* m_primaryTransformer;
0059 G4Navigator* m_navigator;
0060
0061 EventAction* m_eventAction;
0062 StackingAction* m_stackingAction;
0063 TrackingAction* m_trackingAction;
0064
0065 G4int trackID_{0};
0066 G4int verbose_;
0067
0068 std::vector<G4Track*> m_tracks;
0069 };
0070
0071 #endif