ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4VSteppingVerbose.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4VSteppingVerbose.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 //
28 //---------------------------------------------------------------
29 //
30 // G4VSteppingVerbose.hh
31 //
32 // class description:
33 // This class manages the vervose outputs in G4SteppingManager.
34 // The instance should be singleton. Users can inherit this
35 // class to make their own verbosing class.
36 //
37 // Contact:
38 // Questions and comments to this code should be sent to
39 // Katsuya Amako (e-mail: Katsuya.Amako@kek.jp)
40 // Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp)
41 //
42 //---------------------------------------------------------------
43 
44 #ifndef G4VSteppingVerbose_h
45 #define G4VSteppingVerbose_h
46 
47 class G4SteppingManager;
48 
49 #include "globals.hh" // Include from 'global'
50 #include <vector>
51 
52 class G4Navigator;
53 class G4VPhysicalVolume;
55 #include "G4VProcess.hh"
56 class G4ProcessVector;
57 class G4SteppingManager; // Include from 'tracking'
58 class G4Track;
59 #include "G4TrackVector.hh" // Include from 'tracking'
60 #include "G4StepStatus.hh" // Include from 'track'
62 class G4StepPoint;
63 #include "G4TouchableHandle.hh"
64 class G4VParticleChange;
65 #include "G4ForceCondition.hh" //enum 'track'
66 #include "G4GPILSelection.hh" //enum 'track'
67 
68 
70 {
71 // Constructor/Destructor
72 protected: // to force 'singleton'
74 public:
75  virtual ~G4VSteppingVerbose();
76  //
77 protected:
78  static G4ThreadLocal G4VSteppingVerbose* fInstance;// pointer to the instance
79  static G4ThreadLocal G4int Silent; //flag for verbosity
80  static G4ThreadLocal G4int SilentStepInfo; //another flag for verbosity
81 public: // with description
82 // static methods to set/get the object's pointer
83  static void SetInstance(G4VSteppingVerbose* Instance);
85  static G4int GetSilent();
86  static void SetSilent(G4int fSilent);
87  static G4int GetSilentStepInfo();
88  static void SetSilentStepInfo(G4int fSilent);
89 // these method are invoked in the SteppingManager
90  virtual void NewStep() = 0;
91  void CopyState();
92  void SetManager(G4SteppingManager* const);
93  virtual void AtRestDoItInvoked() = 0;
94  virtual void AlongStepDoItAllDone() = 0;
95  virtual void PostStepDoItAllDone() = 0;
96  virtual void AlongStepDoItOneByOne() = 0;
97  virtual void PostStepDoItOneByOne() = 0;
98  virtual void StepInfo() = 0;
99  virtual void TrackingStarted() = 0;
100  virtual void DPSLStarted() = 0;
101  virtual void DPSLUserLimit() = 0;
102  virtual void DPSLPostStep() = 0;
103  virtual void DPSLAlongStep() = 0;
104  virtual void VerboseTrack() = 0;
105  virtual void VerboseParticleChange() = 0;
106  // Member data
107 
108 protected:
110 
112 
119 
123 
125 
132 
136  // The pointer to the process of which DoIt or
137  // GetPhysicalInteractionLength has been just executed.
138 
139 
143 
147 
151 
154 
158 
162  // These are the numbers of secondaries generated by the process
163  // just executed.
164 
166 
168 
169  typedef std::vector<G4int>
171  typedef std::vector<G4int>
173  typedef std::vector<G4int>
178 
180 
182 
184 
188  // Above three variables are for the method
189  // DefinePhysicalStepLength(). To pass these information to
190  // the method Verbose, they are kept at here. Need a more
191  // elegant mechanism.
192 
193 
194 };
195 #endif