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
G4FastSimulationManagerProcess.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4FastSimulationManagerProcess.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
//
31
// G4FastSimulationManagerProcess.hh
32
//
33
// Description:
34
// The process that triggers parameterised simulations if any.
35
//
36
// History:
37
// Feb 98: Parallel geometry sensitivity. MoraDeFreitas.
38
// Oct 97: "Fast" replaces "Parameterisation" in class/method names.
39
// (release B.00 for parameterisation). MoraDeFreitas.
40
// Aug 97: First implementation. Verderi && MoraDeFreitas.
41
// Apr 98: modified for new particle change. H.Kurashige
42
// Oct 06: Move to parallel geometry scheme. M. Verderi
43
// Nov 06: name xxx81 is given for this release. "81" will be
44
// removed @ next maj. rel. so that this process becomes
45
// the standard one.
46
// May 07: remove "81" tags, to migrate to 9.0.
47
//
48
//---------------------------------------------------------------
49
50
51
#ifndef G4FastSimulationManagerProcess_hh
52
#define G4FastSimulationManagerProcess_hh
53
54
#include "
globals.hh
"
55
#include "
G4VProcess.hh
"
56
#include "
G4FastSimulationManager.hh
"
57
#include "
G4FastSimulationProcessType.hh
"
58
#include "
G4Step.hh
"
59
#include "
G4Navigator.hh
"
60
#include "
G4VPhysicalVolume.hh
"
61
#include "
G4VParticleChange.hh
"
62
#include "
G4FieldTrack.hh
"
63
class
G4PathFinder
;
64
class
G4TransportationManager
;
65
66
// ---------------------------------------------------------------------
67
//
68
// G4FastSimulationManagerProcess class
69
//
70
// ---------------------------------------------------------------------
71
72
73
// Class Description:
74
// -- G4VProcess providing the interface between the tracking and the fast simulation.
75
//
76
77
class
G4FastSimulationManagerProcess
:
public
G4VProcess
78
{
79
public
:
80
81
// -------------------------
82
// Constructor/Destructor:
83
// -------------------------
84
// -- Constructor for parameterisation in mass geometry
85
G4FastSimulationManagerProcess
(
const
G4String
& processName =
"G4FastSimulationManagerProcess"
,
86
G4ProcessType
theType =
fParameterisation
);
87
88
// -- Contructors for parameterisation attached a parallel geometry.
89
// -- Can also be used for the mass geometry, providing world volume name.
90
// -- World volume specified by name or pointer.
91
G4FastSimulationManagerProcess
(
const
G4String
& processName,
92
const
G4String
& worldVolumeName,
93
G4ProcessType
theType =
fParameterisation
);
94
G4FastSimulationManagerProcess
(
const
G4String
& processName,
95
G4VPhysicalVolume
* worldVolume,
96
G4ProcessType
theType =
fParameterisation
);
97
98
virtual
~G4FastSimulationManagerProcess
();
99
100
// -----------------------
101
// User access methods:
102
// -----------------------
103
G4VPhysicalVolume
*
GetWorldVolume
()
const
{
return
fWorldVolume
;}
104
105
// -- Set new world volume to the process
106
void
SetWorldVolume
(
G4String
);
107
void
SetWorldVolume
(
G4VPhysicalVolume
*);
108
109
110
// --------------------------------------------------------------
111
// Process interface
112
// --------------------------------------------------------------
113
114
// -- Start/End tracking:
115
void
StartTracking
(
G4Track
*);
116
void
EndTracking
();
117
118
119
// -- PostStep methods:
120
G4double
PostStepGetPhysicalInteractionLength
(
const
G4Track
&
track
,
121
G4double
previousStepSize,
122
G4ForceCondition
*
condition
);
123
124
G4VParticleChange
*
PostStepDoIt
(
const
G4Track
&,
const
G4Step
& );
125
126
// -- Responsible for limiting the step on ghost boundaries:
127
G4double
AlongStepGetPhysicalInteractionLength
(
const
G4Track
&
track
,
128
G4double
previousStepSize,
129
G4double
currentMinimumStep,
130
G4double
& proposedSafety,
131
G4GPILSelection
* selection);
132
G4VParticleChange
*
AlongStepDoIt
(
const
G4Track
&
track
,
133
const
G4Step
&
step
);
134
135
136
137
// -- AtRest methods (still there after many years of no use...):
138
G4double
AtRestGetPhysicalInteractionLength
(
const
G4Track
&,
139
G4ForceCondition
*);
140
141
G4VParticleChange
*
AtRestDoIt
(
const
G4Track
&,
const
G4Step
&);
142
143
144
145
146
147
// -- debug:
148
void
Verbose
()
const
;
149
150
151
private
:
152
//-- would be better to my taste to have "const G4VPhysicalVolume* fWorldVolume;", but clashes at compilation
153
G4VPhysicalVolume
*
fWorldVolume
;
154
155
G4bool
fIsTrackingTime
;
156
G4bool
fIsFirstStep
;
157
G4Navigator
*
fGhostNavigator
;
158
G4int
fGhostNavigatorIndex
;
159
G4bool
fIsGhostGeometry
;
160
G4double
fGhostSafety
;
161
G4FieldTrack
fFieldTrack
;
162
163
164
G4FastSimulationManager
*
fFastSimulationManager
;
165
G4bool
fFastSimulationTrigger
;
166
G4VParticleChange
fDummyParticleChange
;
167
G4PathFinder
*
fPathFinder
;
168
G4TransportationManager
*
fTransportationManager
;
169
};
170
171
#endif
geant4
tree
geant4-10.6-release
source
processes
parameterisation
include
G4FastSimulationManagerProcess.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:52
using
1.8.2 with
ECCE GitHub integration