Geant4  10.01
G4VSteppingVerbose.hh
Go to the documentation of this file.
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 // $Id: G4VSteppingVerbose.hh 66872 2013-01-15 01:25:57Z japost $
28 //
29 //---------------------------------------------------------------
30 //
31 // G4VSteppingVerbose.hh
32 //
33 // class description:
34 // This class manages the vervose outputs in G4SteppingManager.
35 // The instance should be singleton. Users can inherit this
36 // class to make their own verbosing class.
37 //
38 // Contact:
39 // Questions and comments to this code should be sent to
40 // Katsuya Amako (e-mail: Katsuya.Amako@kek.jp)
41 // Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp)
42 //
43 //---------------------------------------------------------------
44 
45 #ifndef G4VSteppingVerbose_h
46 #define G4VSteppingVerbose_h
47 
48 class G4SteppingManager;
49 
50 #include "globals.hh" // Include from 'global'
51 #include <vector>
52 
53 class G4Navigator;
54 class G4VPhysicalVolume;
56 #include "G4VProcess.hh"
57 class G4ProcessVector;
58 class G4SteppingManager; // Include from 'tracking'
59 class G4Track;
60 #include "G4TrackVector.hh" // Include from 'tracking'
61 #include "G4StepStatus.hh" // Include from 'track'
63 class G4StepPoint;
64 #include "G4TouchableHandle.hh"
65 class G4VParticleChange;
66 #include "G4ForceCondition.hh" //enum 'track'
67 #include "G4GPILSelection.hh" //enum 'track'
68 
69 
71 {
72 // Constructor/Destructor
73 protected: // to force 'singleton'
75 public:
76  virtual ~G4VSteppingVerbose();
77  //
78 protected:
79  static G4ThreadLocal G4VSteppingVerbose* fInstance;// pointer to the instance
80  static G4ThreadLocal G4int Silent; //flag for verbosity
81  static G4ThreadLocal G4int SilentStepInfo; //another flag for verbosity
82 public: // with description
83 // static methods to set/get the object's pointer
84  static void SetInstance(G4VSteppingVerbose* Instance);
86  static G4int GetSilent();
87  static void SetSilent(G4int fSilent);
88  static G4int GetSilentStepInfo();
89  static void SetSilentStepInfo(G4int fSilent);
90 // these method are invoked in the SteppingManager
91  virtual void NewStep() = 0;
92  void CopyState();
93  void SetManager(G4SteppingManager* const);
94  virtual void AtRestDoItInvoked() = 0;
95  virtual void AlongStepDoItAllDone() = 0;
96  virtual void PostStepDoItAllDone() = 0;
97  virtual void AlongStepDoItOneByOne() = 0;
98  virtual void PostStepDoItOneByOne() = 0;
99  virtual void StepInfo() = 0;
100  virtual void TrackingStarted() = 0;
101  virtual void DPSLStarted() = 0;
102  virtual void DPSLUserLimit() = 0;
103  virtual void DPSLPostStep() = 0;
104  virtual void DPSLAlongStep() = 0;
105  virtual void VerboseTrack() = 0;
106  virtual void VerboseParticleChange() = 0;
107  // Member data
108 
109 protected:
111 
113 
120 
124 
126 
133 
137  // The pointer to the process of which DoIt or
138  // GetPhysicalInteractionLength has been just executed.
139 
140 
144 
148 
152 
155 
159 
163  // These are the numbers of secondaries generated by the process
164  // just executed.
165 
167 
169 
170  typedef std::vector<G4int>
172  typedef std::vector<G4int>
174  typedef std::vector<G4int>
179 
181 
183 
185 
189  // Above three variables are for the method
190  // DefinePhysicalStepLength(). To pass these information to
191  // the method Verbose, they are kept at here. Need a more
192  // elegant mechanism.
193 
194 
195 };
196 #endif
G4SelectedPostStepDoItVector * fSelectedPostStepDoItVector
virtual void DPSLUserLimit()=0
static G4VSteppingVerbose * GetInstance()
std::vector< G4int > G4SelectedPostStepDoItVector
virtual void PostStepDoItOneByOne()=0
static void SetSilent(G4int fSilent)
std::vector< G4int > G4SelectedAlongStepDoItVector
G4ProcessVector * fAtRestDoItVector
G4ProcessVector * fPostStepDoItVector
virtual void StepInfo()=0
G4VParticleChange * fParticleChange
G4VProcess * fCurrentProcess
G4double numberOfInteractionLengthLeft
G4ProcessVector * fPostStepGetPhysIntVector
virtual void PostStepDoItAllDone()=0
G4SteppingControl
#define G4ThreadLocal
Definition: tls.hh:84
int G4int
Definition: G4Types.hh:78
G4StepStatus
Definition: G4StepStatus.hh:49
G4ProcessVector * fAlongStepGetPhysIntVector
static G4ThreadLocal G4int Silent
G4TouchableHandle fTouchableHandle
void SetManager(G4SteppingManager *const)
G4SteppingManager * fManager
static G4ThreadLocal G4int SilentStepInfo
virtual void DPSLAlongStep()=0
virtual void DPSLPostStep()=0
G4TrackVector * fSecondary
bool G4bool
Definition: G4Types.hh:79
static G4int GetSilentStepInfo()
G4SelectedAtRestDoItVector * fSelectedAtRestDoItVector
G4StepPoint * fPreStepPoint
static G4int GetSilent()
Definition: G4Step.hh:76
G4ProcessVector * fAlongStepDoItVector
G4SteppingControl StepControlFlag
static void SetInstance(G4VSteppingVerbose *Instance)
std::vector< G4Track * > G4TrackVector
virtual void VerboseParticleChange()=0
virtual void AlongStepDoItOneByOne()=0
G4ForceCondition fCondition
virtual void AtRestDoItInvoked()=0
G4ProcessVector * fAtRestGetPhysIntVector
static G4ThreadLocal G4VSteppingVerbose * fInstance
G4StepPoint * fPostStepPoint
G4UserSteppingAction * fUserSteppingAction
G4GPILSelection fGPILSelection
G4SelectedAlongStepDoItVector * fSelectedAlongStepDoItVector
G4VSensitiveDetector * fSensitive
G4VPhysicalVolume * fCurrentVolume
virtual void NewStep()=0
virtual void AlongStepDoItAllDone()=0
double G4double
Definition: G4Types.hh:76
static void SetSilentStepInfo(G4int fSilent)
G4ForceCondition
virtual void VerboseTrack()=0
virtual void DPSLStarted()=0
std::vector< G4int > G4SelectedAtRestDoItVector
G4GPILSelection
virtual void TrackingStarted()=0