Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
source
tracking
include
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 67009 2013-01-29 16:00:21Z gcosmo $
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
;
55
class
G4VSensitiveDetector
;
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'
62
class
G4UserSteppingAction
;
63
class
G4StepPoint
;
64
#include "
G4TouchableHandle.hh
"
65
class
G4VParticleChange
;
66
#include "
G4ForceCondition.hh
"
//enum 'track'
67
#include "
G4GPILSelection.hh
"
//enum 'track'
68
69
70
class
G4VSteppingVerbose
71
{
72
// Constructor/Destructor
73
protected
:
// to force 'singleton'
74
G4VSteppingVerbose
();
75
public
:
76
virtual
~G4VSteppingVerbose
();
77
//
78
protected
:
79
static
G4VSteppingVerbose
*
fInstance
;
// pointer to the instance
80
static
G4int
Silent
;
//flag for verbosity
81
static
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);
85
static
G4VSteppingVerbose
*
GetInstance
();
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
:
110
G4SteppingManager
*
fManager
;
111
112
G4UserSteppingAction
*
fUserSteppingAction
;
113
114
G4double
PhysicalStep
;
115
G4double
GeometricalStep
;
116
G4double
CorrectedStep
;
117
G4bool
PreStepPointIsGeom
;
118
G4bool
FirstStep
;
119
G4StepStatus
fStepStatus
;
120
121
G4double
TempInitVelocity
;
122
G4double
TempVelocity
;
123
G4double
Mass
;
124
125
G4double
sumEnergyChange
;
126
127
G4VParticleChange
*
fParticleChange
;
128
G4Track
*
fTrack
;
129
G4TrackVector
*
fSecondary
;
130
G4Step
*
fStep
;
131
G4StepPoint
*
fPreStepPoint
;
132
G4StepPoint
*
fPostStepPoint
;
133
134
G4VPhysicalVolume
*
fCurrentVolume
;
135
G4VSensitiveDetector
*
fSensitive
;
136
G4VProcess
*
fCurrentProcess
;
137
// The pointer to the process of which DoIt or
138
// GetPhysicalInteractionLength has been just executed.
139
140
141
G4ProcessVector
*
fAtRestDoItVector
;
142
G4ProcessVector
*
fAlongStepDoItVector
;
143
G4ProcessVector
*
fPostStepDoItVector
;
144
145
G4ProcessVector
*
fAtRestGetPhysIntVector
;
146
G4ProcessVector
*
fAlongStepGetPhysIntVector
;
147
G4ProcessVector
*
fPostStepGetPhysIntVector
;
148
149
size_t
MAXofAtRestLoops
;
150
size_t
MAXofAlongStepLoops
;
151
size_t
MAXofPostStepLoops
;
152
153
G4double
currentMinimumStep
;
154
G4double
numberOfInteractionLengthLeft
;
155
156
size_t
fAtRestDoItProcTriggered
;
157
size_t
fAlongStepDoItProcTriggered
;
158
size_t
fPostStepDoItProcTriggered
;
159
160
G4int
fN2ndariesAtRestDoIt
;
161
G4int
fN2ndariesAlongStepDoIt
;
162
G4int
fN2ndariesPostStepDoIt
;
163
// These are the numbers of secondaries generated by the process
164
// just executed.
165
166
G4Navigator
*
fNavigator
;
167
168
G4int
verboseLevel
;
169
170
typedef
std::vector<G4int>
171
G4SelectedAtRestDoItVector
;
172
typedef
std::vector<G4int>
173
G4SelectedAlongStepDoItVector
;
174
typedef
std::vector<G4int>
175
G4SelectedPostStepDoItVector
;
176
G4SelectedAtRestDoItVector
*
fSelectedAtRestDoItVector
;
177
G4SelectedAlongStepDoItVector
*
fSelectedAlongStepDoItVector
;
178
G4SelectedPostStepDoItVector
*
fSelectedPostStepDoItVector
;
179
180
G4double
fPreviousStepSize
;
181
182
G4TouchableHandle
fTouchableHandle
;
183
184
G4SteppingControl
StepControlFlag
;
185
186
G4double
physIntLength
;
187
G4ForceCondition
fCondition
;
188
G4GPILSelection
fGPILSelection
;
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
Generated on Sat May 25 2013 14:34:12 for Geant4 by
1.8.4