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
G4GIDI_target.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4GIDI_target.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
# <<BEGIN-copyright>>
28
# <<END-copyright>>
29
*/
30
#ifndef G4GIDI_target_h_included
31
#define G4GIDI_target_h_included 1
32
33
#include <vector>
34
#include <string>
35
36
//using namespace std;
37
38
#include <
statusMessageReporting.h
>
39
40
#include <
MCGIDI.h
>
41
42
typedef
struct
crossSectionData_s
crossSectionData
;
43
typedef
struct
G4GIDI_Product_s
G4GIDI_Product
;
44
45
struct
crossSectionData_s
{
46
int
start
,
end
;
47
std::vector<double>
crossSection
;
48
};
49
50
#define channelID std::string
51
52
struct
G4GIDI_Product_s
{
53
int
A
,
Z
,
m
;
54
double
kineticEnergy
,
px
,
py
,
pz
;
55
double
birthTimeSec
;
56
};
57
58
class
G4GIDI_target
{
59
60
public
:
61
void
init
(
const
char
*fileName );
62
std::string
equalProbableBinSampleMethod
;
63
int
nElasticIndices
,
nCaptureIndices
,
nFissionIndices
,
nOthersIndices
;
64
int
*
elasticIndices
, *
captureIndices
, *
fissionIndices
, *
othersIndices
;
65
66
public
:
67
GIDI::statusMessageReporting
smr
;
68
int
projectilesPOPID
;
69
std::string
name
;
70
std::string
sourceFilename
;
71
double
mass
;
72
GIDI::MCGIDI_target
*
target
;
73
74
G4GIDI_target
(
const
char
*fileName );
75
G4GIDI_target
( std::string
const
&fileName );
76
~G4GIDI_target
( );
77
78
std::string *
getName
(
void
);
79
std::string *
getFilename
(
void
);
80
int
getZ
(
void
);
81
int
getA
(
void
);
82
int
getM
(
void
);
83
double
getMass
(
void
);
84
int
getTemperatures
(
double
*temperatures );
85
int
readTemperature
(
int
index );
86
std::string
getEqualProbableBinSampleMethod
(
void
);
87
int
setEqualProbableBinSampleMethod
( std::string method );
88
89
int
getNumberOfChannels
(
void
);
90
int
getNumberOfProductionChannels
(
void
);
91
channelID
getChannelsID
(
int
channelIndex );
92
std::vector<channelID> *
getChannelIDs
(
void
);
93
std::vector<channelID> *
getProductionChannelIDs
(
void
);
94
95
std::vector<double> *
getEnergyGridAtTIndex
(
int
index );
96
97
double
getTotalCrossSectionAtE
(
double
e_in,
double
temperature );
98
double
getElasticCrossSectionAtE
(
double
e_in,
double
temperature );
99
double
getCaptureCrossSectionAtE
(
double
e_in,
double
temperature );
100
double
getFissionCrossSectionAtE
(
double
e_in,
double
temperature );
101
double
getOthersCrossSectionAtE
(
double
e_in,
double
temperature );
102
double
sumChannelCrossSectionAtE
(
int
nIndices,
int
*indices,
double
e_in,
double
temperature );
103
int
sampleChannelCrossSectionAtE
(
int
nIndices,
int
*indices,
double
e_in,
double
temperature,
double
(*rng)(
void
* ),
void
*rngState );
104
105
double
getElasticFinalState
(
double
e_in,
double
temperature,
double
(*rng)(
void
* ),
void
*rngState );
106
std::vector<G4GIDI_Product> *
getCaptureFinalState
(
double
e_in,
double
temperature,
double
(*rng)(
void
* ),
void
*rngState );
107
std::vector<G4GIDI_Product> *
getFissionFinalState
(
double
e_in,
double
temperature,
double
(*rng)(
void
* ),
void
*rngState );
108
std::vector<G4GIDI_Product> *
getOthersFinalState
(
double
e_in,
double
temperature,
double
(*rng)(
void
* ),
void
*rngState );
109
std::vector<G4GIDI_Product> *
getFinalState
(
int
nIndices,
int
*indices,
double
e_in,
double
temperature,
double
(*rng)(
void
* ),
void
*rngState );
110
111
double
getReactionsThreshold
(
int
index );
112
double
getReactionsDomain
(
int
index,
double
*EMin,
double
*EMax );
113
};
114
115
#endif // End of G4GIDI_target_h_included
geant4
tree
geant4-10.6-release
source
processes
hadronic
models
lend
include
G4GIDI_target.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:46
using
1.8.2 with
ECCE GitHub integration