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
G4VITSteppingVerbose.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4VITSteppingVerbose.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
* G4VITSteppingVerbose.hh
28
*
29
* Created on: Jun 22, 2015
30
* Author: mkaramit
31
*/
32
33
#ifndef SOURCE_PROCESSES_ELECTROMAGNETIC_DNA_MANAGEMENT_INCLUDE_G4VITSTEPPINGVERBOSE_HH_
34
#define SOURCE_PROCESSES_ELECTROMAGNETIC_DNA_MANAGEMENT_INCLUDE_G4VITSTEPPINGVERBOSE_HH_
35
36
#include "
globals.hh
"
// Include from 'global'
37
#include <vector>
38
39
class
G4Navigator
;
40
class
G4VPhysicalVolume
;
41
class
G4VSensitiveDetector
;
42
#include "
G4VProcess.hh
"
43
class
G4ProcessVector
;
44
class
G4Track
;
45
46
//#include "G4TrackVector.hh" // Include from 'tracking'
47
#include "
G4StepStatus.hh
"
// Include from 'track'
48
class
G4UserSteppingAction
;
49
class
G4StepPoint
;
50
#include "
G4TouchableHandle.hh
"
51
52
#include "
G4ForceCondition.hh
"
//enum 'track'
53
#include "
G4GPILSelection.hh
"
//enum 'track'
54
#include "
G4ITStepProcessor.hh
"
55
#include "
G4VITProcess.hh
"
56
57
class
G4VParticleChange
;
58
class
G4ITStepProcessorState
;
59
//class ProcessGeneralInfo;
60
//class G4VPhysicalVolume;
61
//class G4ProcessVector;
62
63
#include <
G4UImessenger.hh
>
64
65
class
G4UIcmdWithAnInteger
;
66
67
class
G4VITSteppingVerbose
:
G4UImessenger
68
{
69
public
:
70
G4VITSteppingVerbose
();
71
virtual
~G4VITSteppingVerbose
();
72
73
public
:
74
75
virtual
void
TrackingStarted
(
G4Track
*
track
);
76
virtual
void
TrackingEnded
(
G4Track
* track);
77
78
virtual
void
DoItStarted
() = 0;
79
virtual
void
PreStepVerbose
(
G4Track
*) = 0;
80
virtual
void
PostStepVerbose
(
G4Track
*) = 0;
81
82
// these methods are invoked in the SteppingManager
83
virtual
void
NewStep
() = 0;
84
void
CopyState
();
85
86
virtual
void
StepInfoForLeadingTrack
() = 0;
87
88
virtual
void
AtRestDoItInvoked
() = 0;
89
virtual
void
AtRestDoItOneByOne
() = 0;
90
91
virtual
void
PostStepDoItAllDone
() = 0;
92
virtual
void
PostStepDoItOneByOne
() = 0;
93
94
virtual
void
AlongStepDoItAllDone
() = 0;
95
virtual
void
AlongStepDoItOneByOne
() = 0;
96
97
virtual
void
StepInfo
() = 0;
98
virtual
void
DPSLStarted
() = 0;
99
virtual
void
DPSLUserLimit
() = 0;
100
virtual
void
DPSLPostStep
() = 0;
101
virtual
void
DPSLAlongStep
() = 0;
102
virtual
void
VerboseTrack
() = 0;
103
virtual
void
VerboseParticleChange
() = 0;
104
105
//____________________________________________________________________________
106
107
inline
void
SetVerbose
(
int
flag)
108
{
109
fVerboseLevel
= flag;
110
}
111
112
inline
G4int
GetVerbose
()
113
{
114
return
fVerboseLevel
;
115
}
116
117
//____________________________________________________________________________
118
119
virtual
void
SetNewValue
(
G4UIcommand
* command,
120
G4String
newValue);
121
122
virtual
G4String
GetCurrentValue
(
G4UIcommand
* command);
123
124
125
//____________________________________________________________________________
126
127
void
SetStepProcessor
(
const
G4ITStepProcessor
* stepProcessor)
128
{
129
this->
fpStepProcessor
= stepProcessor;
130
}
131
132
void
TrackBanner
(
G4Track
* track,
const
G4String
&
message
);
133
134
protected
:
135
const
G4ITStepProcessor
*
fpStepProcessor
;
136
137
G4UIcmdWithAnInteger
*
fpVerboseUI
;
138
G4ITStepProcessorState
*
fpState
;
139
const
ProcessGeneralInfo
*
fpProcessGeneralInfo
;
140
141
G4double
PhysicalStep
;
142
G4StepStatus
fStepStatus
;
143
144
const
G4VParticleChange
*
fParticleChange
;
145
const
G4Track
*
fTrack
;
146
const
G4TrackVector
*
fSecondary
;
147
const
G4Step
*
fStep
;
148
G4StepPoint
*
fPreStepPoint
;
149
G4StepPoint
*
fPostStepPoint
;
150
151
const
G4VPhysicalVolume
*
fCurrentVolume
;
152
// G4VSensitiveDetector* fSensitive;
153
const
G4VITProcess
*
fCurrentProcess
;
154
// The pointer to the process of which DoIt or
155
// GetPhysicalInteractionLength has been just executed.
156
157
G4ProcessVector
*
fAtRestDoItVector
;
158
G4ProcessVector
*
fAlongStepDoItVector
;
159
G4ProcessVector
*
fPostStepDoItVector
;
160
161
G4ProcessVector
*
fAtRestGetPhysIntVector
;
162
G4ProcessVector
*
fAlongStepGetPhysIntVector
;
163
G4ProcessVector
*
fPostStepGetPhysIntVector
;
164
165
size_t
MAXofAtRestLoops
;
166
size_t
MAXofAlongStepLoops
;
167
size_t
MAXofPostStepLoops
;
168
169
size_t
fAtRestDoItProcTriggered
;
170
size_t
fPostStepDoItProcTriggered
;
171
172
G4int
fN2ndariesAtRestDoIt
;
173
G4int
fN2ndariesAlongStepDoIt
;
174
G4int
fN2ndariesPostStepDoIt
;
175
// These are the numbers of secondaries generated by the process
176
// just executed.
177
178
// G4Navigator *fNavigator;
179
180
G4int
fVerboseLevel
;
181
182
typedef
std::vector<G4int>
G4SelectedAtRestDoItVector
;
183
typedef
std::vector<G4int>
G4SelectedAlongStepDoItVector
;
184
typedef
std::vector<G4int>
G4SelectedPostStepDoItVector
;
185
G4SelectedAtRestDoItVector
*
fSelectedAtRestDoItVector
;
186
G4SelectedPostStepDoItVector
*
fSelectedPostStepDoItVector
;
187
188
G4double
fPreviousStepSize
;
189
190
G4TouchableHandle
fTouchableHandle
;
191
192
// G4SteppingControl StepControlFlag;
193
194
G4double
physIntLength
;
195
G4ForceCondition
fCondition
;
196
G4GPILSelection
fGPILSelection
;
197
// Above three variables are for the method
198
// DefinePhysicalStepLength(). To pass these information to
199
// the method Verbose, they are kept at here. Need a more
200
// elegant mechanism.
201
};
202
203
#endif
/* SOURCE_PROCESSES_ELECTROMAGNETIC_DNA_MANAGEMENT_INCLUDE_G4VITSTEPPINGVERBOSE_HH_ */
geant4
tree
geant4-10.6-release
source
processes
electromagnetic
dna
management
include
G4VITSteppingVerbose.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:28
using
1.8.2 with
ECCE GitHub integration