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
G4ParticleChangeForTransport.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4ParticleChangeForTransport.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
// GEANT 4 class header file
31
//
32
//
33
// ------------------------------------------------------------
34
// Implemented for the new scheme 10 May. 1998 H.Kurahige
35
// Added theMaterialChange 16 FEb. 2000 H.Kurahige
36
// Remove thePolarizationChange 12 Feb. 2001 H.Kurashige
37
// Modification for G4TouchableHandle 22 Oct. 2001 R.Chytracek
38
// Add MaterialCutsCouple 8 Oct. 2002 H.Kurashige
39
//
40
// Class Description
41
// This class is a concrete class for ParticleChange for transportation
42
//
43
#ifndef G4ParticleChangeForTransport_h
44
#define G4ParticleChangeForTransport_h 1
45
46
#include "
globals.hh
"
47
#include "
G4ios.hh
"
48
#include "
G4TouchableHandle.hh
"
49
#include "
G4ParticleChange.hh
"
50
51
class
G4MaterialCutsCouple
;
52
class
G4VSensitiveDetector
;
53
54
class
G4ParticleChangeForTransport
:
public
G4ParticleChange
55
{
56
public
:
57
// default constructor
58
G4ParticleChangeForTransport
();
59
60
// destructor
61
virtual
~G4ParticleChangeForTransport
();
62
63
protected
:
64
// hide copy constructor and assignment operator as protected
65
G4ParticleChangeForTransport
(
const
G4ParticleChangeForTransport
&
right
);
66
G4ParticleChangeForTransport
&
operator=
(
const
G4ParticleChangeForTransport
&right);
67
68
public
:
// with description
69
// ----------------------------------------------------
70
// --- the following methods are for updating G4Step -----
71
// Return the pointer to the G4Step after updating the Step information
72
// by using final state information of the track given by a physics
73
// process
74
virtual
G4Step
*
UpdateStepForAlongStep
(
G4Step
* Step);
75
virtual
G4Step
*
UpdateStepForAtRest
(
G4Step
* Step);
76
virtual
G4Step
*
UpdateStepForPostStep
(
G4Step
* Step);
77
// A physics process gives the final state of the particle
78
// based on information of G4Track (or equivalently the PreStepPoint)
79
80
virtual
void
Initialize
(
const
G4Track
&);
81
// Initialize all propoerties by using G4Track information
82
83
// ----------------------------------------------------
84
//--- methods to keep information of the final state--
85
// IMPORTANT NOTE: Although the name of the class and methods are
86
// "Change", what it stores (and returns in get) are the "FINAL"
87
// values of the Position, Momentum, etc.
88
89
const
G4TouchableHandle
&
GetTouchableHandle
()
const
;
90
void
SetTouchableHandle
(
const
G4TouchableHandle
& fTouchable);
91
// Get/Set the touchable of the current particle.
92
// Note: Touchable in PostStepPoint will be updated only after PostStepDoIt
93
94
G4Material
*
GetMaterialInTouchable
()
const
;
95
void
SetMaterialInTouchable
(
G4Material
* fMaterial);
96
// Get/Propose the material in the touchable of the current particle.
97
98
const
G4MaterialCutsCouple
*
GetMaterialCutsCoupleInTouchable
()
const
;
99
void
SetMaterialCutsCoupleInTouchable
(
const
G4MaterialCutsCouple
* fMaterialCutsCouple);
100
// Get/Set the materialCutsCouple in the touchable of the current particle.
101
102
G4VSensitiveDetector
*
GetSensitiveDetectorInTouchable
()
const
;
103
void
SetSensitiveDetectorInTouchable
(
G4VSensitiveDetector
* fSensitiveDetector);
104
// Get/Set the sensitive detector in the touchable of the current particle.
105
106
G4bool
GetMomentumChanged
()
const
;
107
void
SetMomentumChanged
(
G4bool
b
);
108
109
public
:
110
virtual
void
DumpInfo
()
const
;
111
112
protected
:
113
G4TouchableHandle
theTouchableHandle
;
114
// The changed touchable of a given particle.
115
116
public
:
117
118
// Prototype implementation of smooth representation of curved trajectories.
119
// Auxiliary points are ThreeVectors for now; change to G4AuxiliaryPoints.
120
121
inline
void
SetPointerToVectorOfAuxiliaryPoints
( std::vector<G4ThreeVector>* theNewVectorPointer );
122
inline
std::vector<G4ThreeVector>*
GetPointerToVectorOfAuxiliaryPoints
()
const
;
123
124
private
:
125
G4bool
isMomentumChanged
;
126
// The flag which is set if momentum is changed in current step
127
G4Material
*
theMaterialChange
;
128
const
G4MaterialCutsCouple
*
theMaterialCutsCoupleChange
;
129
G4VSensitiveDetector
*
theSensitiveDetectorChange
;
130
// The material (and MaterialCutsCouple) where given track
131
// currently locates
132
133
private
:
134
std::vector<G4ThreeVector>*
fpVectorOfAuxiliaryPointsPointer
;
135
};
136
137
#include "G4ParticleChangeForTransport.icc"
138
139
#endif
140
141
142
143
144
145
geant4
tree
geant4-10.6-release
source
track
include
G4ParticleChangeForTransport.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:53
using
1.8.2 with
ECCE GitHub integration