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
RawTowerDigitizer.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file RawTowerDigitizer.h
1
#ifndef G4CALO_RAWTOWERDIGITIZER_H
2
#define G4CALO_RAWTOWERDIGITIZER_H
3
4
#include <
fun4all/SubsysReco.h
>
5
6
#include <phparameter/PHParameters.h>
7
8
#include <string>
9
10
class
PHCompositeNode
;
11
class
RawTowerContainer
;
12
class
RawTowerGeomContainer
;
13
class
RawTowerDeadMap
;
14
15
class
RawTower
;
16
17
#include <gsl/gsl_rng.h>
18
22
class
RawTowerDigitizer
:
public
SubsysReco
23
{
24
public
:
25
RawTowerDigitizer
(
const
std::string &
name
=
"RawTowerDigitizer"
);
26
~RawTowerDigitizer
()
override
;
27
28
int
InitRun
(
PHCompositeNode
*topNode)
override
;
29
int
process_event
(
PHCompositeNode
*topNode)
override
;
30
void
Detector
(
const
std::string &
d
) {
m_Detector
=
d
;
_tower_params
.
set_name
(d);}
31
void
TowerType
(
const
int
type) {
m_TowerType
= type; }
32
void
set_seed
(
const
unsigned
int
iseed);
33
unsigned
int
get_seed
()
const
{
return
m_Seed
; }
34
enum
enu_digi_algorithm
35
{
37
kNo_digitization
= 0,
39
kNo_digitalization
= 0,
40
42
kSimple_photon_digitization
= 1,
44
kSimple_photon_digitalization
= 1,
45
47
kSiPM_photon_digitization
= 2
48
};
49
50
enu_digi_algorithm
51
get_digi_algorithm
()
const
52
{
53
return
m_DigiAlgorithm
;
54
}
55
56
void
57
set_digi_algorithm
(
enu_digi_algorithm
digiAlgorithm)
58
{
59
m_DigiAlgorithm
= digiAlgorithm;
60
}
61
62
double
63
get_pedstal_central_ADC
()
const
64
{
65
return
m_PedstalCentralADC
;
66
}
67
68
void
69
set_pedstal_central_ADC
(
const
double
pedstalCentralAdc)
70
{
71
m_PedstalCentralADC
= pedstalCentralAdc;
72
}
73
74
double
75
get_pedstal_width_ADC
()
const
76
{
77
return
m_PedstalWidthADC
;
78
}
79
80
void
81
set_pedstal_width_ADC
(
const
double
pedstalWidthAdc)
82
{
83
m_PedstalWidthADC
= pedstalWidthAdc;
84
}
85
86
double
87
get_photonelec_ADC
()
const
88
{
89
return
m_PhotonElecADC
;
90
}
91
92
void
93
set_photonelec_ADC
(
const
double
photonelecAdc)
94
{
95
m_PhotonElecADC
= photonelecAdc;
96
}
97
98
double
99
get_photonelec_yield_visible_GeV
()
const
100
{
101
return
m_PhotonElecYieldVisibleGeV
;
102
}
103
104
void
105
set_photonelec_yield_visible_GeV
(
const
double
photonelecYieldVisibleGeV)
106
{
107
m_PhotonElecYieldVisibleGeV
= photonelecYieldVisibleGeV;
108
}
109
110
double
111
get_zero_suppression_ADC
()
const
112
{
113
return
m_ZeroSuppressionADC
;
114
}
115
116
void
117
set_zero_suppression_ADC
(
const
double
zeroSuppressionAdc)
118
{
119
m_ZeroSuppressionADC
= zeroSuppressionAdc;
120
}
121
122
void
123
set_variable_zero_suppression
(
const
bool
value
)
124
{
125
m_ZeroSuppressionFile
=
value
;
126
}
127
128
void
129
set_variable_pedestal
(
const
bool
value
)
130
{
131
m_pedestalFile
=
value
;
132
}
133
134
PHParameters
&
135
GetParameters
()
136
{
137
return
_tower_params
;
138
}
139
140
std::string
141
get_raw_tower_node_prefix
()
const
142
{
143
return
m_RawTowerNodePrefix
;
144
}
145
146
void
147
set_raw_tower_node_prefix
(
const
std::string &rawTowerNodePrefix)
148
{
149
m_RawTowerNodePrefix
= rawTowerNodePrefix;
150
}
151
152
std::string
153
get_sim_tower_node_prefix
()
const
154
{
155
return
m_SimTowerNodePrefix
;
156
}
157
158
void
159
set_sim_tower_node_prefix
(
const
std::string &simTowerNodePrefix)
160
{
161
m_SimTowerNodePrefix
= simTowerNodePrefix;
162
}
163
164
// ! SiPM effective pixel per tower, only used with kSiPM_photon_digitalization
165
void
set_sipm_effective_pixel
(
const
unsigned
int
&
d
) {
m_SiPMEffectivePixel
=
d
; }
166
167
// ! SiPM effective pixel per tower, only used with kSiPM_photon_digitalization
168
unsigned
int
get_sipm_effective_pixel
() {
return
m_SiPMEffectivePixel
; }
169
170
private
:
171
void
CreateNodes
(
PHCompositeNode
*topNode);
172
176
RawTower
*
simple_photon_digitization
(
RawTower
*sim_tower);
177
180
RawTower
*
sipm_photon_digitization
(
RawTower
*sim_tower);
181
182
enu_digi_algorithm
m_DigiAlgorithm
;
183
184
RawTowerContainer
*
m_SimTowers
;
185
RawTowerContainer
*
m_RawTowers
;
186
RawTowerGeomContainer
*
m_RawTowerGeom
;
187
RawTowerDeadMap
*
m_DeadMap
;
188
189
std::string
m_Detector
;
190
191
std::string
m_SimTowerNodePrefix
;
192
std::string
m_RawTowerNodePrefix
;
193
195
double
m_PhotonElecYieldVisibleGeV
;
196
198
double
m_PhotonElecADC
;
199
201
double
m_PedstalCentralADC
;
202
204
double
m_PedstalWidthADC
;
205
207
bool
m_pedestalFile
;
208
210
double
m_ZeroSuppressionADC
;
211
213
bool
m_ZeroSuppressionFile
;
214
216
int
m_TowerType
;
217
218
unsigned
int
m_Seed
;
219
220
// ! SiPM effective pixel per tower, only used with kSiPM_photon_digitalization
221
unsigned
int
m_SiPMEffectivePixel
;
222
223
PHParameters
_tower_params
;
224
225
gsl_rng *
m_RandomGenerator
;
226
};
227
228
#endif
/* G4CALO_RAWTOWERDIGITIZER_H */
coresoftware
blob
master
simulation
g4simulation
g4calo
RawTowerDigitizer.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:40
using
1.8.2 with
ECCE GitHub integration