16 #include <TEfficiency.h>
149 tree->Draw(
"event_nr",
"",
"goff");
159 new std::vector<float>;
161 new std::vector<float>;
163 new std::vector<float>;
165 new std::vector<float>;
167 new std::vector<float>;
169 new std::vector<float>;
171 new std::vector<float>;
173 new std::vector<float>;
175 new std::vector<float>;
177 new std::vector<float>;
179 new std::vector<float>;
180 std::vector<float>*
T_flt =
new std::vector<float>;
182 new std::vector<float>;
184 new std::vector<float>;
186 new std::vector<float>;
188 new std::vector<float>;
190 new std::vector<float>;
191 std::vector<float>*
T_smt =
new std::vector<float>;
194 new std::vector<float>;
196 new std::vector<float>;
198 new std::vector<float>;
200 new std::vector<float>;
202 new std::vector<float>;
204 new std::vector<float>;
206 new std::vector<float>;
208 new std::vector<float>;
210 new std::vector<float>;
212 new std::vector<float>;
214 new std::vector<float>;
216 new std::vector<float>;
218 new std::vector<float>;
220 new std::vector<float>;
222 new std::vector<float>;
224 new std::vector<float>;
226 new std::vector<float>;
228 new std::vector<float>;
231 new std::vector<float>;
233 new std::vector<float>;
235 new std::vector<float>;
237 new std::vector<float>;
239 new std::vector<float>;
241 new std::vector<float>;
243 new std::vector<float>;
245 new std::vector<float>;
247 new std::vector<float>;
249 new std::vector<float>;
251 new std::vector<float>;
253 new std::vector<float>;
255 new std::vector<float>;
257 new std::vector<float>;
259 new std::vector<float>;
261 new std::vector<float>;
263 new std::vector<float>;
265 new std::vector<float>;
267 std::vector<float>*
g_x_prt =
new std::vector<float>;
268 std::vector<float>*
g_y_prt =
new std::vector<float>;
269 std::vector<float>*
g_z_prt =
new std::vector<float>;
270 std::vector<float>*
g_x_flt =
new std::vector<float>;
271 std::vector<float>*
g_y_flt =
new std::vector<float>;
272 std::vector<float>*
g_z_flt =
new std::vector<float>;
273 std::vector<float>*
g_x_smt =
new std::vector<float>;
274 std::vector<float>*
g_y_smt =
new std::vector<float>;
275 std::vector<float>*
g_z_smt =
new std::vector<float>;
282 std::vector<bool>*
filtered =
new std::vector<bool>;
283 std::vector<bool>*
smoothed =
new std::vector<bool>;
304 tree->SetBranchAddress(
"NDF", &
NDF);
318 tree->SetBranchAddress(
"t_p", &
t_p);
319 tree->SetBranchAddress(
"t_pT", &
t_pT);
320 tree->SetBranchAddress(
"t_d0", &
t_d0);
321 tree->SetBranchAddress(
"t_z0", &
t_z0);
342 tree->Draw(
"event_nr",
"",
"goff");
351 std::vector<unsigned int>*
nStates =
new std::vector<unsigned int>;
353 std::vector<unsigned int>*
nOutliers =
new std::vector<unsigned int>;
354 std::vector<unsigned int>*
nHoles =
new std::vector<unsigned int>;
355 std::vector<unsigned int>*
nSharedHits =
new std::vector<unsigned int>;
356 std::vector<float>*
chi2Sum =
new std::vector<float>;
357 std::vector<unsigned int>*
NDF =
new std::vector<unsigned int>;
359 new std::vector<std::vector<double>>;
361 new std::vector<std::vector<double>>;
363 new std::vector<std::vector<double>>;
365 new std::vector<std::vector<double>>;
367 new std::vector<std::vector<double>>;
369 new std::vector<std::vector<double>>;
376 std::vector<float>*
t_d0 =
new std::vector<float>;
377 std::vector<float>*
t_z0 =
new std::vector<float>;
378 std::vector<float>*
t_phi =
new std::vector<float>;
379 std::vector<float>*
t_theta =
new std::vector<float>;
380 std::vector<float>*
t_eta =
new std::vector<float>;
381 std::vector<float>*
t_p =
new std::vector<float>;
382 std::vector<float>*
t_pT =
new std::vector<float>;
383 std::vector<float>*
t_time =
new std::vector<float>;
389 std::vector<float>*
ePHI_fit =
new std::vector<float>;
391 std::vector<float>*
eQOP_fit =
new std::vector<float>;
392 std::vector<float>*
eT_fit =
new std::vector<float>;
414 tree->SetBranchAddress(
"vx", &
vx);
415 tree->SetBranchAddress(
"vy", &
vy);
416 tree->SetBranchAddress(
"vz", &
vz);
417 tree->SetBranchAddress(
"vt", &
vt);
418 tree->SetBranchAddress(
"px", &
px);
419 tree->SetBranchAddress(
"py", &
py);
420 tree->SetBranchAddress(
"pz", &
pz);
421 tree->SetBranchAddress(
"m", &
m);
422 tree->SetBranchAddress(
"q", &
q);
431 tree->Draw(
"event_id",
"",
"goff");
439 std::vector<ParticleInfo>
getParticles(
const uint32_t& eventNumber)
const {
442 std::string findStartEntry =
"event_id<" + eventNumberStr;
443 std::string findParticlesSize =
"event_id==" + eventNumberStr;
444 size_t startEntry =
tree->GetEntries(findStartEntry.c_str());
445 size_t nParticles =
tree->GetEntries(findParticlesSize.c_str());
446 if (nParticles == 0) {
447 throw std::invalid_argument(
448 "No particles found. Please check the input file.");
451 particles.reserve(nParticles);
452 for (
unsigned int i = 0;
i < nParticles; ++
i) {
454 auto pt = std::hypot(
px,
py);
455 auto p = std::hypot(
pt,
pz);
456 auto eta = std::atanh(
pz /
p * 1.);