Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:29:50

0001 #ifndef SimG4Core_CMSSteppingVerbose_h
0002 #define SimG4Core_CMSSteppingVerbose_h
0003 
0004 //---------------------------------------------------------------
0005 //
0006 // CMSSteppingVerbose is intend to replace Geant4 default stepping
0007 //                    verbosity class in order to keep necessary
0008 //                    verbosity options when G4VERBOSE flag is disabled.
0009 //                    The goal is to provide easy way to print
0010 //                    per event, per track, per step.
0011 //
0012 // V.Ivanchenko 10.06.2016
0013 //
0014 //---------------------------------------------------------------
0015 
0016 #include "globals.hh"
0017 #include <vector>
0018 
0019 class G4Event;
0020 class G4Track;
0021 class G4Step;
0022 class G4SteppingManager;
0023 class G4SteppingVerbose;
0024 
0025 class CMSSteppingVerbose {
0026 public:
0027   explicit CMSSteppingVerbose(
0028       G4int verb, G4double ekin, std::vector<G4int>& evtNum, std::vector<G4int>& primV, std::vector<G4int>& trNum);
0029   ~CMSSteppingVerbose();
0030 
0031   void BeginOfEvent(const G4Event*);
0032   void TrackStarted(const G4Track*, bool isKilled);
0033   void TrackEnded(const G4Track*) const;
0034   void StackFilled(const G4Track*, bool isKilled) const;
0035   void NextStep(const G4Step*, const G4SteppingManager* ptr, bool isKilled) const;
0036 
0037 private:
0038   G4bool m_PrintEvent;
0039   G4bool m_PrintTrack;
0040   G4bool m_smInitialized;
0041   G4int m_verbose;
0042   G4int m_nEvents;
0043   G4int m_nVertex;
0044   G4int m_nTracks;
0045   std::vector<G4int> m_EventNumbers;
0046   std::vector<G4int> m_PrimaryVertex;
0047   std::vector<G4int> m_TrackNumbers;
0048   G4double m_EkinThreshold;
0049   G4SteppingVerbose* m_g4SteppingVerbose;
0050 };
0051 
0052 #endif