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
ECCE @ EIC Software
Deprecated List
Modules
Namespaces
Classes
Files
File List
acts
analysis
coresoftware
Doxygen_Assist
ecce-detectors
fun4all_eicdetectors
geant4
tree
geant4-10.6-release
config
environments
examples
source
analysis
digits_hits
error_propagation
event
externals
g3tog4
geometry
global
graphics_reps
intercoms
interfaces
materials
parameterisations
particles
persistency
physics_lists
processes
biasing
cuts
decay
electromagnetic
hadronic
cross_sections
management
models
abla
abrasion
binary_cascade
cascade
coherent_elastic
de_excitation
em_dissociation
fission
gamma_nuclear
im_r_matrix
inclxx
lend
lepto_nuclear
management
particle_hp
include
G4ArrayOps.hh
G4ENDFTapeRead.hh
G4ENDFYieldDataContainer.hh
G4FFGDebuggingMacros.hh
G4FFGDefaultValues.hh
G4FFGEnumerations.hh
G4FFGVerboseMacros.hh
G4FissionFragmentGenerator.hh
G4FissionProductYieldDist.hh
G4FPYBiasedLightFragmentDist.hh
G4FPYNormalFragmentDist.hh
G4FPYNubarValues.hh
G4FPYSamplingOps.hh
G4FPYTreeStructures.hh
G4InterpolationIterator.hh
G4InterpolationManager.hh
G4InterpolationScheme.hh
G4NeutronHP2AInelasticFS.hh
G4NeutronHP2N2AInelasticFS.hh
G4NeutronHP2NAInelasticFS.hh
G4NeutronHP2NDInelasticFS.hh
G4NeutronHP2NInelasticFS.hh
G4NeutronHP2NPInelasticFS.hh
G4NeutronHP2PInelasticFS.hh
G4NeutronHP3AInelasticFS.hh
G4NeutronHP3NAInelasticFS.hh
G4NeutronHP3NInelasticFS.hh
G4NeutronHP3NPInelasticFS.hh
G4NeutronHP4NInelasticFS.hh
G4NeutronHPAInelasticFS.hh
G4NeutronHPAngular.hh
G4NeutronHPAngularP.hh
G4NeutronHPArbitaryTab.hh
G4NeutronHPBGGNucleonInelasticXS.hh
G4NeutronHPCapture.hh
G4NeutronHPCaptureData.hh
G4NeutronHPCaptureFS.hh
G4NeutronHPChannel.hh
G4NeutronHPChannelList.hh
G4NeutronHPContAngularPar.hh
G4NeutronHPContEnergyAngular.hh
G4NeutronHPD2AInelasticFS.hh
G4NeutronHPDAInelasticFS.hh
G4NeutronHPData.hh
G4NeutronHPDataPoint.hh
G4NeutronHPDataUsed.hh
G4NeutronHPDeExGammas.hh
G4NeutronHPDInelasticFS.hh
G4NeutronHPDiscreteTwoBody.hh
G4NeutronHPElastic.hh
G4NeutronHPElasticData.hh
G4NeutronHPElasticFS.hh
G4NeutronHPElementData.hh
G4NeutronHPEnAngCorrelation.hh
G4NeutronHPEnergyDistribution.hh
G4NeutronHPEvapSpectrum.hh
G4NeutronHPFastLegendre.hh
G4NeutronHPFCFissionFS.hh
G4NeutronHPFFFissionFS.hh
G4NeutronHPField.hh
G4NeutronHPFieldPoint.hh
G4NeutronHPFinalState.hh
G4NeutronHPFission.hh
G4NeutronHPFissionBaseFS.hh
G4NeutronHPFissionData.hh
G4NeutronHPFissionERelease.hh
G4NeutronHPFissionFS.hh
G4NeutronHPFissionSpectrum.hh
G4NeutronHPFSFissionFS.hh
G4NeutronHPGamma.hh
G4NeutronHPHash.hh
G4NeutronHPHe3InelasticFS.hh
G4NeutronHPInelastic.hh
G4NeutronHPInelasticBaseFS.hh
G4NeutronHPInelasticCompFS.hh
G4NeutronHPInelasticData.hh
G4NeutronHPInterpolator.hh
G4NeutronHPIsoData.hh
G4NeutronHPIsotropic.hh
G4NeutronHPJENDLHEData.hh
G4NeutronHPJENDLHEElasticData.hh
G4NeutronHPJENDLHEInelasticData.hh
G4NeutronHPKallbachMannSyst.hh
G4NeutronHPLabAngularEnergy.hh
G4NeutronHPLCFissionFS.hh
G4NeutronHPLegendreStore.hh
G4NeutronHPLegendreTable.hh
G4NeutronHPLevel.hh
G4NeutronHPList.hh
G4NeutronHPMadlandNixSpectrum.hh
G4NeutronHPManager.hh
G4NeutronHPMessenger.hh
G4NeutronHPN2AInelasticFS.hh
G4NeutronHPN2PInelasticFS.hh
G4NeutronHPN3AInelasticFS.hh
G4NeutronHPNAInelasticFS.hh
G4NeutronHPNames.hh
G4NeutronHPNBodyPhaseSpace.hh
G4NeutronHPND2AInelasticFS.hh
G4NeutronHPNDInelasticFS.hh
G4NeutronHPNeutronYield.hh
G4NeutronHPNHe3InelasticFS.hh
G4NeutronHPNInelasticFS.hh
G4NeutronHPNPAInelasticFS.hh
G4NeutronHPNPInelasticFS.hh
G4NeutronHPNT2AInelasticFS.hh
G4NeutronHPNTInelasticFS.hh
G4NeutronHPNXInelasticFS.hh
G4NeutronHPPAInelasticFS.hh
G4NeutronHPPartial.hh
G4NeutronHPPDInelasticFS.hh
G4NeutronHPPhotonDist.hh
G4NeutronHPPInelasticFS.hh
G4NeutronHPPolynomExpansion.hh
G4NeutronHPProduct.hh
G4NeutronHPPTInelasticFS.hh
G4NeutronHPReactionWhiteBoard.hh
G4NeutronHPSCFissionFS.hh
G4NeutronHPSimpleEvapSpectrum.hh
G4NeutronHPT2AInelasticFS.hh
G4NeutronHPTCFissionFS.hh
G4NeutronHPThermalBoost.hh
G4NeutronHPThermalScattering.hh
G4NeutronHPThermalScatteringData.hh
G4NeutronHPThermalScatteringNames.hh
G4NeutronHPThreadLocalManager.hh
G4NeutronHPTInelasticFS.hh
G4NeutronHPVector.hh
G4NeutronHPWattSpectrum.hh
G4NRESP71M03.hh
G4ParticleHP2AInelasticFS.hh
G4ParticleHP2N2AInelasticFS.hh
G4ParticleHP2NAInelasticFS.hh
G4ParticleHP2NDInelasticFS.hh
G4ParticleHP2NInelasticFS.hh
G4ParticleHP2NPInelasticFS.hh
G4ParticleHP2PInelasticFS.hh
G4ParticleHP3AInelasticFS.hh
G4ParticleHP3NAInelasticFS.hh
G4ParticleHP3NInelasticFS.hh
G4ParticleHP3NPInelasticFS.hh
G4ParticleHP4NInelasticFS.hh
G4ParticleHPAInelasticFS.hh
G4ParticleHPAngular.hh
G4ParticleHPAngularP.hh
G4ParticleHPArbitaryTab.hh
G4ParticleHPBGGNucleonInelasticXS.hh
G4ParticleHPCapture.hh
G4ParticleHPCaptureData.hh
G4ParticleHPCaptureFS.hh
G4ParticleHPChannel.hh
G4ParticleHPChannelList.hh
G4ParticleHPContAngularPar.hh
G4ParticleHPContEnergyAngular.hh
G4ParticleHPD2AInelasticFS.hh
G4ParticleHPDAInelasticFS.hh
G4ParticleHPData.hh
G4ParticleHPDataPoint.hh
G4ParticleHPDataUsed.hh
G4ParticleHPDeExGammas.hh
G4ParticleHPDInelasticFS.hh
G4ParticleHPDiscreteTwoBody.hh
G4ParticleHPElastic.hh
G4ParticleHPElasticData.hh
G4ParticleHPElasticFS.hh
G4ParticleHPElementData.hh
G4ParticleHPEnAngCorrelation.hh
G4ParticleHPEnergyDistribution.hh
G4ParticleHPEvapSpectrum.hh
G4ParticleHPFastLegendre.hh
G4ParticleHPFCFissionFS.hh
G4ParticleHPFFFissionFS.hh
G4ParticleHPField.hh
G4ParticleHPFieldPoint.hh
G4ParticleHPFinalState.hh
G4ParticleHPFission.hh
G4ParticleHPFissionBaseFS.hh
G4ParticleHPFissionData.hh
G4ParticleHPFissionERelease.hh
G4ParticleHPFissionFS.hh
G4ParticleHPFissionSpectrum.hh
G4ParticleHPFSFissionFS.hh
G4ParticleHPGamma.hh
G4ParticleHPHash.hh
G4ParticleHPHe3InelasticFS.hh
G4ParticleHPInelastic.hh
G4ParticleHPInelasticBaseFS.hh
G4ParticleHPInelasticCompFS.hh
G4ParticleHPInelasticData.hh
G4ParticleHPInterpolator.hh
G4ParticleHPIsoData.hh
G4ParticleHPIsotropic.hh
G4ParticleHPJENDLHEData.hh
G4ParticleHPJENDLHEElasticData.hh
G4ParticleHPJENDLHEInelasticData.hh
G4ParticleHPKallbachMannSyst.hh
G4ParticleHPLabAngularEnergy.hh
G4ParticleHPLCFissionFS.hh
G4ParticleHPLegendreStore.hh
G4ParticleHPLegendreTable.hh
G4ParticleHPLevel.hh
G4ParticleHPList.hh
G4ParticleHPMadlandNixSpectrum.hh
G4ParticleHPManager.hh
G4ParticleHPMessenger.hh
G4ParticleHPN2AInelasticFS.hh
G4ParticleHPN2PInelasticFS.hh
G4ParticleHPN3AInelasticFS.hh
G4ParticleHPNAInelasticFS.hh
G4ParticleHPNames.hh
G4ParticleHPNBodyPhaseSpace.hh
G4ParticleHPND2AInelasticFS.hh
G4ParticleHPNDInelasticFS.hh
G4ParticleHPNHe3InelasticFS.hh
G4ParticleHPNInelasticFS.hh
G4ParticleHPNPAInelasticFS.hh
G4ParticleHPNPInelasticFS.hh
G4ParticleHPNT2AInelasticFS.hh
G4ParticleHPNTInelasticFS.hh
G4ParticleHPNXInelasticFS.hh
G4ParticleHPPAInelasticFS.hh
G4ParticleHPPartial.hh
G4ParticleHPParticleYield.hh
G4ParticleHPPDInelasticFS.hh
G4ParticleHPPhotonDist.hh
G4ParticleHPPInelasticFS.hh
G4ParticleHPPolynomExpansion.hh
G4ParticleHPProduct.hh
G4ParticleHPPTInelasticFS.hh
G4ParticleHPReactionWhiteBoard.hh
G4ParticleHPSCFissionFS.hh
G4ParticleHPSimpleEvapSpectrum.hh
G4ParticleHPT2AInelasticFS.hh
G4ParticleHPTCFissionFS.hh
G4ParticleHPThermalBoost.hh
G4ParticleHPThermalScattering.hh
G4ParticleHPThermalScatteringData.hh
G4ParticleHPThermalScatteringNames.hh
G4ParticleHPThreadLocalManager.hh
G4ParticleHPTInelasticFS.hh
G4ParticleHPVector.hh
G4ParticleHPWattSpectrum.hh
G4ShiftedGaussian.hh
G4TableTemplate.hh
G4VNeutronHPEDis.hh
G4VNeutronHPEnergyAngular.hh
G4VParticleHPEDis.hh
G4VParticleHPEnergyAngular.hh
G4WattFissionSpectrumValues.hh
G4WendtFissionFragmentGenerator.hh
src
parton_string
pre_equilibrium
qmd
quasi_elastic
radioactive_decay
rpg
theo_high_energy
util
processes
stopping
util
management
optical
parameterisation
scoring
solidstate
transportation
readout
run
track
tracking
visualization
macros
online_distribution
tutorials
doxygen_mainpage.h
File Members
External Links
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4InterpolationManager.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4InterpolationManager.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
#ifndef G4InterpolationManager_h
29
#define G4InterpolationManager_h 1
30
31
#include "
globals.hh
"
32
#include "
G4InterpolationScheme.hh
"
33
#include "
G4ios.hh
"
34
#include <fstream>
35
#include "
G4HadronicException.hh
"
36
37
class
G4InterpolationManager
38
{
39
public
:
40
41
friend
class
G4InterpolationIterator
;
42
43
G4InterpolationManager
()
44
{
45
nRanges
= 1;
46
start
=
new
G4int
[1];
47
start
[0] = 0;
48
range
=
new
G4int
[1];
49
range
[0] = 100000;
50
scheme
=
new
G4InterpolationScheme
[1];
51
scheme
[0] =
LINLIN
;
52
nEntries
= 0;
53
}
54
55
~G4InterpolationManager
()
56
{
57
if
(
start
!=0)
delete
[]
start
;
58
if
(
range
!=0)
delete
[]
range
;
59
if
(
scheme
!=0)
delete
[]
scheme
;
60
}
61
62
G4InterpolationManager
&
operator=
(
const
G4InterpolationManager
& aManager)
63
{
64
if
(
this
!= &aManager)
65
{
66
nRanges
= aManager.
nRanges
;
67
nEntries
= aManager.
nEntries
;
68
if
(
scheme
!=0)
delete
[]
scheme
;
69
if
(
start
!=0)
delete
[]
start
;
70
if
(
range
!=0)
delete
[]
range
;
71
scheme
=
new
G4InterpolationScheme
[
nRanges
];
72
start
=
new
G4int
[
nRanges
];
73
range
=
new
G4int
[
nRanges
];
74
for
(
G4int
i=0; i<
nRanges
; i++)
75
{
76
scheme
[i]=aManager.
scheme
[i];
77
start
[i]=aManager.
start
[i];
78
range
[i]=aManager.
range
[i];
79
}
80
}
81
return
*
this
;
82
}
83
84
inline
void
Init
(
G4int
aScheme,
G4int
aRange)
85
{
86
nRanges
= 1;
87
start
[0] = 0;
88
range
[0] = aRange;
89
scheme
[0] =
MakeScheme
(aScheme);
90
nEntries
= aRange;
91
}
92
inline
void
Init
(
G4InterpolationScheme
aScheme,
G4int
aRange)
93
{
94
nRanges
= 1;
95
start
[0] = 0;
96
range
[0] = aRange;
97
scheme
[0] = aScheme;
98
nEntries
= aRange;
99
}
100
101
inline
void
Init
(std::istream & aDataFile)
102
{
103
delete
[]
start
;
104
delete
[]
range
;
105
delete
[]
scheme
;
106
aDataFile >>
nRanges
;
107
start
=
new
G4int
[
nRanges
];
108
range
=
new
G4int
[
nRanges
];
109
scheme
=
new
G4InterpolationScheme
[
nRanges
];
110
start
[0] = 0;
111
G4int
it
;
112
for
(
G4int
i=0; i<
nRanges
; i++)
113
{
114
aDataFile>>
range
[i];
115
//***************************************************************
116
//EMendoza -> there is a bug here.
117
/*
118
if(i!=0) start[i] = start[i-1]+range[i-1];
119
*/
120
//***************************************************************
121
if
(i!=0)
start
[i] = range[i-1];
122
//***************************************************************
123
aDataFile>>
it
;
124
scheme
[i] =
MakeScheme
(it);
125
}
126
nEntries
=
start
[nRanges-1]+
range
[nRanges-1];
127
}
128
129
G4InterpolationScheme
MakeScheme
(
G4int
it
);
130
131
inline
G4InterpolationScheme
GetScheme
(
G4int
index)
const
132
{
133
G4int
it
= 0;
134
for
(
G4int
i=1; i<
nRanges
; i++)
135
{
136
if
(index<
start
[i])
break
;
137
it = i;
138
}
139
return
scheme
[
it
];
140
}
141
142
inline
void
CleanUp
()
143
{
144
nRanges
= 0;
145
nEntries
= 0;
146
}
147
148
inline
G4InterpolationScheme
GetInverseScheme
(
G4int
index)
149
{
150
G4InterpolationScheme
result =
GetScheme
(index);
151
if
(result ==
HISTO
)
152
{
153
result =
RANDOM
;
154
}
155
else
if
(result ==
LINLOG
)
156
{
157
result =
LOGLIN
;
158
}
159
else
if
(result ==
LOGLIN
)
160
{
161
result =
LINLOG
;
162
}
163
else
if
(result ==
CHISTO
)
164
{
165
result =
CRANDOM
;
166
}
167
else
if
(result ==
CLINLOG
)
168
{
169
result =
CLOGLIN
;
170
}
171
else
if
(result ==
CLOGLIN
)
172
{
173
result =
CLINLOG
;
174
}
175
else
if
(result ==
UHISTO
)
176
{
177
result =
URANDOM
;
178
}
179
else
if
(result ==
ULINLOG
)
180
{
181
result =
ULOGLIN
;
182
}
183
else
if
(result ==
ULOGLIN
)
184
{
185
result =
ULINLOG
;
186
}
187
return
result;
188
}
189
190
void
AppendScheme
(
G4int
aPoint,
const
G4InterpolationScheme
& aScheme);
191
192
private
:
193
194
G4int
nRanges
;
195
G4InterpolationScheme
*
scheme
;
196
G4int
*
start
;
197
G4int
*
range
;
198
G4int
nEntries
;
199
200
};
201
#endif
geant4
tree
geant4-10.6-release
source
processes
hadronic
models
particle_hp
include
G4InterpolationManager.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:47
using
1.8.2 with
ECCE GitHub integration