![]() |
![]() |
00001 #ifndef SimG4Core_TrackingAction_H 00002 #define SimG4Core_TrackingAction_H 00003 00004 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00005 #include "SimG4Core/Notification/interface/SimActivityRegistry.h" 00006 00007 #include "G4UserTrackingAction.hh" 00008 00009 class EventAction; 00010 class TrackWithHistory; 00011 class BeginOfTrack; 00012 class EndOfTrack; 00013 00014 class TrackingAction : public G4UserTrackingAction 00015 { 00016 public: 00017 TrackingAction(EventAction * ea, const edm::ParameterSet & ps); 00018 virtual ~TrackingAction(); 00019 virtual void PreUserTrackingAction(const G4Track * aTrack); 00020 virtual void PostUserTrackingAction(const G4Track * aTrack); 00021 TrackWithHistory * currentTrackWithHistory() { return currentTrack_; } 00022 G4TrackingManager * getTrackManager(); 00023 00024 SimActivityRegistry::BeginOfTrackSignal m_beginOfTrackSignal; 00025 SimActivityRegistry::EndOfTrackSignal m_endOfTrackSignal; 00026 private: 00027 EventAction * eventAction_; 00028 TrackWithHistory * currentTrack_; 00029 bool detailedTiming; 00030 int trackMgrVerbose; 00031 }; 00032 00033 #endif