ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
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
;
54
class
G4VSensitiveDetector
;
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'
61
class
G4UserSteppingAction
;
62
class
G4StepPoint
;
63
#include "
G4TouchableHandle.hh
"
64
class
G4VParticleChange
;
65
#include "
G4ForceCondition.hh
"
//enum 'track'
66
#include "
G4GPILSelection.hh
"
//enum 'track'
67
68
69
class
G4VSteppingVerbose
70
{
71
// Constructor/Destructor
72
protected
:
// to force 'singleton'
73
G4VSteppingVerbose
();
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);
84
static
G4VSteppingVerbose
*
GetInstance
();
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
:
109
G4SteppingManager
*
fManager
;
110
111
G4UserSteppingAction
*
fUserSteppingAction
;
112
113
G4double
PhysicalStep
;
114
G4double
GeometricalStep
;
115
G4double
CorrectedStep
;
116
G4bool
PreStepPointIsGeom
;
117
G4bool
FirstStep
;
118
G4StepStatus
fStepStatus
;
119
120
G4double
TempInitVelocity
;
121
G4double
TempVelocity
;
122
G4double
Mass
;
123
124
G4double
sumEnergyChange
;
125
126
G4VParticleChange
*
fParticleChange
;
127
G4Track
*
fTrack
;
128
G4TrackVector
*
fSecondary
;
129
G4Step
*
fStep
;
130
G4StepPoint
*
fPreStepPoint
;
131
G4StepPoint
*
fPostStepPoint
;
132
133
G4VPhysicalVolume
*
fCurrentVolume
;
134
G4VSensitiveDetector
*
fSensitive
;
135
G4VProcess
*
fCurrentProcess
;
136
// The pointer to the process of which DoIt or
137
// GetPhysicalInteractionLength has been just executed.
138
139
140
G4ProcessVector
*
fAtRestDoItVector
;
141
G4ProcessVector
*
fAlongStepDoItVector
;
142
G4ProcessVector
*
fPostStepDoItVector
;
143
144
G4ProcessVector
*
fAtRestGetPhysIntVector
;
145
G4ProcessVector
*
fAlongStepGetPhysIntVector
;
146
G4ProcessVector
*
fPostStepGetPhysIntVector
;
147
148
size_t
MAXofAtRestLoops
;
149
size_t
MAXofAlongStepLoops
;
150
size_t
MAXofPostStepLoops
;
151
152
G4double
currentMinimumStep
;
153
G4double
numberOfInteractionLengthLeft
;
154
155
size_t
fAtRestDoItProcTriggered
;
156
size_t
fAlongStepDoItProcTriggered
;
157
size_t
fPostStepDoItProcTriggered
;
158
159
G4int
fN2ndariesAtRestDoIt
;
160
G4int
fN2ndariesAlongStepDoIt
;
161
G4int
fN2ndariesPostStepDoIt
;
162
// These are the numbers of secondaries generated by the process
163
// just executed.
164
165
G4Navigator
*
fNavigator
;
166
167
G4int
verboseLevel
;
168
169
typedef
std::vector<G4int>
170
G4SelectedAtRestDoItVector
;
171
typedef
std::vector<G4int>
172
G4SelectedAlongStepDoItVector
;
173
typedef
std::vector<G4int>
174
G4SelectedPostStepDoItVector
;
175
G4SelectedAtRestDoItVector
*
fSelectedAtRestDoItVector
;
176
G4SelectedAlongStepDoItVector
*
fSelectedAlongStepDoItVector
;
177
G4SelectedPostStepDoItVector
*
fSelectedPostStepDoItVector
;
178
179
G4double
fPreviousStepSize
;
180
181
G4TouchableHandle
fTouchableHandle
;
182
183
G4SteppingControl
StepControlFlag
;
184
185
G4double
physIntLength
;
186
G4ForceCondition
fCondition
;
187
G4GPILSelection
fGPILSelection
;
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
geant4
tree
geant4-10.6-release
source
tracking
include
G4VSteppingVerbose.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:53
using
1.8.2 with
ECCE GitHub integration