Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 10:04:32

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() = default;
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   void stopEventPrint();
0038   void setVerbose(int val) { m_verbose = val; }
0039 
0040 private:
0041   G4bool m_PrintEvent;
0042   G4bool m_PrintTrack;
0043   G4bool m_smInitialized;
0044   G4int m_verbose;
0045   G4int m_nEvents;
0046   G4int m_nVertex;
0047   G4int m_nTracks;
0048   std::vector<G4int> m_EventNumbers;
0049   std::vector<G4int> m_PrimaryVertex;
0050   std::vector<G4int> m_TrackNumbers;
0051   G4double m_EkinThreshold;
0052   G4SteppingVerbose* m_g4SteppingVerbose;
0053 };
0054 
0055 #endif