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
G4WeightWindowProcess.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4WeightWindowProcess.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
// Class G4MassWeioghtWindowProcess
30
//
31
// Class description:
32
//
33
// Used internally by weight window technique in the "mass" geometry.
34
// This process is a forced post step process. It will apply
35
// weight window biasing on boundaries, collisions
36
// or both according to the G4PlaceOfAction argument.
37
38
// Author: Michael Dressel (Michael.Dressel@cern.ch)
39
// ----------------------------------------------------------------------
40
#ifndef G4MassWeioghtWindowProcess_hh
41
#define G4MassWeioghtWindowProcess_hh G4MassWeioghtWindowProcess_hh
42
43
#include "
G4VProcess.hh
"
44
#include "
G4VTrackTerminator.hh
"
45
#include "
G4PlaceOfAction.hh
"
46
47
class
G4SamplingPostStepAction
;
48
class
G4VWeightWindowAlgorithm
;
49
class
G4VWeightWindowStore
;
50
51
class
G4Step
;
52
class
G4Navigator
;
53
class
G4TransportationManager
;
54
class
G4PathFinder
;
55
class
G4VTouchable
;
56
57
#include "
G4FieldTrack.hh
"
58
#include "
G4TouchableHandle.hh
"
59
#include "
G4MultiNavigator.hh
"
// For ELimited enum
60
61
class
G4WeightWindowProcess
:
public
G4VProcess
,
public
G4VTrackTerminator
62
{
63
64
public
:
// with description
65
66
G4WeightWindowProcess
(
const
G4VWeightWindowAlgorithm
&
67
aWeightWindowAlgorithm,
68
const
G4VWeightWindowStore
&aWWStore,
69
const
G4VTrackTerminator
*TrackTerminator,
70
G4PlaceOfAction
placeOfAction,
71
const
G4String
&aName =
72
"WeightWindowProcess"
,
G4bool
para =
false
);
73
// creates a G4ParticleChange
74
75
virtual
~G4WeightWindowProcess
();
76
// delete the G4ParticleChange
77
78
79
//--------------------------------------------------------------
80
// Set Parallel World
81
//--------------------------------------------------------------
82
83
void
SetParallelWorld
(
const
G4String
¶llelWorldName);
84
void
SetParallelWorld
(
G4VPhysicalVolume
* parallelWorld);
85
86
//--------------------------------------------------------------
87
// Process interface
88
//--------------------------------------------------------------
89
90
void
StartTracking
(
G4Track
*);
91
92
93
94
virtual
G4double
95
PostStepGetPhysicalInteractionLength
(
const
G4Track
& aTrack,
96
G4double
previousStepSize,
97
G4ForceCondition
*
condition
);
98
// make process beeing forced
99
virtual
G4VParticleChange
*
PostStepDoIt
(
const
G4Track
&,
const
G4Step
&);
100
// aply weight window sampling
101
102
virtual
void
KillTrack
()
const
;
103
// used in case no scoring process follows that does the killing
104
105
virtual
const
G4String
&
GetName
()
const
;
106
107
108
public
:
// without description
109
110
// no operation in AtRestDoIt and AlongStepDoIt
111
112
virtual
G4double
113
AlongStepGetPhysicalInteractionLength
(
const
G4Track
&,
114
G4double
,
115
G4double
,
116
G4double
& ,
117
G4GPILSelection
*);
118
virtual
G4double
119
AtRestGetPhysicalInteractionLength
(
const
G4Track
& ,
120
G4ForceCondition
*);
121
122
virtual
G4VParticleChange
*
123
AtRestDoIt
(
const
G4Track
&,
const
G4Step
&);
124
125
126
virtual
G4VParticleChange
*
127
AlongStepDoIt
(
const
G4Track
&,
const
G4Step
&);
128
129
private
:
130
131
G4WeightWindowProcess
(
const
G4WeightWindowProcess
&);
132
G4WeightWindowProcess
&
operator=
(
const
G4WeightWindowProcess
&);
133
134
private
:
135
136
void
CopyStep
(
const
G4Step
&
step
);
137
138
G4Step
*
fGhostStep
;
139
G4StepPoint
*
fGhostPreStepPoint
;
140
G4StepPoint
*
fGhostPostStepPoint
;
141
142
G4ParticleChange
*
fParticleChange
;
143
const
G4VWeightWindowAlgorithm
&
fWeightWindowAlgorithm
;
144
const
G4VWeightWindowStore
&
fWeightWindowStore
;
145
G4SamplingPostStepAction
*
fPostStepAction
;
146
G4PlaceOfAction
fPlaceOfAction
;
147
148
G4TransportationManager
*
fTransportationManager
;
149
G4PathFinder
*
fPathFinder
;
150
151
// -------------------------------
152
// Navigation in the Ghost World:
153
// -------------------------------
154
G4String
fGhostWorldName
;
155
G4VPhysicalVolume
*
fGhostWorld
;
156
G4Navigator
*
fGhostNavigator
;
157
G4int
fNavigatorID
;
158
G4TouchableHandle
fOldGhostTouchable
;
159
G4TouchableHandle
fNewGhostTouchable
;
160
G4FieldTrack
fFieldTrack
;
161
G4double
fGhostSafety
;
162
G4bool
fOnBoundary
;
163
164
G4bool
fParaflag
;
165
G4FieldTrack
fEndTrack
;
166
ELimited
feLimited
;
167
};
168
169
#endif
geant4
tree
geant4-10.6-release
source
processes
biasing
importance
include
G4WeightWindowProcess.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:27
using
1.8.2 with
ECCE GitHub integration