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
eIDMLInterface.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file eIDMLInterface.h
1
#ifndef eIDMLInterface_H__
2
#define eIDMLInterface_H__
3
4
#include <
fun4all/SubsysReco.h
>
5
7
class
Fun4AllHistoManager
;
8
class
PHCompositeNode
;
9
class
TFile;
10
class
TTree;
11
class
TH1;
12
class
TH2;
13
class
PHCompositeNode
;
14
class
RawClusterContainer
;
15
class
RawCluster
;
16
class
SvtxTrackMap
;
17
class
JetMap
;
18
class
GlobalVertex
;
19
class
PHHepMCGenEventMap
;
20
class
JetEvalStack
;
21
class
JetRecoEval
;
22
class
PHG4TruthInfoContainer
;
23
class
PHHepMCGenEvent
;
24
class
CaloTriggerInfo
;
25
class
JetTruthEval
;
26
class
JetEvalStack
;
27
class
SvtxEvalStack
;
28
29
#include <map>
30
#include <utility>
31
#include <vector>
32
34
class
eIDMLInterface
:
public
SubsysReco
35
{
36
public
:
38
eIDMLInterface
(
const
std::vector<std::string> &names = {
"BECAL"
},
39
const
std::string &
fname
=
"eIDMLInterface.root"
);
40
41
// Destructor
42
virtual
~eIDMLInterface
();
43
45
int
Init
(
PHCompositeNode
*);
46
48
int
process_event
(
PHCompositeNode
*);
49
51
int
End
(
PHCompositeNode
*);
52
54
void
setMinJetPt
(
float
minjetpt) {
m_minjetpt
= minjetpt; }
55
57
void
setMinClusPt
(
float
mincluspt) {
m_mincluspt
= mincluspt; }
58
60
void
analyzeTracks
(
bool
analyzeTracks
) {
m_analyzeTracks
=
analyzeTracks
; }
61
void
analyzeClusters
(
bool
analyzeClusters
) {
m_analyzeClusters
=
analyzeClusters
; }
62
void
analyzeJets
(
bool
analyzeJets
) {
m_analyzeJets
=
analyzeJets
; }
63
void
analyzeTruth
(
bool
analyzeTruth
) {
m_analyzeTruth
=
analyzeTruth
; }
64
65
void
setEtaRange
(
double
min
,
double
max
)
66
{
67
m_etaRange
.first =
min
;
68
m_etaRange
.second =
max
;
69
}
70
71
private
:
72
std::pair<double, double>
m_etaRange
{-.5, .5};
73
// eval stack
74
SvtxEvalStack
*
_svtxevalstack
=
nullptr
;
75
;
76
77
std::vector<std::string>
_calo_names
;
78
79
struct
CaloData
80
{
81
std::vector<float>
m_TTree_proj_vec
= {0, 0, 0, 0};
82
std::vector<float>
m_TTree_proj_p_vec
= {0, 0, 0};
83
static
const
int
m_sizeTowerPatch
= 7;
84
int
nTowerInPatch
=
m_sizeTowerPatch
*
m_sizeTowerPatch
;
85
std::vector<float>
m_TTree_Tower_dEta
= std::vector<float>(
m_sizeTowerPatch
*
m_sizeTowerPatch
, 0);
86
std::vector<float>
m_TTree_Tower_dPhi
= std::vector<float>(
m_sizeTowerPatch
*
m_sizeTowerPatch
, 0);
87
std::vector<int>
m_TTree_Tower_iEta_patch
= std::vector<int>(
m_sizeTowerPatch
*
m_sizeTowerPatch
, 0);
88
std::vector<int>
m_TTree_Tower_iPhi_patch
= std::vector<int>(
m_sizeTowerPatch
*
m_sizeTowerPatch
, 0);
89
std::vector<float>
m_TTree_Tower_E
= std::vector<float>(
m_sizeTowerPatch
*
m_sizeTowerPatch
, 0);
90
float
m_E3x3
= 0;
91
float
m_E5x5
= 0;
92
float
m_E7x7
= 0;
93
int
m_centralTowerBinEta
= 0;
94
int
m_centralTowerBinPhi
= 0;
95
96
void
initializeVariables
();
97
};
98
99
std::map<std::string, CaloData>
m_CaloDataMap
;
100
102
std::string
m_outfilename
;
103
105
Fun4AllHistoManager
*
m_hm
;
106
108
float
m_minjetpt
;
109
111
float
m_mincluspt
;
112
114
bool
m_analyzeTracks
;
115
117
bool
m_analyzeClusters
;
118
120
bool
m_analyzeJets
;
121
123
bool
m_analyzeTruth
;
124
126
TFile *
m_outfile
;
127
TTree *
m_clustertree
;
128
TTree *
m_tracktree
;
129
TTree *
m_hepmctree
;
130
TTree *
m_truthtree
;
131
TTree *
m_recojettree
;
132
TTree *
m_truthjettree
;
133
TH1 *
m_phi_h
;
134
TH2 *
m_eta_phi_h
;
135
136
JetEvalStack
*
m_jetEvalStack
=
nullptr
;
137
139
void
getTracks
(
PHCompositeNode
*topNode);
140
void
getTruthJets
(
PHCompositeNode
*topNode);
141
void
getReconstructedJets
(
PHCompositeNode
*topNode);
142
void
getEMCalClusters
(
PHCompositeNode
*topNode);
143
void
getHEPMCTruth
(
PHCompositeNode
*topNode);
144
void
getPHG4Truth
(
PHCompositeNode
*topNode);
145
146
void
initializeVariables
();
147
void
initializeTrees
();
148
153
154
int
m_partid1
;
155
int
m_partid2
;
156
double
m_x1
;
157
double
m_x2
;
158
int
m_mpi
;
159
int
m_process_id
;
160
double
m_truthenergy
;
161
double
m_trutheta
;
162
double
m_truthphi
;
163
double
m_truthpx
;
164
double
m_truthpy
;
165
double
m_truthpz
;
166
double
m_truthpt
;
167
double
m_truthp
;
168
int
m_numparticlesinevent
;
169
int
m_truthpid
;
170
172
double
m_tr_px
;
173
double
m_tr_py
;
174
double
m_tr_pz
;
175
double
m_tr_p
;
176
double
m_tr_pt
;
177
double
m_tr_phi
;
178
double
m_tr_eta
;
179
int
m_charge
;
180
double
m_chisq
;
181
int
m_ndf
;
182
double
m_dca
;
183
double
m_tr_x
;
184
double
m_tr_y
;
185
double
m_tr_z
;
186
float
m_tr_pion_loglikelihood
;
187
float
m_tr_kaon_loglikelihood
;
188
float
m_tr_proton_loglikelihood
;
189
int
m_truth_is_primary
;
190
double
m_truthtrackpx
;
191
double
m_truthtrackpy
;
192
double
m_truthtrackpz
;
193
double
m_truthtrackp
;
194
double
m_truthtracke
;
195
double
m_truthtrackpt
;
196
double
m_truthtrackphi
;
197
double
m_truthtracketa
;
198
int
m_truthtrackpid
;
199
201
double
m_recojetpt
;
202
int
m_recojetid
;
203
double
m_recojetpx
;
204
double
m_recojetpy
;
205
double
m_recojetpz
;
206
double
m_recojetphi
;
207
double
m_recojetp
;
208
double
m_recojetenergy
;
209
double
m_recojeteta
;
210
int
m_truthjetid
;
211
double
m_truthjetp
;
212
double
m_truthjetphi
;
213
double
m_truthjeteta
;
214
double
m_truthjetpt
;
215
double
m_truthjetenergy
;
216
double
m_truthjetpx
;
217
double
m_truthjetpy
;
218
double
m_truthjetpz
;
219
double
m_dR
;
220
222
double
m_clusenergy
;
223
double
m_cluseta
;
224
double
m_clustheta
;
225
double
m_cluspt
;
226
double
m_clusphi
;
227
double
m_cluspx
;
228
double
m_cluspy
;
229
double
m_cluspz
;
230
double
m_E_4x4
;
231
};
232
233
#endif
analysis
blob
master
eIDML
src
eIDMLInterface.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:28
using
1.8.2 with
ECCE GitHub integration