CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/SimG4Core/Application/interface/TrackingAction.h

Go to the documentation of this file.
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 #include "G4VSolid.hh"
00009 
00010 class EventAction;
00011 class TrackWithHistory; 
00012 class BeginOfTrack;
00013 class EndOfTrack;
00014 
00015 class TrackingAction : public G4UserTrackingAction
00016 {
00017 public:
00018     TrackingAction(EventAction * ea, const edm::ParameterSet & ps);
00019     virtual ~TrackingAction();
00020     virtual void PreUserTrackingAction(const G4Track * aTrack);
00021     virtual void PostUserTrackingAction(const G4Track * aTrack);
00022     TrackWithHistory * currentTrackWithHistory() { return currentTrack_; }
00023     G4TrackingManager * getTrackManager();
00024 
00025     SimActivityRegistry::BeginOfTrackSignal m_beginOfTrackSignal;
00026     SimActivityRegistry::EndOfTrackSignal m_endOfTrackSignal;
00027 private:
00028     bool isNewPrimary(const G4Track * aTrack);
00029 private:
00030     EventAction * eventAction_;
00031     TrackWithHistory * currentTrack_;
00032     G4VSolid * worldSolid;
00033     bool detailedTiming;
00034     int  trackMgrVerbose;
00035 };
00036 
00037 #endif