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
G4ParticleChangeForMSC.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4ParticleChangeForMSC.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
// GEANT4 tag $ $
28
//
29
//
30
// ------------------------------------------------------------
31
// GEANT 4 class header file
32
//
33
//
34
// Class Description
35
// This class is special "Particle Change" for Multiple Scattering process
36
//
37
// ------------------------------------------------------------
38
// Implemented for the new scheme 23 Mar. 1998 H.Kurahige
39
// Add Get/SetMomentumDirectionChange 6 Feb. 1999 H.Kurashige
40
// Update for model variant of msc 16 Jan 2004 V.Ivanchenko
41
//
42
// -------------------------------------------------------------
43
#ifndef G4ParticleChangeForMSC_h
44
#define G4ParticleChangeForMSC_h 1
45
46
#include "
globals.hh
"
47
#include "
G4ios.hh
"
48
#include "
G4ThreeVector.hh
"
49
#include "
G4ThreeVector.hh
"
50
class
G4DynamicParticle
;
51
#include "
G4VParticleChange.hh
"
52
53
class
G4ParticleChangeForMSC
:
public
G4VParticleChange
54
{
55
public
:
56
// default constructor
57
G4ParticleChangeForMSC
();
58
59
// destructor
60
virtual
~G4ParticleChangeForMSC
();
61
62
protected
:
63
// hide copy constructor and assignment operaor as protected
64
G4ParticleChangeForMSC
(
const
G4ParticleChangeForMSC
&
right
);
65
G4ParticleChangeForMSC
&
operator=
(
const
G4ParticleChangeForMSC
&right);
66
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
*
UpdateStepForPostStep
(
G4Step
* Step);
76
// A physics process gives the final state of the particle
77
// based on information of G4Track (or equivalently the PreStepPoint)
78
79
virtual
void
Initialize
(
const
G4Track
&);
80
// Initialize all propoerties by using G4Track information
81
82
// ----------------------------------------------------
83
//--- methods to keep information of the final state--
84
// IMPORTANT NOTE: Although the name of the class and methods are
85
// "Change", what it stores (and returns in get) are the "FINAL"
86
// values of the Position, Momentum, etc.
87
88
void
ProposeMomentumDirection
(
const
G4ThreeVector
& Pfinal);
89
void
ProposeMomentumDirection
(
G4double
Px,
G4double
Py,
G4double
Pz);
90
const
G4ThreeVector
*
GetMomentumDirection
()
const
;
91
const
G4ThreeVector
*
GetProposedMomentumDirection
()
const
;
92
void
SetProposedMomentumDirection
(
const
G4ThreeVector
& Pfinal);
93
// Get/Set theMomentumDirectionChange vector: it is the final momentum direction.
94
95
const
G4ThreeVector
*
GetPosition
()
const
;
96
void
ProposePosition
(
const
G4ThreeVector
& finalPosition);
97
const
G4ThreeVector
*
GetProposedPosition
()
const
;
98
void
SetProposedPosition
(
const
G4ThreeVector
& finalPosition);
99
// Get/Set the final position of the current particle.
100
101
public
:
102
virtual
void
DumpInfo
()
const
;
103
// for Debug
104
virtual
G4bool
CheckIt
(
const
G4Track
&);
105
106
private
:
107
G4ThreeVector
theMomentumDirection
;
108
// It is the vector containing the final momentum direction
109
// after the invoked process. The application of the change
110
// of the momentum direction of the particle is not Done here.
111
// The responsibility to apply the change is up the entity
112
// which invoked the process.
113
114
G4ThreeVector
thePosition
;
115
// The changed (final) position of a given particle.
116
117
};
118
119
#include "G4ParticleChangeForMSC.icc"
120
#endif
121
geant4
tree
geant4-10.6-release
source
track
include
G4ParticleChangeForMSC.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:53
using
1.8.2 with
ECCE GitHub integration