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
G4ScoreSplittingProcess.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4ScoreSplittingProcess.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
// G4ScoreSplittingProcess.hh
32
//
33
// Description:
34
// This process is used to split the length and energy
35
// of a step in a regular structure into sub-steps, and to
36
// call the scorers for each sub-volume.
37
// It invokes sensitive detectors assigned in the *mass*
38
// world.
39
//
40
// Design and first implementation: J. Apostolakis / M.Asai 2010
41
//---------------------------------------------------------------
42
43
44
#ifndef G4ScoreSplittingProcess_h
45
#define G4ScoreSplittingProcess_h 1
46
47
#include "
globals.hh
"
48
class
G4Step
;
49
class
G4Navigator
;
50
class
G4TransportationManager
;
51
class
G4PathFinder
;
52
class
G4VTouchable
;
53
class
G4VPhysicalVolume
;
54
class
G4ParticleChange
;
55
class
G4EnergySplitter
;
56
57
#include "
G4VProcess.hh
"
58
#include "
G4FieldTrack.hh
"
59
#include "
G4TouchableHandle.hh
"
60
class
G4TouchableHistory
;
61
// #include "G4TouchableHistory.hh"
62
63
//------------------------------------------
64
//
65
// G4ScoreSplittingProcess class
66
//
67
//------------------------------------------
68
69
70
// Class Description:
71
72
class
G4ScoreSplittingProcess
:
public
G4VProcess
73
{
74
public
:
// with description
75
76
//------------------------
77
// Constructor/Destructor
78
//------------------------
79
80
G4ScoreSplittingProcess
(
const
G4String
& processName =
"ScoreSplittingProc"
,
81
G4ProcessType
theType =
fParameterisation
);
82
virtual
~G4ScoreSplittingProcess
();
83
84
//--------------------------------------------------------------
85
// Process interface
86
//--------------------------------------------------------------
87
88
void
StartTracking
(
G4Track
*);
89
90
//------------------------------------------------------------------------
91
// GetPhysicalInteractionLength() and DoIt() methods for AtRest
92
//------------------------------------------------------------------------
93
94
G4double
AtRestGetPhysicalInteractionLength
(
95
const
G4Track
& ,
96
G4ForceCondition
*
97
);
98
99
G4VParticleChange
*
AtRestDoIt
(
100
const
G4Track
& ,
101
const
G4Step
&
102
);
103
104
//------------------------------------------------------------------------
105
// GetPhysicalInteractionLength() and DoIt() methods for AlongStep
106
//------------------------------------------------------------------------
107
108
G4double
AlongStepGetPhysicalInteractionLength
(
109
const
G4Track
&,
110
G4double
,
111
G4double
,
112
G4double
&,
113
G4GPILSelection
*
114
);
115
116
G4VParticleChange
*
AlongStepDoIt
(
117
const
G4Track
& ,
118
const
G4Step
&
119
);
120
121
//-----------------------------------------------------------------------
122
// GetPhysicalInteractionLength() and DoIt() methods for PostStep
123
//-----------------------------------------------------------------------
124
125
G4double
PostStepGetPhysicalInteractionLength
(
const
G4Track
&
track
,
126
G4double
previousStepSize,
127
G4ForceCondition
*
condition
);
128
129
G4VParticleChange
*
PostStepDoIt
(
const
G4Track
& ,
const
G4Step
& );
130
131
private
:
132
G4TouchableHistory
*
CreateTouchableForSubStep
(
G4int
newVoxelNum,
G4ThreeVector
newPosition );
133
134
private
:
135
void
CopyStepStart
(
const
G4Step
&
step
);
136
137
G4Step
*
fSplitStep
;
138
G4StepPoint
*
fSplitPreStepPoint
;
139
G4StepPoint
*
fSplitPostStepPoint
;
140
141
G4VParticleChange
dummyParticleChange
;
142
G4ParticleChange
xParticleChange
;
143
144
// G4TransportationManager* fTransportationManager;
145
// G4PathFinder* fPathFinder;
146
147
// -------------------------------
148
// Touchables for the Split Step
149
// -------------------------------
150
G4TouchableHandle
fOldTouchableH
;
151
G4TouchableHandle
fNewTouchableH
;
152
153
// Memory of Touchables of full step
154
G4TouchableHandle
fInitialTouchableH
;
155
G4TouchableHandle
fFinalTouchableH
;
156
157
G4EnergySplitter
*
fpEnergySplitter
;
158
159
// ******************************************************
160
// For TESTS:
161
// ******************************************************
162
public
:
163
void
Verbose
(
const
G4Step
&)
const
;
164
};
165
166
#endif
geant4
tree
geant4-10.6-release
source
processes
scoring
include
G4ScoreSplittingProcess.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:52
using
1.8.2 with
ECCE GitHub integration