Analysis Software
Documentation for
sPHENIX
simulation software
Home page
Related Pages
Modules
Namespaces
Classes
Files
Examples
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
ActsEvaluator.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file ActsEvaluator.h
1
#ifndef ACTSEVALUATOR_H
2
#define ACTSEVALUATOR_H
3
4
#include <
fun4all/SubsysReco.h
>
5
6
#include <
trackbase/ActsGeometry.h
>
7
#include <
trackbase/ActsSourceLink.h
>
8
#include <
trackbase/ActsTrackFittingAlgorithm.h
>
9
#include <
trackbase/TrkrDefs.h
>
10
11
#include <
Acts/Utilities/Helpers.hpp
>
12
13
#include <
ActsExamples/EventData/Trajectories.hpp
>
14
15
class
TTree;
16
class
TFile;
17
class
PHG4Particle
;
18
class
SvtxTrack
;
19
class
SvtxVertexMap
;
20
class
SvtxEvalStack
;
21
class
SvtxTrackMap
;
22
class
PHG4TruthInfoContainer
;
23
class
TrkrClusterContainer
;
24
class
SvtxEvaluator
;
25
class
TrackSeed
;
26
class
TrackSeedContainer
;
27
28
#include <map>
29
#include <string>
30
#include <vector>
31
32
using
SourceLink
=
ActsSourceLink
;
33
using
Trajectory
=
ActsExamples::Trajectories
;
34
using
Measurement
=
Acts::Measurement<Acts::BoundIndices, 2>
;
35
using
Acts::VectorHelpers::eta
;
36
using
Acts::VectorHelpers::perp
;
37
using
Acts::VectorHelpers::phi
;
38
using
Acts::VectorHelpers::theta
;
39
48
class
ActsEvaluator
49
{
50
public
:
51
ActsEvaluator
(
const
std::string
&
name
=
"ActsEvaluator.root"
);
52
~ActsEvaluator
();
53
54
void
Init
(
PHCompositeNode
* topNode);
55
void
process_track
(
const
ActsTrackFittingAlgorithm::TrackContainer
&
tracks
,
56
std::vector<Acts::MultiTrajectoryTraits::IndexType>& trackTips,
57
Trajectory::IndexedParameters
& paramsMap,
58
SvtxTrack
* track,
59
const
TrackSeed
*
seed
,
60
const
ActsTrackFittingAlgorithm::MeasurementContainer
& measurements);
61
void
End
();
62
void
setEvalCKF
(
bool
evalCKF) {
m_evalCKF
= evalCKF; }
63
void
verbosity
(
int
verb) {
m_verbosity
= verb; }
64
void
next_event
(
PHCompositeNode
* topNode);
65
67
void
evaluateTrackFit
(
const
ActsTrackFittingAlgorithm::TrackContainer
& trackContainer,
68
std::vector<Acts::MultiTrajectoryTraits::IndexType>& trackTips,
69
Trajectory::IndexedParameters
& paramsMap,
70
SvtxTrack
* track,
71
const
TrackSeed
* seed,
72
const
ActsTrackFittingAlgorithm::MeasurementContainer
& measurements);
73
74
private
:
75
int
getNodes
(
PHCompositeNode
* topNode);
76
77
void
initializeTree
();
78
79
void
fillG4Particle
(
PHG4Particle
* part);
80
81
void
fillProtoTrack
(
const
TrackSeed
* seed);
82
83
void
fillFittedTrackParams
(
const
Trajectory::IndexedParameters
& paramsMap,
84
const
size_t
& trackTip);
85
86
void
visitTrackStates
(
const
Acts::ConstVectorMultiTrajectory
& traj,
87
const
size_t
& trackTip,
88
const
ActsTrackFittingAlgorithm::MeasurementContainer
& measurements);
89
90
void
clearTrackVariables
();
91
92
Surface
getSurface
(
TrkrDefs::cluskey
cluskey
,
TrkrCluster
* cluster);
93
94
Acts::Vector3
getGlobalTruthHit
(
TrkrDefs::cluskey
cluskey
,
95
float
& _gt);
96
97
SvtxEvaluator
*
m_svtxEvaluator
{
nullptr
};
98
PHG4TruthInfoContainer
*
m_truthInfo
{
nullptr
};
99
SvtxTrackMap
*
m_trackMap
{
nullptr
}, *
m_actsProtoTrackMap
{
nullptr
};
100
SvtxEvalStack
*
m_svtxEvalStack
{
nullptr
};
101
102
ActsGeometry
*
m_tGeometry
{
nullptr
};
103
TrkrClusterContainer
*
m_clusterContainer
{
nullptr
};
104
TrackSeedContainer
*
m_tpcSeeds
{
nullptr
}, *
m_siliconSeeds
{
nullptr
};
105
109
bool
m_evalCKF
=
false
;
110
int
m_verbosity
= 0;
111
std::string
m_filename
;
112
TFile*
m_trackFile
{
nullptr
};
113
TTree*
m_trackTree
{
nullptr
};
114
116
int
m_eventNr
{0};
117
int
m_trajNr
{0};
118
int
m_trackNr
{0};
119
120
unsigned
long
m_t_barcode
{0};
121
int
m_t_charge
{0};
122
float
m_t_time
{0};
123
float
m_t_vx
{NAN};
124
float
m_t_vy
{NAN};
125
float
m_t_vz
{NAN};
126
float
m_t_px
{NAN};
127
float
m_t_py
{NAN};
128
float
m_t_pz
{NAN};
129
float
m_t_theta
{NAN};
130
float
m_t_phi
{NAN};
131
float
m_t_pT
{NAN};
132
float
m_t_eta
{NAN};
133
134
std::vector<float>
m_t_x
;
135
std::vector<float>
m_t_y
;
136
std::vector<float>
m_t_z
;
137
std::vector<float>
m_t_r
;
138
std::vector<float>
139
m_t_dx
;
140
std::vector<float>
141
m_t_dy
;
142
std::vector<float>
143
m_t_dz
;
144
145
std::vector<float>
m_t_eLOC0
;
146
std::vector<float>
m_t_eLOC1
;
147
std::vector<float>
m_t_ePHI
;
148
std::vector<float>
m_t_eTHETA
;
149
std::vector<float>
m_t_eQOP
;
150
std::vector<float>
m_t_eT
;
151
152
int
m_nSharedHits
{0};
153
int
m_nHoles
{0};
154
int
m_nOutliers
{0};
155
int
m_nStates
{0};
156
int
m_nMeasurements
{0};
157
std::vector<int>
m_volumeID
;
158
std::vector<int>
m_layerID
;
159
std::vector<int>
m_moduleID
;
160
std::vector<float>
m_lx_hit
;
161
std::vector<float>
m_ly_hit
;
162
std::vector<float>
m_x_hit
;
163
std::vector<float>
m_y_hit
;
164
std::vector<float>
m_z_hit
;
165
std::vector<float>
m_res_x_hit
;
166
std::vector<float>
m_res_y_hit
;
167
std::vector<float>
m_err_x_hit
;
168
std::vector<float>
m_err_y_hit
;
169
std::vector<float>
m_pull_x_hit
;
170
std::vector<float>
m_pull_y_hit
;
171
std::vector<int>
m_dim_hit
;
172
173
bool
m_hasFittedParams
{
false
};
174
float
m_eLOC0_fit
{NAN};
175
float
m_eLOC1_fit
{NAN};
176
float
m_ePHI_fit
{NAN};
177
float
m_eTHETA_fit
{NAN};
178
float
m_eQOP_fit
{NAN};
179
float
m_eT_fit
{NAN};
180
float
m_err_eLOC0_fit
{NAN};
181
float
m_err_eLOC1_fit
{NAN};
182
float
m_err_ePHI_fit
{NAN};
183
float
m_err_eTHETA_fit
{NAN};
184
float
m_err_eQOP_fit
{NAN};
185
float
m_err_eT_fit
{NAN};
186
float
m_px_fit
{NAN};
187
float
m_py_fit
{NAN};
188
float
m_pz_fit
{NAN};
189
float
m_x_fit
{NAN};
190
float
m_y_fit
{NAN};
191
float
m_z_fit
{NAN};
192
float
m_chi2_fit
{NAN};
193
float
m_quality
{NAN};
194
float
m_ndf_fit
{NAN};
195
float
m_dca3Dxy
{NAN};
196
float
m_dca3Dz
{NAN};
197
float
m_dca3DxyCov
{NAN};
198
float
m_dca3DzCov
{NAN};
199
int
m_charge_fit
{-9999999};
200
201
int
m_nPredicted
{0};
202
std::vector<bool>
m_prt
;
203
std::vector<float>
m_eLOC0_prt
;
204
std::vector<float>
m_eLOC1_prt
;
205
std::vector<float>
m_ePHI_prt
;
206
std::vector<float>
m_eTHETA_prt
;
207
std::vector<float>
m_eQOP_prt
;
208
std::vector<float>
m_eT_prt
;
209
std::vector<float>
m_res_eLOC0_prt
;
210
std::vector<float>
m_res_eLOC1_prt
;
211
std::vector<float>
m_res_ePHI_prt
;
212
std::vector<float>
m_res_eTHETA_prt
;
213
std::vector<float>
m_res_eQOP_prt
;
214
std::vector<float>
m_res_eT_prt
;
215
std::vector<float>
m_err_eLOC0_prt
;
216
std::vector<float>
m_err_eLOC1_prt
;
217
std::vector<float>
m_err_ePHI_prt
;
218
std::vector<float>
m_err_eTHETA_prt
;
219
std::vector<float>
m_err_eQOP_prt
;
220
std::vector<float>
m_err_eT_prt
;
221
std::vector<float>
m_pull_eLOC0_prt
;
222
std::vector<float>
m_pull_eLOC1_prt
;
223
std::vector<float>
m_pull_ePHI_prt
;
224
std::vector<float>
m_pull_eTHETA_prt
;
225
std::vector<float>
m_pull_eQOP_prt
;
226
std::vector<float>
m_pull_eT_prt
;
227
std::vector<float>
m_x_prt
;
228
std::vector<float>
m_y_prt
;
229
std::vector<float>
m_z_prt
;
230
std::vector<float>
m_px_prt
;
231
std::vector<float>
m_py_prt
;
232
std::vector<float>
m_pz_prt
;
233
std::vector<float>
m_eta_prt
;
234
std::vector<float>
m_pT_prt
;
235
236
int
m_nFiltered
{0};
237
std::vector<bool>
m_flt
;
238
std::vector<float>
m_eLOC0_flt
;
239
std::vector<float>
m_eLOC1_flt
;
240
std::vector<float>
m_ePHI_flt
;
241
std::vector<float>
m_eTHETA_flt
;
242
std::vector<float>
m_eQOP_flt
;
243
std::vector<float>
m_eT_flt
;
244
std::vector<float>
m_res_eLOC0_flt
;
245
std::vector<float>
m_res_eLOC1_flt
;
246
std::vector<float>
m_res_ePHI_flt
;
247
std::vector<float>
m_res_eTHETA_flt
;
248
std::vector<float>
m_res_eQOP_flt
;
249
std::vector<float>
m_res_eT_flt
;
250
std::vector<float>
m_err_eLOC0_flt
;
251
std::vector<float>
m_err_eLOC1_flt
;
252
std::vector<float>
m_err_ePHI_flt
;
253
std::vector<float>
m_err_eTHETA_flt
;
254
std::vector<float>
m_err_eQOP_flt
;
255
std::vector<float>
m_err_eT_flt
;
256
std::vector<float>
m_pull_eLOC0_flt
;
257
std::vector<float>
m_pull_eLOC1_flt
;
258
std::vector<float>
m_pull_ePHI_flt
;
259
std::vector<float>
m_pull_eTHETA_flt
;
260
std::vector<float>
m_pull_eQOP_flt
;
261
std::vector<float>
m_pull_eT_flt
;
262
std::vector<float>
m_x_flt
;
263
std::vector<float>
m_y_flt
;
264
std::vector<float>
m_z_flt
;
265
std::vector<float>
m_px_flt
;
266
std::vector<float>
m_py_flt
;
267
std::vector<float>
m_pz_flt
;
268
std::vector<float>
m_eta_flt
;
269
std::vector<float>
m_pT_flt
;
270
std::vector<float>
m_chi2
;
271
272
int
m_nSmoothed
{0};
273
std::vector<bool>
m_smt
;
274
std::vector<float>
m_eLOC0_smt
;
275
std::vector<float>
m_eLOC1_smt
;
276
std::vector<float>
m_ePHI_smt
;
277
std::vector<float>
m_eTHETA_smt
;
278
std::vector<float>
m_eQOP_smt
;
279
std::vector<float>
m_eT_smt
;
280
std::vector<float>
m_res_eLOC0_smt
;
281
std::vector<float>
m_res_eLOC1_smt
;
282
std::vector<float>
m_res_ePHI_smt
;
283
std::vector<float>
m_res_eTHETA_smt
;
284
std::vector<float>
m_res_eQOP_smt
;
285
std::vector<float>
m_res_eT_smt
;
286
std::vector<float>
m_err_eLOC0_smt
;
287
std::vector<float>
m_err_eLOC1_smt
;
288
std::vector<float>
m_err_ePHI_smt
;
289
std::vector<float>
m_err_eTHETA_smt
;
290
std::vector<float>
m_err_eQOP_smt
;
291
std::vector<float>
m_err_eT_smt
;
292
std::vector<float>
m_pull_eLOC0_smt
;
293
std::vector<float>
m_pull_eLOC1_smt
;
294
std::vector<float>
m_pull_ePHI_smt
;
295
std::vector<float>
m_pull_eTHETA_smt
;
296
std::vector<float>
m_pull_eQOP_smt
;
297
std::vector<float>
m_pull_eT_smt
;
298
std::vector<float>
m_x_smt
;
299
std::vector<float>
m_y_smt
;
300
std::vector<float>
m_z_smt
;
301
std::vector<float>
m_px_smt
;
302
std::vector<float>
m_py_smt
;
303
std::vector<float>
m_pz_smt
;
304
std::vector<float>
m_eta_smt
;
305
std::vector<float>
m_pT_smt
;
306
307
float
m_protoTrackPx
{NAN};
308
float
m_protoTrackPy
{NAN};
309
float
m_protoTrackPz
{NAN};
310
float
m_protoTrackX
{NAN};
311
float
m_protoTrackY
{NAN};
312
float
m_protoTrackZ
{NAN};
313
float
m_protoD0Cov
{NAN};
314
float
m_protoZ0Cov
{NAN};
315
float
m_protoPhiCov
{NAN};
316
float
m_protoThetaCov
{NAN};
317
float
m_protoQopCov
{NAN};
318
319
std::vector<float>
m_SL_lx
;
320
std::vector<float>
m_SL_ly
;
321
std::vector<float>
m_SLx
;
322
std::vector<float>
m_SLy
;
323
std::vector<float>
m_SLz
;
324
std::vector<float>
m_t_SL_lx
;
325
std::vector<float>
m_t_SL_ly
;
326
std::vector<float>
m_t_SL_gx
;
327
std::vector<float>
m_t_SL_gy
;
328
std::vector<float>
m_t_SL_gz
;
329
};
330
331
#endif
coresoftware
blob
master
offline
packages
trackreco
ActsEvaluator.h
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:18:10
using
1.8.2 with
sPHENIX GitHub integration