ATLAS Offline Software
SimpleIDNtupleTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3  */
4 
6 //Eigen stuff
8 //
9 #include "TrkTrack/Track.h"
12 
14 
15 #include "InDetIdentifier/TRT_ID.h"
16 
19 
23 #include "TrkAlignEvent/AlignPar.h"
24 #include "TrkAlignEvent/Residual.h"
25 
27 
29 
30 #include "TFile.h"
31 #include "TTree.h"
32 #include "TMath.h"
33 #include <cmath>
34 
35 
36 namespace InDet {
37 //________________________________________________________________________
38  SimpleIDNtupleTool::SimpleIDNtupleTool(const std::string& type, const std::string& name, const IInterface* parent)
40  , m_particleCreator("Trk::TrackParticleCreatorTool/TrackParticleCreatorTool", this)
41  , m_alignModuleTool{}
42  , m_idHelper{}
43  , m_file{}
44  , m_tree(nullptr)
45  , m_runNumber{}
46  , m_evtNumber{}
47  , m_xvtx{}
48  , m_yvtx{}
49  , m_zvtx{}
50  , m_d0{}
51  , m_z0{}
52  , m_phi0{}
53  , m_theta{}
54  , m_qoverp{}
55  , m_pt{}
56  , m_eta{}
57  , m_chi2{}
58  , m_ndof{}
59  , m_chi2prob{}
60  , m_nhits{}
61  , m_nhitstrt{}
62  , m_nhitssct{}
63  , m_nhitspix{}
64  , m_nshared{}
65  , m_nshsct{}
66  , m_nshpix{}
67  , m_nholes{}
68  , m_nhsct{}
69  , m_nhpix{}
70  , m_hit_rho{}
71  , m_hit_phi{}
72  , m_hit_z{}
73  , m_hit_cotth{}
74  , m_hit_eta{}
75  , m_hit_xloc{}
76  , m_hit_yloc{}
77  , m_hit_zloc{}
78  , m_hit_drd{}
79  , m_hit_sig{}
80  , m_hit_resx{}
81  , m_hit_resx_err{}
82  , m_hit_resy{}
83  , m_hit_resy_err{}
84  , m_hit_tpar_x{}
85  , m_hit_tpar_y{}
86  , m_hit_det{}
87  , m_hit_type{}
88  , m_hit_derivx_transx{}
89  , m_hit_derivx_transy{}
90  , m_hit_derivx_transz{}
91  , m_hit_derivx_rotx{}
92  , m_hit_derivx_roty{}
93  , m_hit_derivx_rotz{}
94  , m_hit_derivx_bowx{}
95  , m_hit_derivx_bowy{}
96  , m_hit_derivx_bowz{}
97  , m_hit_derivy_transx{}
98  , m_hit_derivy_transy{}
99  , m_hit_derivy_transz{}
100  , m_hit_derivy_rotx{}
101  , m_hit_derivy_roty{}
102  , m_hit_derivy_rotz{}
103  , m_hit_derivy_bowx{}
104  , m_hit_derivy_bowy{}
105  , m_hit_derivy_bowz{}
106  , m_max_hits{150}
107  , m_storeDerivatives{false} {
108  declareInterface<Trk::IFillNtupleTool>(this);
109  declareProperty("TrackParticleCreatorTool", m_particleCreator, "tool to build TrackParticle");
110  declareProperty("AlignModuleTool", m_alignModuleTool);
111  declareProperty("MaxHits", m_max_hits);
112  declareProperty("StoreDerivatives", m_storeDerivatives);
113  }
114 
115 //________________________________________________________________________
117  if (m_hit_rho) {
118  delete [] m_hit_rho;
119  delete [] m_hit_phi;
120  delete [] m_hit_z;
121  delete [] m_hit_cotth;
122  delete [] m_hit_eta;
123  delete [] m_hit_xloc;
124  delete [] m_hit_yloc;
125  delete [] m_hit_zloc;
126  delete [] m_hit_drd;
127  delete [] m_hit_sig;
128  delete [] m_hit_tpar_x;
129  delete [] m_hit_tpar_y;
130  delete [] m_hit_resx;
131  delete [] m_hit_resx_err;
132  delete [] m_hit_resy;
133  delete [] m_hit_resy_err;
134  delete [] m_hit_det;
135  delete [] m_hit_type;
136 
137  if (m_hit_derivx_transx) {
138  delete [] m_hit_derivx_transx;
139  delete [] m_hit_derivx_transy;
140  delete [] m_hit_derivx_transz;
141  delete [] m_hit_derivx_rotx;
142  delete [] m_hit_derivx_roty;
143  delete [] m_hit_derivx_rotz;
144  delete [] m_hit_derivx_bowx;
145  delete [] m_hit_derivx_bowy;
146  delete [] m_hit_derivx_bowz;
147  delete [] m_hit_derivy_transx;
148  delete [] m_hit_derivy_transy;
149  delete [] m_hit_derivy_transz;
150  delete [] m_hit_derivy_rotx;
151  delete [] m_hit_derivy_roty;
152  delete [] m_hit_derivy_rotz;
153  delete [] m_hit_derivy_bowx;
154  delete [] m_hit_derivy_bowy;
155  delete [] m_hit_derivy_bowz;
156  }
157  }
158  }
159 
160 //________________________________________________________________________
162  ATH_MSG_DEBUG("initialize() of SimpleIDNtupleTool");
163 
164  // retrieve TRT ID helper
165  ATH_CHECK(detStore()->retrieve(m_idHelper, "TRT_ID"));
166 
167  // get TrackParticleCreatorTool
168  ATH_CHECK(m_particleCreator.retrieve());
169 
170  // get AlignModuleTool
171  if (m_alignModuleTool.empty() || m_alignModuleTool.retrieve().isFailure()) {
172  ATH_MSG_FATAL("Failed to retrieve tool " << m_alignModuleTool);
173  return StatusCode::FAILURE;
174  }
175  ATH_MSG_INFO("Retrieved tool " << m_alignModuleTool);
176 
177  return StatusCode::SUCCESS;
178  }
179 
180 //________________________________________________________________________
182  if (m_file && m_file->IsOpen()) {
183  m_file->cd();
184  if (m_tree) m_tree->Write();
185  else ATH_MSG_WARNING("Variable m_tree not set, nothing to write.");
186  } else ATH_MSG_WARNING("Variable m_file not set or not pointing to open output file.");
187  return StatusCode::SUCCESS;
188  }
189 
190 //________________________________________________________________________
192  ATH_MSG_DEBUG("finalize() of SimpleIDNtupleTool");
193 
194  return StatusCode::SUCCESS;
195  }
196 
197 //________________________________________________________________________
198  void SimpleIDNtupleTool::dumpTrack(int itrk, const Trk::AlignTrack* alignTrack) {
199  ATH_MSG_DEBUG("In dumpTrack()");
200 
201  if (!m_tree) initializeNtuple();
202 
203  // get run and event numbers
204  ATH_MSG_DEBUG("Retrieving event info.");
205  const xAOD::EventInfo* eventInfo;
206  if (evtStore()->retrieve(eventInfo).isFailure()) ATH_MSG_ERROR("Could not retrieve event info.");
207  else {
208  m_runNumber = eventInfo->runNumber();
209  m_evtNumber = eventInfo->eventNumber();
210  }
211 
212  // initialize variables
213  constexpr double invalidParameterValue{-999.};
214  m_d0 = invalidParameterValue;
215  m_z0 = invalidParameterValue;
216  m_phi0 = invalidParameterValue;
217  m_theta = invalidParameterValue;
218  m_qoverp = invalidParameterValue;;
219  m_pt = invalidParameterValue;
220  m_eta = invalidParameterValue;
221  m_xvtx = invalidParameterValue;
222  m_yvtx = invalidParameterValue;
223  m_zvtx = invalidParameterValue;;
224 
225  constexpr int initialiseNHits{0};
226  m_nhitspix = initialiseNHits;
227  m_nhitssct = initialiseNHits;
228  m_nhitstrt = initialiseNHits;
229  m_nshared = initialiseNHits;
230  m_nshpix = initialiseNHits;
231  m_nshsct = initialiseNHits;
232  m_nholes = initialiseNHits;
233  m_nhpix = initialiseNHits;
234  m_nhsct = initialiseNHits;
235 
236  constexpr double invalidChiSq(-1e12);
237  constexpr int invalidDegreesOfFreedom{-999};
238  m_chi2 = invalidChiSq;
239  m_chi2prob = invalidChiSq;
240  m_ndof = invalidDegreesOfFreedom;
241 
242  const Trk::Perigee* aMeasPer = (alignTrack->perigeeParameters());
243  if (not aMeasPer) ATH_MSG_ERROR("Could not get Trk::MeasuredPerigee");
244  else {
245  m_d0 = aMeasPer->parameters()[Trk::d0];
246  m_z0 = aMeasPer->parameters()[Trk::z0];
247  m_phi0 = aMeasPer->parameters()[Trk::phi0];
248  m_theta = aMeasPer->parameters()[Trk::theta];
249  m_qoverp = aMeasPer->parameters()[Trk::qOverP];
250  ATH_MSG_DEBUG(itrk << ". " << " Track Parameters (d0, z0, phi0, theta, q/p)");
251  ATH_MSG_DEBUG(" " << m_d0 << ", " << m_z0 << ", " << m_phi0 << ", " << m_theta << ", " << m_qoverp);
252  m_pt = std::sqrt((aMeasPer->momentum().x()) * (aMeasPer->momentum().x())
253  + (aMeasPer->momentum().y()) * (aMeasPer->momentum().y()));
254  m_eta = aMeasPer->eta();
255  m_xvtx = aMeasPer->position().x();
256  m_yvtx = aMeasPer->position().y();
257  m_zvtx = aMeasPer->position().z();
258 
259  xAOD::TrackParticle* trackPart = m_particleCreator->createParticle(*alignTrack);
260  uint8_t iSummaryValue(0); // Dummy counter to retrieve summary values
261 
262  if (not trackPart) ATH_MSG_ERROR("Could not get xAOD::TrackParticle");
263  else {
264  // hits
265  m_nhitspix = trackPart->summaryValue(iSummaryValue, xAOD::numberOfPixelHits) ? iSummaryValue : 0;
266  m_nhitssct = trackPart->summaryValue(iSummaryValue, xAOD::numberOfSCTHits) ? iSummaryValue : 0;
267  m_nhitstrt = trackPart->summaryValue(iSummaryValue, xAOD::numberOfTRTHits) ? iSummaryValue : 0;
268 
269  ATH_MSG_DEBUG(" -- number of Pixel hits : " << m_nhitspix);
270  ATH_MSG_DEBUG(" -- number of SCT hits : " << m_nhitssct);
271  ATH_MSG_DEBUG(" -- number of TRT hits : " << m_nhitstrt);
272 
273  // shared hits
274  m_nshpix = trackPart->summaryValue(iSummaryValue, xAOD::numberOfPixelSharedHits) ? iSummaryValue : 0;
275  m_nshsct = trackPart->summaryValue(iSummaryValue, xAOD::numberOfSCTSharedHits) ? iSummaryValue : 0;
277 
278  if (m_nshpix < 0) m_nshpix = 0;
279  if (m_nshsct < 0) m_nshsct = 0;
280  if (m_nshared < 0) m_nshared = 0;
281 
282  ATH_MSG_DEBUG(" - number of shared hits : " << m_nshared);
283  ATH_MSG_DEBUG(" -- number of Pixel shared hits : " << m_nshpix);
284  ATH_MSG_DEBUG(" -- number of SCT shared hits : " << m_nshsct);
285 
286  // holes
287  m_nhpix = trackPart->summaryValue(iSummaryValue, xAOD::numberOfPixelHoles) ? iSummaryValue : 0;
288  m_nhsct = trackPart->summaryValue(iSummaryValue, xAOD::numberOfSCTHoles) ? iSummaryValue : 0;
290 
291  if (m_nhpix < 0) m_nhpix = 0;
292  if (m_nhsct < 0) m_nhsct = 0;
293  if (m_nholes < 0) m_nholes = 0;
294 
295  ATH_MSG_DEBUG(" - number of Pixel holes : " << m_nhpix);
296  ATH_MSG_DEBUG(" -- number of SCT holes : " << m_nhsct);
297  ATH_MSG_DEBUG(" -- number of holes : " << m_nholes);
298  }
299 
300  // get fit quality and chi2 probability of track
301  const Trk::FitQuality* fitQual = alignTrack->fitQuality();
302  if (not fitQual) ATH_MSG_ERROR("No fit quality assigned to the track");
303  else {
304  if (fitQual->chiSquared() > 0. && fitQual->numberDoF() > 0) {
305  m_chi2 = fitQual->chiSquared();
306  m_ndof = fitQual->numberDoF();
307  m_chi2prob = TMath::Prob(m_chi2, m_ndof);
308 
309  ATH_MSG_DEBUG(" - chi2 : " << m_chi2);
310  ATH_MSG_DEBUG(" - ndof : " << m_ndof);
311  ATH_MSG_DEBUG(" - chi2/ndof : " << m_chi2 / (double) m_ndof);
312  ATH_MSG_DEBUG(" - chi2 propability : " << m_chi2prob);
313  }
314  }
315  }
316 
317  // store information for all hits on this track, including
318  // scattering centers
319  const Trk::AlignTSOSCollection* alignTSOSCollection = alignTrack->alignTSOSCollection();
320  int nhitsTotal = alignTSOSCollection->size();
321  if (nhitsTotal > m_max_hits) nhitsTotal = m_max_hits;
322 
323 
324  fillHits(alignTrack);
325 
326 
327  m_file->cd();
328  m_tree->Fill();
329  ATH_MSG_DEBUG("tree filled");
330 
331  ++itrk;
332  return;
333  }
334 
335 //________________________________________________________________________
337  ATH_MSG_DEBUG("In fillHits()");
338 
339  // store information for all hits on this track
340  // initialize ntuple variables
341  for (int i = 0; i < m_max_hits; i++) {
342  m_hit_rho[i] = -999.;
343  m_hit_phi[i] = -999.;
344  m_hit_z[i] = -999.;
345  m_hit_cotth[i] = -999.;
346  m_hit_eta[i] = -999.;
347  m_hit_xloc[i] = -999.;
348  m_hit_yloc[i] = -999.;
349  m_hit_zloc[i] = -999.;
350  m_hit_drd[i] = -999.;
351  m_hit_sig[i] = -999.;
352 
353  m_hit_tpar_x[i] = -999.;
354  m_hit_tpar_y[i] = -999.;
355 
356  m_hit_resx[i] = -999.;
357  m_hit_resx_err[i] = -999.;
358  m_hit_resy[i] = -999.;
359  m_hit_resy_err[i] = -999.;
360 
361  m_hit_det[i] = -999;
362  m_hit_type[i] = -999;
363 
364  if (m_storeDerivatives) {
365  m_hit_derivx_transx[i] = -999.;
366  m_hit_derivx_transy[i] = -999.;
367  m_hit_derivx_transz[i] = -999.;
368  m_hit_derivx_rotx[i] = -999.;
369  m_hit_derivx_roty[i] = -999.;
370  m_hit_derivx_rotz[i] = -999.;
371  m_hit_derivx_bowx[i] = -999.;
372  m_hit_derivx_bowy[i] = -999.;
373  m_hit_derivx_bowz[i] = -999.;
374 
375  m_hit_derivy_transx[i] = -999.;
376  m_hit_derivy_transy[i] = -999.;
377  m_hit_derivy_transz[i] = -999.;
378  m_hit_derivy_rotx[i] = -999.;
379  m_hit_derivy_roty[i] = -999.;
380  m_hit_derivy_rotz[i] = -999.;
381  m_hit_derivy_bowx[i] = -999.;
382  m_hit_derivy_bowy[i] = -999.;
383  m_hit_derivy_bowz[i] = -999.;
384  }
385  }
386 
387  const Trk::AlignTSOSCollection* alignTSOSCollection = alignTrack->alignTSOSCollection();
388  m_nhits = alignTSOSCollection->size();
389  ATH_MSG_DEBUG("have " << m_nhits << " hits on alignTrack in total");
390 
391  int nhits = 0;
392 
393  DataVector<Trk::AlignTSOS>::const_iterator atsit = alignTSOSCollection->begin();
394  DataVector<Trk::AlignTSOS>::const_iterator atsit_end = alignTSOSCollection->end();
395  for (; atsit != atsit_end; ++atsit) {
396  const Trk::AlignTSOS* atsos = *atsit;
397  ATH_MSG_DEBUG("in loop over AlignTSOS, nhits=" << nhits);
398  if (nhits == m_max_hits) break;
399 
400  if (!atsos->type(Trk::TrackStateOnSurface::Measurement)) continue;
401 
402  m_hit_det[nhits] = atsos->measType();
403  ATH_MSG_DEBUG("measurement type: " << atsos->dumpMeasType());
404 
405 
406  // get RIO
407  const Trk::RIO_OnTrack* rio = atsos->rio();
408  ATH_MSG_DEBUG("have RIO");
410 
411  double locPosX(0.);
412  if (rio->localParameters().contains(Trk::locX)) locPosX = rio->localParameters()[Trk::locX];
413  double locPosY(0.);
414  if (rio->localParameters().contains(Trk::locY)) locPosY = rio->localParameters()[Trk::locY];
415  double locPosZ(0.);
416  if (rio->localParameters().contains(Trk::locZ)) locPosZ = rio->localParameters()[Trk::locZ];
417 
418  double error = Amg::error(rio->localCovariance(), Trk::locX);
419  ATH_MSG_DEBUG("error: " << error);
420 
421  Identifier id = rio->identify();
422 
423 
424  m_hit_xloc[nhits] = locPosX;
425  m_hit_yloc[nhits] = locPosY;
426  m_hit_zloc[nhits] = locPosZ;
427 
428  m_hit_rho[nhits] = pos.perp();
429  m_hit_phi[nhits] = pos.phi();
430  m_hit_z[nhits] = pos.z();
431  m_hit_sig[nhits] = error;
432 
433  // get residual x
434  std::vector<Trk::Residual>::const_iterator ires = atsos->firstResidual();
435 
436  m_hit_resx[nhits] = ires->residual();
437  m_hit_resx_err[nhits] = ires->error();
438 
439  // get residual y if applicable
440  if (atsos->nResDim() > 1) {
441  ++ires;
442  m_hit_resy[nhits] = ires->residual();
443  m_hit_resy_err[nhits] = ires->error();
444  }
445 
446  // get local track parameters
447  const Trk::TrackParameters* trackPars = nullptr;
448  if (atsos->firstResidual()->residualType() == Trk::HitOnly) trackPars = atsos->trackParameters();
449  else trackPars = atsos->unbiasedTrackPars();
450 
451  m_hit_tpar_x[nhits] = trackPars->parameters()[Trk::locX];
452  m_hit_tpar_y[nhits] = trackPars->parameters()[Trk::locY];
453 
454 
455  if (m_idHelper->is_barrel(id)) {
456  m_hit_cotth[nhits] = 0.;
457  m_hit_eta[nhits] = 0.;
458  } else {
459  m_hit_cotth[nhits] = 1. / std::tan(pos.theta());
460  double etaval = -std::log(std::tan(std::atan(1. / std::abs(m_hit_cotth[nhits])) / 2.));
461  if (m_hit_cotth[nhits] < 0.) etaval *= -1.;
462  m_hit_eta[nhits] = etaval;
463  }
464  if (atsos->measType() != Trk::TrackState::TRT) m_hit_drd[nhits] = locPosX;
465 
466  // fill derivatives
467  if (m_storeDerivatives) {
468  //const std::vector<CLHEP::HepVector> * derivs = atsos->derivatives();
469  const std::vector<Amg::VectorX>* derivs = atsos->derivatives();
470  if (derivs) {
471  int npar = derivs->at(0).rows();
472 
473  const DataVector<Trk::AlignPar>* alignPars = m_alignModuleTool->getAlignPars(atsos->module());
474  int naPar = alignPars->size();
475 
476  if (npar != naPar) ATH_MSG_WARNING("number of derivatives on AlignTSOS doesn't match the one on AlignModule");
477 
478  else {
479  for (int i = 0; i < npar; i++) {
480  double derivative = (*derivs)[0][i];
481  Trk::AlignModule::TransformParameters ptype = alignPars->at(i)->paramType();
482  switch (ptype) {
484  m_hit_derivx_transx[nhits] = derivative;
485  break;
486 
488  m_hit_derivx_transy[nhits] = derivative;
489  break;
490 
492  m_hit_derivx_transz[nhits] = derivative;
493  break;
494 
496  m_hit_derivx_rotx[nhits] = derivative;
497  break;
498 
500  m_hit_derivx_roty[nhits] = derivative;
501  break;
502 
504  m_hit_derivx_rotz[nhits] = derivative;
505  break;
506 
508  m_hit_derivx_bowx[nhits] = derivative;
509  break;
510 
512  m_hit_derivx_bowy[nhits] = derivative;
513  break;
514 
516  m_hit_derivx_bowz[nhits] = derivative;
517  break;
518 
519  default:
520  ATH_MSG_WARNING("Unknown parameter type " << ptype);
521  }
522  }
523  if (atsos->nResDim() > 1) {
524  for (int i = 0; i < npar; i++) {
525  double derivative = (*derivs)[1][i];
526  Trk::AlignModule::TransformParameters ptype = alignPars->at(i)->paramType();
527  switch (ptype) {
529  m_hit_derivy_transx[nhits] = derivative;
530  break;
531 
533  m_hit_derivy_transy[nhits] = derivative;
534  break;
535 
537  m_hit_derivy_transz[nhits] = derivative;
538  break;
539 
541  m_hit_derivy_rotx[nhits] = derivative;
542  break;
543 
545  m_hit_derivy_roty[nhits] = derivative;
546  break;
547 
549  m_hit_derivy_rotz[nhits] = derivative;
550  break;
551 
553  m_hit_derivy_bowx[nhits] = derivative;
554  break;
555 
557  m_hit_derivy_bowy[nhits] = derivative;
558  break;
559 
561  m_hit_derivy_bowz[nhits] = derivative;
562  break;
563 
564  default:
565  ATH_MSG_WARNING("Unknown parameter type " << ptype);
566  }
567  }
568  }
569  }
570  }
571  } // end of storing derivatives
572 
573  ++nhits;
574 
575  if (nhits >= m_max_hits) {
576  ATH_MSG_WARNING("Number of hits on track more that maximum: " << m_nhits << " > " << m_max_hits << " "
577  << "Some hits will not be stored.");
578  break;
579  }
580  } //atsos
581 
582  ATH_MSG_DEBUG("done with loop over TSOS");
583  }
584 
585 //________________________________________________________________________
587  }
588 
589 //________________________________________________________________________
591  }
592 
593 //________________________________________________________________________
595  }
596 
597 //________________________________________________________________________
599  }
600 
601 //________________________________________________________________________
603  m_hit_rho = new double[m_max_hits];
604  m_hit_phi = new double[m_max_hits];
605  m_hit_z = new double[m_max_hits];
606  m_hit_cotth = new double[m_max_hits];
607  m_hit_eta = new double[m_max_hits];
608  m_hit_xloc = new double[m_max_hits];
609  m_hit_yloc = new double[m_max_hits];
610  m_hit_zloc = new double[m_max_hits];
611  m_hit_drd = new double[m_max_hits];
612  m_hit_sig = new double[m_max_hits];
613 
614  m_hit_tpar_x = new double[m_max_hits];
615  m_hit_tpar_y = new double[m_max_hits];
616 
617  m_hit_resx = new double[m_max_hits];
618  m_hit_resx_err = new double[m_max_hits];
619  m_hit_resy = new double[m_max_hits];
620  m_hit_resy_err = new double[m_max_hits];
621 
622  m_hit_det = new int[m_max_hits];
623  m_hit_type = new int[m_max_hits];
624 
625  m_file->cd();
626  m_tree = new TTree("IDAlign", "Inner Detector Alignment Ntuple");
627 
628  m_tree->Branch("run", &m_runNumber, "run/I");
629  m_tree->Branch("evt", &m_evtNumber, "evt/I");
630 
631  m_tree->Branch("xvtx", &m_xvtx, "xvtx/D");
632  m_tree->Branch("yvtx", &m_yvtx, "yvtx/D");
633  m_tree->Branch("zvtx", &m_zvtx, "zvtx/D");
634  m_tree->Branch("d0", &m_d0, "d0/D");
635  m_tree->Branch("z0", &m_z0, "z0/D");
636  m_tree->Branch("phi0", &m_phi0, "phi0/D");
637  m_tree->Branch("theta", &m_theta, "theta/D");
638  m_tree->Branch("qoverp", &m_qoverp, "qoverp/D");
639  m_tree->Branch("pt", &m_pt, "pt/D");
640  m_tree->Branch("eta", &m_eta, "eta/D");
641  m_tree->Branch("chi2", &m_chi2, "chi2/D");
642  m_tree->Branch("ndof", &m_ndof, "ndof/I");
643  m_tree->Branch("chi2prob", &m_chi2prob, "chi2prob/D");
644 
645  m_tree->Branch("nhits", &m_nhits, "nhits/I");
646  m_tree->Branch("nhitstrt", &m_nhitstrt, "nhitstrt/I");
647  m_tree->Branch("nhitssct", &m_nhitssct, "nhitssct/I");
648  m_tree->Branch("nhitspix", &m_nhitspix, "nhitspix/I");
649  m_tree->Branch("nshared", &m_nshared, "nshared/I");
650  m_tree->Branch("nshsct", &m_nshsct, "nshsct/I");
651  m_tree->Branch("nshpix", &m_nshpix, "nshpix/I");
652  m_tree->Branch("nholes", &m_nholes, "nholes/I");
653  m_tree->Branch("nhsct", &m_nhsct, "nhsct/I");
654  m_tree->Branch("nhpix", &m_nhpix, "nhpix/I");
655 
656  m_tree->Branch("hit_rho", m_hit_rho, "hit_rho[nhits]/D");
657  m_tree->Branch("hit_phi", m_hit_phi, "hit_phi[nhits]/D");
658  m_tree->Branch("hit_z", m_hit_z, "hit_z[nhits]/D");
659  m_tree->Branch("hit_cotth", m_hit_cotth, "hit_cotth[nhits]/D");
660  m_tree->Branch("hit_eta", m_hit_eta, "hit_eta[nhits]/D");
661  m_tree->Branch("hit_xloc", m_hit_xloc, "hit_xloc[nhits]/D");
662  m_tree->Branch("hit_yloc", m_hit_yloc, "hit_yloc[nhits]/D");
663  m_tree->Branch("hit_zloc", m_hit_zloc, "hit_zloc[nhits]/D");
664  m_tree->Branch("hit_drd", m_hit_drd, "hit_drd[nhits]/D");
665  m_tree->Branch("hit_sig", m_hit_sig, "hit_sig[nhits]/D");
666 
667  m_tree->Branch("hit_tpar_x", m_hit_tpar_x, "hit_tpar_x[nhits]/D");
668  m_tree->Branch("hit_tpar_y", m_hit_tpar_y, "hit_tpar_y[nhits]/D");
669 
670  m_tree->Branch("hit_resx", m_hit_resx, "hit_resx[nhits]/D");
671  m_tree->Branch("hit_resx_err", m_hit_resx_err, "hit_resx_err[nhits]/D");
672  m_tree->Branch("hit_resy", m_hit_resy, "hit_resy[nhits]/D");
673  m_tree->Branch("hit_resy_err", m_hit_resy_err, "hit_resy_err[nhits]/D");
674 
675  m_tree->Branch("hit_det", m_hit_det, "hit_det[nhits]/I");
676  m_tree->Branch("hit_type", m_hit_type, "hit_type[nhits]/I");
677 
678  if (m_storeDerivatives) {
679  m_hit_derivx_transx = new double[m_max_hits];
680  m_hit_derivx_transy = new double[m_max_hits];
681  m_hit_derivx_transz = new double[m_max_hits];
682  m_hit_derivx_rotx = new double[m_max_hits];
683  m_hit_derivx_roty = new double[m_max_hits];
684  m_hit_derivx_rotz = new double[m_max_hits];
685  m_hit_derivx_bowx = new double[m_max_hits];
686  m_hit_derivx_bowy = new double[m_max_hits];
687  m_hit_derivx_bowz = new double[m_max_hits];
688  m_hit_derivy_transx = new double[m_max_hits];
689  m_hit_derivy_transy = new double[m_max_hits];
690  m_hit_derivy_transz = new double[m_max_hits];
691  m_hit_derivy_rotx = new double[m_max_hits];
692  m_hit_derivy_roty = new double[m_max_hits];
693  m_hit_derivy_rotz = new double[m_max_hits];
694  m_hit_derivy_bowx = new double[m_max_hits];
695  m_hit_derivy_bowy = new double[m_max_hits];
696  m_hit_derivy_bowz = new double[m_max_hits];
697 
698  m_tree->Branch("derivx_transx", m_hit_derivx_transx, "derivx_transx[nhits]/D");
699  m_tree->Branch("derivx_transy", m_hit_derivx_transy, "derivx_transy[nhits]/D");
700  m_tree->Branch("derivx_transz", m_hit_derivx_transz, "derivx_transz[nhits]/D");
701  m_tree->Branch("derivx_rotx", m_hit_derivx_rotx, "derivx_rotx[nhits]/D");
702  m_tree->Branch("derivx_roty", m_hit_derivx_roty, "derivx_roty[nhits]/D");
703  m_tree->Branch("derivx_rotz", m_hit_derivx_rotz, "derivx_rotz[nhits]/D");
704  m_tree->Branch("derivx_bowx", m_hit_derivx_bowx, "derivx_bowx[nhits]/D");
705  m_tree->Branch("derivx_bowy", m_hit_derivx_bowy, "derivx_bowy[nhits]/D");
706  m_tree->Branch("derivx_bowz", m_hit_derivx_bowz, "derivx_bowz[nhits]/D");
707  m_tree->Branch("derivy_transx", m_hit_derivy_transx, "derivy_transx[nhits]/D");
708  m_tree->Branch("derivy_transy", m_hit_derivy_transy, "derivy_transy[nhits]/D");
709  m_tree->Branch("derivy_transz", m_hit_derivy_transz, "derivy_transz[nhits]/D");
710  m_tree->Branch("derivy_rotx", m_hit_derivy_rotx, "derivy_rotx[nhits]/D");
711  m_tree->Branch("derivy_roty", m_hit_derivy_roty, "derivy_roty[nhits]/D");
712  m_tree->Branch("derivy_rotz", m_hit_derivy_rotz, "derivy_rotz[nhits]/D");
713  m_tree->Branch("derivy_bowx", m_hit_derivy_bowx, "derivy_bowx[nhits]/D");
714  m_tree->Branch("derivy_bowy", m_hit_derivy_bowy, "derivy_bowy[nhits]/D");
715  m_tree->Branch("derivy_bowz", m_hit_derivy_bowz, "derivy_bowz[nhits]/D");
716  }
717  return;
718  }
719 } // end namespace
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
InDet::SimpleIDNtupleTool::m_chi2
double m_chi2
Chi2 of the track fit (chi2 in ntuple)
Definition: SimpleIDNtupleTool.h:118
xAOD::numberOfPixelHoles
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
Definition: TrackingPrimitives.h:261
Trk::TrackStateOnSurface::trackParameters
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
Trk::AlignModule::BowY
@ BowY
Definition: AlignModule.h:54
InDet::SimpleIDNtupleTool::m_max_hits
int m_max_hits
max number of hits on track stored in ntuple
Definition: SimpleIDNtupleTool.h:218
InDet::SimpleIDNtupleTool::m_nshpix
int m_nshpix
number of shared Pixel hits on track (nshpix in ntuple)
Definition: SimpleIDNtupleTool.h:147
Trk::AlignTSOS::measType
TrackState::MeasurementType measType() const
returns measurement type enum
Definition: AlignTSOS.h:80
InDet::SimpleIDNtupleTool::m_hit_derivy_roty
double * m_hit_derivy_roty
derivatives of Y-residual wrt.
Definition: SimpleIDNtupleTool.h:212
InDet::SimpleIDNtupleTool::m_hit_sig
double * m_hit_sig
hit error (hit_sig in ntuple)
Definition: SimpleIDNtupleTool.h:186
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
InDet::SimpleIDNtupleTool::m_hit_rho
double * m_hit_rho
radius of hit (hit_rho in ntuple)
Definition: SimpleIDNtupleTool.h:159
Trk::Track::fitQuality
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
Trk::HitOnly
@ HitOnly
Definition: AlignResidualType.h:27
InDet::SimpleIDNtupleTool::m_z0
double m_z0
z0 perigee parameter of reconstructed track (z0 in ntuple)
Definition: SimpleIDNtupleTool.h:100
Trk::AlignModule::TransZ
@ TransZ
Definition: AlignModule.h:54
xAOD::numberOfSCTSharedHits
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:272
Trk::AlignTSOS::rio
const RIO_OnTrack * rio() const
returns RIO_OnTrack or leading RIO of CompetingRIOsOnTrack (assigned by c'tor)
Definition: AlignTSOS.cxx:157
Trk::TrackState::TRT
@ TRT
Definition: TrackStateDefs.h:30
InDet::SimpleIDNtupleTool::m_hit_tpar_y
double * m_hit_tpar_y
track parameter locY
Definition: SimpleIDNtupleTool.h:194
InDet::SimpleIDNtupleTool::m_pt
double m_pt
pt perigee parameter of reconstructed track (pt in ntuple)
Definition: SimpleIDNtupleTool.h:112
InDet::SimpleIDNtupleTool::m_nhitssct
int m_nhitssct
number of SCT hits on track (nscthits in ntuple)
Definition: SimpleIDNtupleTool.h:135
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
Trk::locX
@ locX
Definition: ParamDefs.h:43
xAOD::EventInfo_v1::eventNumber
uint64_t eventNumber() const
The current event's event number.
Trk::locY
@ locY
local cartesian
Definition: ParamDefs.h:44
InDet::SimpleIDNtupleTool::storeHitmap
void storeHitmap()
stores hitmap for writing to ntuple
Definition: SimpleIDNtupleTool.cxx:586
InDet::SimpleIDNtupleTool::m_runNumber
int m_runNumber
Definition: SimpleIDNtupleTool.h:82
TrackStateDefs.h
InDet::SimpleIDNtupleTool::m_hit_derivy_bowz
double * m_hit_derivy_bowz
derivatives of Y-residual wrt.
Definition: SimpleIDNtupleTool.h:216
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::SimpleIDNtupleTool::m_hit_derivy_transy
double * m_hit_derivy_transy
derivatives of Y-residual wrt.
Definition: SimpleIDNtupleTool.h:209
InDet::SimpleIDNtupleTool::m_hit_derivx_transx
double * m_hit_derivx_transx
derivatives of X-residual wrt.
Definition: SimpleIDNtupleTool.h:199
EventPrimitivesHelpers.h
InDet::SimpleIDNtupleTool::m_hit_derivx_bowy
double * m_hit_derivx_bowy
derivatives of X-residual wrt.
Definition: SimpleIDNtupleTool.h:206
InDet::SimpleIDNtupleTool::m_hit_resy
double * m_hit_resy
Y-residual of the hit.
Definition: SimpleIDNtupleTool.h:190
Trk::RIO_OnTrack::globalPosition
virtual const Amg::Vector3D & globalPosition() const override=0
Interface method to get the global Position.
InDet::SimpleIDNtupleTool::m_particleCreator
ToolHandle< Trk::ITrackParticleCreatorTool > m_particleCreator
Pointer to track particle creator tool.
Definition: SimpleIDNtupleTool.h:70
ITrackParticleCreatorTool.h
Trk::AlignTSOS
Definition: AlignTSOS.h:37
Trk::LocalParameters::contains
bool contains(ParamDefs par) const
The simple check for the clients whether the parameter is contained.
InDet::SimpleIDNtupleTool::fillHitmap
void fillHitmap()
fills ntuple with hit information
Definition: SimpleIDNtupleTool.cxx:590
TRT_ID.h
This is an Identifier helper class for the TRT subdetector. This class is a factory for creating comp...
InDet::SimpleIDNtupleTool::m_nhitspix
int m_nhitspix
number of Pixel hits on track (ntrthits in ntuple)
Definition: SimpleIDNtupleTool.h:138
InDet::SimpleIDNtupleTool::m_nshared
int m_nshared
number of shared hits on track (nshared in ntuple)
Definition: SimpleIDNtupleTool.h:141
Trk::z0
@ z0
Definition: ParamDefs.h:70
InDet::SimpleIDNtupleTool::m_yvtx
double m_yvtx
y coord of track perigee (yvtx in ntuple)
Definition: SimpleIDNtupleTool.h:91
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
xAOD::numberOfTRTHits
@ numberOfTRTHits
number of TRT hits [unit8_t].
Definition: TrackingPrimitives.h:275
InDet::SimpleIDNtupleTool::finalize
StatusCode finalize()
Definition: SimpleIDNtupleTool.cxx:191
InDet::SimpleIDNtupleTool::m_hit_derivy_bowx
double * m_hit_derivy_bowx
derivatives of Y-residual wrt.
Definition: SimpleIDNtupleTool.h:214
InDet::SimpleIDNtupleTool::fillSummary
void fillSummary()
fills ntuple with event and track summary information
Definition: SimpleIDNtupleTool.cxx:594
InDet::SimpleIDNtupleTool::m_hit_cotth
double * m_hit_cotth
cot(theta) of hit (hit_cotth in ntuple)
Definition: SimpleIDNtupleTool.h:168
InDet::SimpleIDNtupleTool::m_phi0
double m_phi0
phi perigee parameter of reconstructed track (phi0 in ntuple)
Definition: SimpleIDNtupleTool.h:103
InDet::SimpleIDNtupleTool::m_zvtx
double m_zvtx
z coord of track perigee (zvtx in ntuple)
Definition: SimpleIDNtupleTool.h:94
InDet::SimpleIDNtupleTool::m_hit_tpar_x
double * m_hit_tpar_x
track parameter locX
Definition: SimpleIDNtupleTool.h:193
InDet::SimpleIDNtupleTool::SimpleIDNtupleTool
SimpleIDNtupleTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: SimpleIDNtupleTool.cxx:38
Trk::AlignModule::TransformParameters
TransformParameters
enum to keep track of transformation coordinates
Definition: AlignModule.h:54
Trk::AlignTSOS::derivatives
const std::vector< Amg::VectorX > * derivatives() const
returns pointer to vector of derivatives
Definition: AlignTSOS.h:140
Trk::AlignPar::paramType
AlignModule::TransformParameters paramType() const
returns the type of parameter (i.e.
Definition: AlignPar.h:47
InDet::SimpleIDNtupleTool::m_tree
TTree * m_tree
Definition: SimpleIDNtupleTool.h:76
InDet::SimpleIDNtupleTool::m_nhitstrt
int m_nhitstrt
number of TRT hits on track (ntrthits in ntuple)
Definition: SimpleIDNtupleTool.h:132
Trk::AlignTSOS::module
const AlignModule * module() const
accessor method for AlignModule to which tsos belongs
Definition: AlignTSOS.h:69
xAOD::EventInfo_v1::runNumber
uint32_t runNumber() const
The current event's run number.
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
AlignTSOS.h
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
Track.h
m_file
std::unique_ptr< TFile > m_file
description: this is a custom writer for the old-school drivers that don't use an actual writer
Definition: OutputStreamData.cxx:52
InDet::SimpleIDNtupleTool::m_eta
double m_eta
eta of perigee of reconstructed track (eta in ntuple)
Definition: SimpleIDNtupleTool.h:115
InDet::SimpleIDNtupleTool::m_nshsct
int m_nshsct
number of shared SCT hits on track (nshsct in ntuple)
Definition: SimpleIDNtupleTool.h:144
InDet::SimpleIDNtupleTool::m_hit_zloc
double * m_hit_zloc
local z coord of hit (hit_zloc in ntuple)
Definition: SimpleIDNtupleTool.h:180
Trk::AlignModule::BowX
@ BowX
Definition: AlignModule.h:54
InDet::SimpleIDNtupleTool::m_qoverp
double m_qoverp
Q over p perigee parameter of reconstructed track (qoverp in ntuple)
Definition: SimpleIDNtupleTool.h:109
InDet::SimpleIDNtupleTool::m_hit_derivx_bowz
double * m_hit_derivx_bowz
derivatives of X-residual wrt.
Definition: SimpleIDNtupleTool.h:207
InDet::SimpleIDNtupleTool::m_idHelper
const TRT_ID * m_idHelper
Definition: SimpleIDNtupleTool.h:73
Trk::TrackStateOnSurface::type
bool type(const TrackStateOnSurfaceType type) const
Use this method to find out if the TSoS is of a certain type: i.e.
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
InDet::SimpleIDNtupleTool::m_hit_derivy_transx
double * m_hit_derivy_transx
derivatives of Y-residual wrt.
Definition: SimpleIDNtupleTool.h:208
InDet::SimpleIDNtupleTool::m_hit_type
int * m_hit_type
hit type
Definition: SimpleIDNtupleTool.h:197
InDet::SimpleIDNtupleTool::m_hit_derivx_transz
double * m_hit_derivx_transz
derivatives of X-residual wrt.
Definition: SimpleIDNtupleTool.h:201
AlignTrack.h
xAOD::numberOfPixelSharedHits
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:262
InDet::SimpleIDNtupleTool::m_hit_det
int * m_hit_det
detector type for the hit
Definition: SimpleIDNtupleTool.h:196
Trk::AlignTSOS::dumpMeasType
std::string dumpMeasType() const
returns string corresponding to the measurement type
Definition: AlignTSOS.cxx:194
InDet::SimpleIDNtupleTool::m_hit_eta
double * m_hit_eta
eta angle of hit (hit_eta in ntuple)
Definition: SimpleIDNtupleTool.h:171
InDet::SimpleIDNtupleTool::m_evtNumber
int m_evtNumber
Definition: SimpleIDNtupleTool.h:83
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::locZ
@ locZ
local cylindrical
Definition: ParamDefs.h:48
InDet::SimpleIDNtupleTool::m_chi2prob
double m_chi2prob
Chi2 probability of the track fit (chi2prob in ntuple)
Definition: SimpleIDNtupleTool.h:124
lumiFormat.i
int i
Definition: lumiFormat.py:92
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
Trk::theta
@ theta
Definition: ParamDefs.h:72
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDet::SimpleIDNtupleTool::m_alignModuleTool
ToolHandle< Trk::IAlignModuleTool > m_alignModuleTool
Pointer to AlignmModuleTool.
Definition: SimpleIDNtupleTool.h:71
InDet::SimpleIDNtupleTool::dumpTrack
void dumpTrack(int itrk, const Trk::AlignTrack *alignTrack)
fills track information to ntuple
Definition: SimpleIDNtupleTool.cxx:198
InDet::SimpleIDNtupleTool::m_hit_z
double * m_hit_z
z coord of hit (hit_z in ntuple)
Definition: SimpleIDNtupleTool.h:165
SimpleIDNtupleTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Trk::AlignModule::RotX
@ RotX
Definition: AlignModule.h:54
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
InDet::SimpleIDNtupleTool::initializeNtuple
void initializeNtuple()
Definition: SimpleIDNtupleTool.cxx:602
InDet::SimpleIDNtupleTool::m_file
TFile * m_file
Definition: SimpleIDNtupleTool.h:75
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
Trk::FitQuality
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
Definition: FitQuality.h:97
Trk::ParametersBase
Definition: ParametersBase.h:55
InDet::SimpleIDNtupleTool::m_nhsct
int m_nhsct
number of SCT holes on track (nhsct in ntuple)
Definition: SimpleIDNtupleTool.h:153
xAOD::numberOfSCTHoles
@ numberOfSCTHoles
number of SCT holes [unit8_t].
Definition: TrackingPrimitives.h:270
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
InDet::SimpleIDNtupleTool::m_hit_drd
double * m_hit_drd
drift distance to wire for hit (hit_drd in ntuple)
Definition: SimpleIDNtupleTool.h:183
InDet::SimpleIDNtupleTool::m_hit_derivy_transz
double * m_hit_derivy_transz
derivatives of Y-residual wrt.
Definition: SimpleIDNtupleTool.h:210
Trk::MeasurementBase::localCovariance
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
Definition: MeasurementBase.h:138
Trk::AlignTSOS::unbiasedTrackPars
const TrackParameters * unbiasedTrackPars() const
returns pointer to unbiased track parameters if present
Definition: AlignTSOS.h:134
InDet::SimpleIDNtupleTool::m_hit_derivx_roty
double * m_hit_derivx_roty
derivatives of X-residual wrt.
Definition: SimpleIDNtupleTool.h:203
Trk::Track::perigeeParameters
const Perigee * perigeeParameters() const
return Perigee.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:163
InDet::SimpleIDNtupleTool::m_hit_derivy_rotx
double * m_hit_derivy_rotx
derivatives of Y-residual wrt.
Definition: SimpleIDNtupleTool.h:211
InDet::SimpleIDNtupleTool::m_hit_derivx_transy
double * m_hit_derivx_transy
derivatives of X-residual wrt.
Definition: SimpleIDNtupleTool.h:200
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Trk::d0
@ d0
Definition: ParamDefs.h:69
RIO_OnTrack.h
Amg::error
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
Definition: EventPrimitivesHelpers.h:40
AlignModule.h
InDet::SimpleIDNtupleTool::m_hit_derivy_rotz
double * m_hit_derivy_rotz
derivatives of Y-residual wrt.
Definition: SimpleIDNtupleTool.h:213
InDet::SimpleIDNtupleTool::~SimpleIDNtupleTool
virtual ~SimpleIDNtupleTool()
Definition: SimpleIDNtupleTool.cxx:116
InDet::SimpleIDNtupleTool::fillNtuple
StatusCode fillNtuple()
writes trees and histograms to ntuple
Definition: SimpleIDNtupleTool.cxx:181
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::AlignTrack
Definition: AlignTrack.h:41
EventInfo.h
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
InDet::SimpleIDNtupleTool::m_hit_phi
double * m_hit_phi
phi angle of hit (hit_phi in ntuple)
Definition: SimpleIDNtupleTool.h:162
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
TrackParticle.h
Trk::AlignModule::TransX
@ TransX
Definition: AlignModule.h:54
Trk::AlignTrack::alignTSOSCollection
const AlignTSOSCollection * alignTSOSCollection() const
returns collection of alignTSOS
Definition: AlignTrack.h:267
TRT_ID::is_barrel
bool is_barrel(const Identifier &id) const
Test for barrel.
Definition: TRT_ID.h:857
InDet::SimpleIDNtupleTool::m_hit_yloc
double * m_hit_yloc
local y coord of hit (hit_yloc in ntuple)
Definition: SimpleIDNtupleTool.h:177
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Residual.h
InDet::SimpleIDNtupleTool::m_theta
double m_theta
theta perigee parameter of reconstructed track (theta in ntuple)
Definition: SimpleIDNtupleTool.h:106
InDet::SimpleIDNtupleTool::m_hit_resy_err
double * m_hit_resy_err
Y-residual error of the hit.
Definition: SimpleIDNtupleTool.h:191
Trk::AlignModule::RotY
@ RotY
Definition: AlignModule.h:54
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
InDet::SimpleIDNtupleTool::m_storeDerivatives
bool m_storeDerivatives
Definition: SimpleIDNtupleTool.h:220
Trk::AlignTSOS::nResDim
int nResDim() const
returns number of measurement residual + scatterer residual dimensions
Definition: AlignTSOS.h:77
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:73
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
Trk::RIO_OnTrack::identify
virtual Identifier identify() const final
return the identifier -extends MeasurementBase
Definition: RIO_OnTrack.h:155
InDet::SimpleIDNtupleTool::m_d0
double m_d0
d0 perigee parameter of reconstructed track (d0 in ntuple)
Definition: SimpleIDNtupleTool.h:97
IAlignModuleTool.h
InDet::SimpleIDNtupleTool::m_nhpix
int m_nhpix
number of Pixel holes on track (nhpix in ntuple)
Definition: SimpleIDNtupleTool.h:156
InDet::SimpleIDNtupleTool::m_hit_xloc
double * m_hit_xloc
local x coord of hit (hit_xloc in ntuple)
Definition: SimpleIDNtupleTool.h:174
InDet::SimpleIDNtupleTool::fillHits
void fillHits(const Trk::AlignTrack *alignTrack)
fills hit information to ntuple
Definition: SimpleIDNtupleTool.cxx:336
InDet::SimpleIDNtupleTool::m_hit_derivx_rotz
double * m_hit_derivx_rotz
derivatives of X-residual wrt.
Definition: SimpleIDNtupleTool.h:204
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:268
AlignPar.h
InDet::SimpleIDNtupleTool::showStatistics
void showStatistics()
write statistics out to log file
Definition: SimpleIDNtupleTool.cxx:598
InDet::SimpleIDNtupleTool::m_hit_resx_err
double * m_hit_resx_err
X-residual error of the hit.
Definition: SimpleIDNtupleTool.h:189
InDet::SimpleIDNtupleTool::m_hit_resx
double * m_hit_resx
X-residual of the hit.
Definition: SimpleIDNtupleTool.h:188
InDet::SimpleIDNtupleTool::m_hit_derivx_rotx
double * m_hit_derivx_rotx
derivatives of X-residual wrt.
Definition: SimpleIDNtupleTool.h:202
InDet::SimpleIDNtupleTool::m_nholes
int m_nholes
number of holes on track (nholes in ntuple)
Definition: SimpleIDNtupleTool.h:150
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
Trk::AlignTSOS::firstResidual
std::vector< Residual >::const_iterator firstResidual() const
returns first Residual iterator
Definition: AlignTSOS.h:104
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
AthAlgTool
Definition: AthAlgTool.h:26
get_generator_info.error
error
Definition: get_generator_info.py:40
FitQuality.h
Trk::AlignModule::RotZ
@ RotZ
Definition: AlignModule.h:54
InDet::SimpleIDNtupleTool::m_hit_derivy_bowy
double * m_hit_derivy_bowy
derivatives of Y-residual wrt.
Definition: SimpleIDNtupleTool.h:215
Trk::AlignModule::BowZ
@ BowZ
Definition: AlignModule.h:54
error
Definition: IImpactPoint3dEstimator.h:70
Trk::AlignModule::TransY
@ TransY
Definition: AlignModule.h:54
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
InDet::SimpleIDNtupleTool::m_hit_derivx_bowx
double * m_hit_derivx_bowx
derivatives of X-residual wrt.
Definition: SimpleIDNtupleTool.h:205
InDet::SimpleIDNtupleTool::m_nhits
int m_nhits
number of hits on track [including scattering centers] (nhits in ntuple)
Definition: SimpleIDNtupleTool.h:129
Trk::phi0
@ phi0
Definition: ParamDefs.h:71
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
InDet::SimpleIDNtupleTool::m_ndof
int m_ndof
number of degrees of freedom of the track fit (ndof in ntuple)
Definition: SimpleIDNtupleTool.h:121
InDet::SimpleIDNtupleTool::m_xvtx
double m_xvtx
x coord of track perigee (xvtx in ntuple)
Definition: SimpleIDNtupleTool.h:88
InDet::SimpleIDNtupleTool::initialize
StatusCode initialize()
Definition: SimpleIDNtupleTool.cxx:161