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
G4AdjointProcessEquivalentToDirectProcess.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4AdjointProcessEquivalentToDirectProcess.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
//
28
// Class: G4AdjointProcessEquivalentToDirectProcess
29
// Author: L. Desorgher
30
// Organisation: SpaceIT GmbH
31
// Contract: ESA contract 21435/08/NL/AT
32
// Customer: ESA/ESTEC
34
//
35
// CHANGE HISTORY
36
// --------------
37
// ChangeHistory:
38
// 25 Sept. 2009 Created by L.Desorgher. Inspired from G4WrapperProcess
39
//
40
//-------------------------------------------------------------
41
// Documentation:
42
// Adjoint process equivalent to direct process, used for some multiple scattering
43
//
44
//
45
46
47
#ifndef G4AdjointProcessEquivalentToDirectProcess_h
48
#define G4AdjointProcessEquivalentToDirectProcess_h 1
49
50
#include "
globals.hh
"
51
#include "
G4ios.hh
"
52
#include "
G4VProcess.hh
"
53
54
class
G4AdjointProcessEquivalentToDirectProcess
:
public
G4VProcess
55
{
56
// A virtual class for wrapper process objects.
57
58
public
:
// with description
59
// constructor requires the process name and type
60
G4AdjointProcessEquivalentToDirectProcess
(
const
G4String
& aName,
G4VProcess
* aProcess,
G4ParticleDefinition
* fwd_particle_def);
61
62
63
64
public
:
65
// destructor
66
virtual
~G4AdjointProcessEquivalentToDirectProcess
();
67
68
69
public
:
// with description
71
// DoIt /////////////////
73
virtual
G4VParticleChange
*
PostStepDoIt
(
74
const
G4Track
&
track
,
75
const
G4Step
& stepData
76
);
77
78
virtual
G4VParticleChange
*
AlongStepDoIt
(
79
const
G4Track
& track,
80
const
G4Step
& stepData
81
);
82
virtual
G4VParticleChange
*
AtRestDoIt
(
83
const
G4Track
& track,
84
const
G4Step
& stepData
85
);
87
// GPIL //////////////
89
virtual
G4double
AlongStepGetPhysicalInteractionLength
(
90
const
G4Track
& track,
91
G4double
previousStepSize,
92
G4double
currentMinimumStep,
93
G4double
& proposedSafety,
94
G4GPILSelection
* selection);
95
96
virtual
G4double
AtRestGetPhysicalInteractionLength
(
97
const
G4Track
& track,
98
G4ForceCondition
*
condition
99
);
100
101
virtual
G4double
PostStepGetPhysicalInteractionLength
(
102
const
G4Track
& track,
103
G4double
previousStepSize,
104
G4ForceCondition
* condition
105
) ;
106
108
virtual
G4bool
IsApplicable
(
const
G4ParticleDefinition
&);
109
// Returns true if this process object is applicable to
110
// the particle type
111
// Process will not be registered to a particle if IsApplicable is false
112
113
virtual
void
BuildPhysicsTable
(
const
G4ParticleDefinition
&);
114
// Messaged by the Particle definition (via the Process manager)
115
// whenever cross section tables have to be rebuilt (i.e. if new
116
// materials have been defined).
117
// It is overloaded by individual processes when they need physics
118
// tables.
119
120
// Processes which Build (for example in their
121
// constructors) physics tables independent of cuts
122
// should preferably use a
123
// private void BuildThePhysicsTable()
124
// function. Not another BuildPhysicsTable, please.
125
126
virtual
void
PreparePhysicsTable
(
const
G4ParticleDefinition
&);
127
// Messaged by the Particle definition (via the Process manager)
128
// whenever cross section tables have to be prepare for rebuilt
129
// (i.e. if new materials have been defined).
130
// It is overloaded by individual processes when they need physics
131
// tables.
132
133
// Processes which Build physics tables independent of cuts
134
// (for example in their constructors)
135
// should preferably use private
136
// void BuildThePhysicsTable() and void PreparePhysicsTable().
137
// Not another BuildPhysicsTable, please.
138
139
140
virtual
G4bool
StorePhysicsTable
(
const
G4ParticleDefinition
* ,
141
const
G4String
& directory,
142
G4bool
ascii =
false
);
143
// Store PhysicsTable in a file.
144
// (return false in case of failure at I/O )
145
146
virtual
G4bool
RetrievePhysicsTable
(
const
G4ParticleDefinition
* ,
147
const
G4String
& directory,
148
G4bool
ascii =
false
);
149
// Retrieve Physics from a file.
150
// (return true if the Physics Table can be build by using file)
151
// (return false if the process has no functionality or in case of failure)
152
// File name should be defined by each process
153
// and the file should be placed under the directory specifed by the argument.
155
virtual
void
StartTracking
(
G4Track
*);
156
virtual
void
EndTracking
();
157
// inform Start/End of tracking for each track to the physics process
158
159
160
161
public
:
162
virtual
void
ResetNumberOfInteractionLengthLeft
();
163
// reset (determine the value of)NumberOfInteractionLengthLeft
164
private
:
165
G4ParticleDefinition
*
theFwdParticleDef
;
166
G4VProcess
*
theDirectProcess
;
167
168
};
169
170
171
#endif
geant4
tree
geant4-10.6-release
source
processes
electromagnetic
adjoint
include
G4AdjointProcessEquivalentToDirectProcess.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:28
using
1.8.2 with
ECCE GitHub integration