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
RawTowerZDCDigitizer.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file RawTowerZDCDigitizer.h
1
#ifndef EICZDCRECO_RAWTOWERZDCDIGITIZER_H
2
#define EICZDCRECO_RAWTOWERZDCDIGITIZER_H
3
4
#include <
fun4all/SubsysReco.h
>
5
6
#include <phparameter/PHParameters.h>
7
8
#include <string>
9
10
class
PHCompositeNode
;
11
class
RawTowerZDCContainer
;
12
class
RawTowerZDCGeomContainer
;
13
class
RawTowerZDCDeadMap
;
14
15
class
RawTowerZDC
;
16
17
#include <gsl/gsl_rng.h>
18
22
class
RawTowerZDCDigitizer
:
public
SubsysReco
23
{
24
public
:
25
RawTowerZDCDigitizer
(
const
std::string &
name
=
"RawTowerZDCDigitizer"
);
26
~RawTowerZDCDigitizer
()
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,
38
40
kSimple_photon_digitization
= 1,
41
43
kSiPM_photon_digitization
= 2
44
};
45
46
enu_digi_algorithm
47
get_digi_algorithm
()
const
48
{
49
return
m_DigiAlgorithm
;
50
}
51
52
void
53
set_digi_algorithm
(
enu_digi_algorithm
digiAlgorithm)
54
{
55
m_DigiAlgorithm
= digiAlgorithm;
56
}
57
58
double
59
get_pedestal_central_ADC
()
const
60
{
61
return
m_PedestalCentralADC
;
62
}
63
64
void
65
set_pedestal_central_ADC
(
const
double
pedestalCentralAdc)
66
{
67
m_PedestalCentralADC
= pedestalCentralAdc;
68
}
69
70
double
71
get_pedestal_width_ADC
()
const
72
{
73
return
m_PedestalWidthADC
;
74
}
75
76
void
77
set_pedestal_width_ADC
(
const
double
pedestalWidthAdc)
78
{
79
m_PedestalWidthADC
= pedestalWidthAdc;
80
}
81
82
double
83
get_photonelec_ADC
()
const
84
{
85
return
m_PhotonElecADC
;
86
}
87
88
void
89
set_photonelec_ADC
(
const
double
photonelecAdc)
90
{
91
m_PhotonElecADC
= photonelecAdc;
92
}
93
94
double
95
get_photonelec_yield_visible_GeV
()
const
96
{
97
return
m_PhotonElecYieldVisibleGeV
;
98
}
99
100
void
101
set_photonelec_yield_visible_GeV
(
const
double
photonelecYieldVisibleGeV)
102
{
103
m_PhotonElecYieldVisibleGeV
= photonelecYieldVisibleGeV;
104
}
105
106
double
107
get_zero_suppression_ADC
()
const
108
{
109
return
m_ZeroSuppressionADC
;
110
}
111
112
void
113
set_zero_suppression_ADC
(
const
double
zeroSuppressionAdc)
114
{
115
m_ZeroSuppressionADC
= zeroSuppressionAdc;
116
}
117
118
void
119
set_variable_zero_suppression
(
const
bool
value
)
120
{
121
m_ZeroSuppressionFile
=
value
;
122
}
123
124
void
125
set_variable_pedestal
(
const
bool
value
)
126
{
127
m_pedestalFile
=
value
;
128
}
129
130
PHParameters
&
131
GetParameters
()
132
{
133
return
_tower_params
;
134
}
135
136
std::string
137
get_raw_tower_node_prefix
()
const
138
{
139
return
m_RawTowerNodePrefix
;
140
}
141
142
void
143
set_raw_tower_node_prefix
(
const
std::string &rawTowerNodePrefix)
144
{
145
m_RawTowerNodePrefix
= rawTowerNodePrefix;
146
}
147
148
std::string
149
get_sim_tower_node_prefix
()
const
150
{
151
return
m_SimTowerNodePrefix
;
152
}
153
154
void
155
set_sim_tower_node_prefix
(
const
std::string &simTowerNodePrefix)
156
{
157
m_SimTowerNodePrefix
= simTowerNodePrefix;
158
}
159
160
// ! SiPM effective pixel per tower, only used with kSiPM_photon_digitalization
161
void
set_sipm_effective_pixel
(
const
unsigned
int
&
d
) {
m_SiPMEffectivePixel
=
d
; }
162
163
// ! SiPM effective pixel per tower, only used with kSiPM_photon_digitalization
164
unsigned
int
get_sipm_effective_pixel
() {
return
m_SiPMEffectivePixel
; }
165
166
private
:
167
void
CreateNodes
(
PHCompositeNode
*topNode);
168
172
RawTowerZDC
*
simple_photon_digitization
(
RawTowerZDC
*sim_tower);
173
176
RawTowerZDC
*
sipm_photon_digitization
(
RawTowerZDC
*sim_tower);
177
178
enu_digi_algorithm
m_DigiAlgorithm
;
179
180
RawTowerZDCContainer
*
m_SimTowers
;
181
RawTowerZDCContainer
*
m_RawTowers
;
182
RawTowerZDCGeomContainer
*
m_RawTowerGeom
;
183
RawTowerZDCDeadMap
*
m_DeadMap
;
184
185
std::string
m_Detector
;
186
187
std::string
m_SimTowerNodePrefix
;
188
std::string
m_RawTowerNodePrefix
;
189
191
double
m_PhotonElecYieldVisibleGeV
;
192
194
double
m_PhotonElecADC
;
195
197
double
m_PedestalCentralADC
;
198
200
double
m_PedestalWidthADC
;
201
203
bool
m_pedestalFile
;
204
206
double
m_ZeroSuppressionADC
;
207
209
bool
m_ZeroSuppressionFile
;
210
212
int
m_TowerType
;
213
214
unsigned
int
m_Seed
;
215
216
// ! SiPM effective pixel per tower, only used with kSiPM_photon_digitalization
217
unsigned
int
m_SiPMEffectivePixel
;
218
219
PHParameters
_tower_params
;
220
221
gsl_rng *
m_RandomGenerator
;
222
};
223
224
#endif
/* G4CALO_RAWTOWERDIGITIZER_H */
fun4all_eicdetectors
blob
master
reconstruction
eiczdcreco
RawTowerZDCDigitizer.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:46
using
1.8.2 with
ECCE GitHub integration