ATLAS Offline Software
MuonRecoValidationTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 #include "GaudiKernel/ConcurrencyFlags.h"
8 #include "GaudiKernel/IIncidentSvc.h"
9 #include "GaudiKernel/ITHistSvc.h"
19 #include "TFile.h"
20 #include "TTree.h"
22 #include "TrkTrack/Track.h"
27 
28 namespace {
29  constexpr float SIG_VEL = 4.80000;
30  constexpr float C_VEL = 3.33564;
31 } // namespace
32 
33 namespace Muon {
34 
35  MuonRecoValidationTool::MuonRecoValidationTool(const std::string& t, const std::string& n, const IInterface* p) :
36  AthAlgTool(t, n, p),
37  m_segmentHitSummaryTool("Muon::MuonSegmentHitSummaryTool/MuonSegmentHitSummaryTool"),
38  m_hitSummaryTool("Muon::MuonHitSummaryTool/MuonHitSummaryTool"),
39  m_truthSummaryTool("Muon::MuonTruthSummaryTool/MuonTruthSummaryTool"),
40  m_extrapolator("Trk::Extrapolation/AtlasExtrapolator"),
41  m_matchingTool("MuTagMatchingTool/MuTagMatchingTool"),
42  m_hitTimingTool("Muon::MuonHitTimingTool/MuonHitTimingTool"),
43  m_incidentSvc("IncidentSvc", n),
44  m_candidateCounter(0) {
45  declareInterface<IMuonRecoValidationTool>(this);
46  declareProperty("MuonSegmentHitSummaryTool", m_segmentHitSummaryTool);
47  declareProperty("MuonHitSummaryTool", m_hitSummaryTool);
48  declareProperty("MuonTruthSummaryTool", m_truthSummaryTool);
49  declareProperty("Extrapolator", m_extrapolator);
50  declareProperty("MatchTool", m_matchingTool);
51  declareProperty("MuonHitTimingTool", m_hitTimingTool);
52  declareProperty("IncidentSvc", m_incidentSvc);
53  declareProperty("isMC", m_isMC = false);
54  }
55 
57 
59  ATH_MSG_ERROR("This tool cannot be used in multi-threaded mode");
60  return StatusCode::FAILURE;
61  }
62 
63  ATH_CHECK(m_idHelperSvc.retrieve());
64  ATH_CHECK(m_edmHelperSvc.retrieve());
66  ATH_CHECK(m_hitSummaryTool.retrieve());
67  if (m_isMC) {
68  ATH_CHECK(m_truthSummaryTool.retrieve());
69  } else {
70  m_truthSummaryTool.disable();
71  }
72  ATH_CHECK(m_extrapolator.retrieve());
73  ATH_CHECK(m_matchingTool.retrieve());
74  ATH_CHECK(m_hitTimingTool.retrieve());
75  ITHistSvc* thistSvc = nullptr;
76  ATH_CHECK(service("THistSvc", thistSvc));
77 
78  m_tree = new TTree("data", "RecoValidation");
79  ATH_CHECK(thistSvc->regTree("/MuonRecoVal/data", m_tree));
80 
81  m_ntuple.init("", m_tree);
82 
83  // call handle in case of EndEvent
84  ATH_CHECK(m_incidentSvc.retrieve());
85  m_incidentSvc->addListener(this, IncidentType::EndEvent);
86 
87  return StatusCode::SUCCESS;
88  }
89 
92  m_ntuple.clear();
93  m_trackParticles.clear();
95  }
96 
97  void MuonRecoValidationTool::handle(const Incident& inc) {
98  // Only clear cache for EndEvent incident
99  if (inc.type() == IncidentType::EndEvent) {
100  ATH_MSG_DEBUG(" clearing cache at end of event ");
101  m_tree->Fill();
102  clear();
103  }
104  }
105 
107  const MuonSystemExtension& muonSystemExtension) const {
108  m_ntuple.trackParticleBlock.pt->push_back(indetTrackParticle.pt());
109  m_ntuple.trackParticleBlock.p->push_back(1. / indetTrackParticle.qOverP());
110  m_ntuple.trackParticleBlock.eta->push_back(indetTrackParticle.eta());
111  m_ntuple.trackParticleBlock.phi->push_back(indetTrackParticle.phi());
112  int pdg = 0;
113  int barcode = -1; // FIXME barcode-based
114  float beta = 1.;
115  // set truth
116  typedef ElementLink<xAOD::TruthParticleContainer> ElementTruthLink_t;
118  truthParticleLinkAcc("truthParticleLink");
119  if (truthParticleLinkAcc.isAvailable(indetTrackParticle)) {
120  const ElementTruthLink_t link = truthParticleLinkAcc(indetTrackParticle);
121  if (link.isValid()) {
122  pdg = (*link)->pdgId();
123  barcode = HepMC::barcode(*link);
124  beta = (*link)->p4().Beta();
125  }
126  }
127  m_ntuple.trackParticleBlock.truth.fill(pdg, barcode, beta); // FIXME barcode-based
128 
129  // try to find the pointer of the indetTrackParticle
130  bool found = false;
131  for (unsigned int index = 0; index < m_trackParticles.size(); ++index) {
132  if (&indetTrackParticle == m_trackParticles[index]) {
133  found = true;
134  break;
135  }
136  }
137  if (!found) {
138  // set index to the last element
139  unsigned int index = m_trackParticles.size();
140  m_trackParticles.push_back(&indetTrackParticle);
141 
142  const std::vector<Muon::MuonSystemExtension::Intersection>& layerIntersections = muonSystemExtension.layerIntersections();
143  ATH_MSG_DEBUG("Adding ID track: pt " << indetTrackParticle.pt() << " eta " << indetTrackParticle.eta() << " phi "
144  << indetTrackParticle.phi() << " layers " << layerIntersections.size());
145 
146  for (std::vector<Muon::MuonSystemExtension::Intersection>::const_iterator it = layerIntersections.begin();
147  it != layerIntersections.end(); ++it) {
148  m_trackParticleIndexLookup[it->trackParameters.get()] = index;
149  }
150  }
151  return true;
152  }
153 
154  int MuonRecoValidationTool::getBarcode(const std::set<Identifier>& ids) const {
155  if (!m_isMC) return HepMC::INVALID_PARTICLE_ID;
156 
157  // count how often a barcode occurs
158  std::map<int, int> counters;
159  for (std::set<Identifier>::const_iterator it = ids.begin(); it != ids.end(); ++it) {
160  const int bc = m_truthSummaryTool->getBarcode(*it); // FIXME barcode-based
161  if (bc != -1) ++counters[bc];
162  }
163 
164  // pick the most frequent
165  int barcode = -1;
166  int max = -1;
167  for (std::map<int, int>::iterator it = counters.begin(); it != counters.end(); ++it) {
168  if (it->second > max) {
169  barcode = it->first; // FIXME barcode-based
170  max = it->second;
171  }
172  }
173 
174  return barcode;
175  }
176 
178  const MuGirlNS::StauHits& stauHits) const {
179  Muon::MuonBetaCalculationUtils muonBetaCalculationUtils;
180 
181  auto pos = std::find(m_trackParticles.begin(), m_trackParticles.end(), &indetTrackParticle);
182  if (pos == m_trackParticles.end()) {
183  ATH_MSG_WARNING("addTimeMeasurement: indetTrackParticle not found ");
184  return false;
185  }
186  int index = std::distance(m_trackParticles.begin(), pos);
187 
188  for (const auto& stauHit : stauHits) {
189  Identifier id = stauHit.id;
190  int type = m_idHelperSvc->technologyIndex(id) + 10;
191  double r = sqrt(stauHit.x * stauHit.x + stauHit.y * stauHit.y);
192  double tof = muonBetaCalculationUtils.calculateTof(1, sqrt(r * r + stauHit.z * stauHit.z));
193  // track index
195 
196  // identifier info
197  m_ntuple.timeBlock.id.fill(m_idHelperSvc->sector(id), m_idHelperSvc->chamberIndex(id));
198 
199  // position + time information
200  m_ntuple.timeBlock.fill(type, m_idHelperSvc->gasGapId(id).get_identifier32().get_compact(), r, stauHit.z, stauHit.mToF - tof,
201  stauHit.error, stauHit.propagationTime, stauHit.e, tof, 0., stauHit.shift, 1000 * m_candidateCounter);
202 
203  // barcode + pdg
204  int barcode = -1, pdg = 0;
205  if (m_isMC) {
206  barcode = m_truthSummaryTool->getBarcode(id);
207  pdg = barcode != -1 ? m_truthSummaryTool->getPdgId(barcode) : 0;
208  }
210  }
212  return true;
213  }
214 
216  const Amg::Vector3D& gpos, float time, float errorTime) const {
217  // track index
219 
220  // identifier info
221  m_ntuple.timeBlock.id.fill(m_idHelperSvc->sector(id), m_idHelperSvc->chamberIndex(id));
222 
223  // position information
224  m_ntuple.timeBlock.fill(2, m_idHelperSvc->gasGapId(id).get_identifier32().get_compact(), gpos.perp(), gpos.z(), time, errorTime);
225 
226  // barcode + pdg
227  int barcode = -1, pdg = 0;
228  if (m_isMC) {
229  barcode = m_truthSummaryTool->getBarcode(id);
230  pdg = barcode != -1 ? m_truthSummaryTool->getPdgId(barcode) : 0;
231  }
233 
234  return true;
235  }
236 
238  const Trk::MeasurementBase& meas) const {
239  float segmentTimeCorrection = 0.;
240 
241  const MuonSegment* seg = dynamic_cast<const MuonSegment*>(&meas);
242  if (seg && seg->hasFittedT0()) {
244 
245  Identifier id = m_edmHelperSvc->chamberId(*seg);
246  m_ntuple.timeBlock.id.fill(m_idHelperSvc->sector(id), m_idHelperSvc->chamberIndex(id));
247 
248  // position information
249  m_ntuple.timeBlock.fill(1, m_idHelperSvc->chamberId(id).get_identifier32().get_compact(), seg->globalPosition().perp(),
250  seg->globalPosition().z(), seg->time() - segmentTimeCorrection, seg->errorTime());
251 
252  // barcode + pdg
253  std::set<Identifier> ids;
254  std::vector<const MuonClusterOnTrack*> clusters;
255  extract(*seg, ids, clusters);
256  int barcode = getBarcode(ids);
257  int pdg = 0;
258  if (m_isMC) pdg = barcode != -1 ? m_truthSummaryTool->getPdgId(barcode) : 0;
260 
261  return true;
262  }
263 
264  const RpcClusterOnTrack* rpc = dynamic_cast<const RpcClusterOnTrack*>(&meas);
265  if (rpc) {
267 
268  Identifier id = rpc->identify();
269  m_ntuple.timeBlock.id.fill(m_idHelperSvc->sector(id), m_idHelperSvc->chamberIndex(id));
270 
271  // barcode + pdg
272  int barcode = -1, pdg = 0;
273  if (m_isMC) {
274  barcode = m_truthSummaryTool->getBarcode(id);
275  pdg = barcode != -1 ? m_truthSummaryTool->getPdgId(barcode) : 0;
276  }
278 
279  bool measphi = m_idHelperSvc->measuresPhi(id);
280  const Amg::Vector3D& GP = rpc->globalPosition();
281  const Muon::RpcPrepData* MClus = rpc->prepRawData();
282  const MuonGM::RpcReadoutElement* rpc_readout_element = MClus->detectorElement();
283  Amg::Vector3D posi = rpc_readout_element->stripPos(id);
284 
285  // let's correct rpc time subtracting delay due to the induced electric signal propagation along strip
286  double correct_time_along_strip = 0;
287  if (measphi == 0) {
288  correct_time_along_strip = rpc_readout_element->distanceToEtaReadout(GP) / 1000. * SIG_VEL;
289  } else {
290  correct_time_along_strip = rpc_readout_element->distanceToPhiReadout(GP) / 1000. * SIG_VEL;
291  }
292 
293  // let's evaluate the average delay due to the induced electric signal propagation along strip
294  double av_correct_time_along_strip = 0;
295  if (measphi == 0) {
296  av_correct_time_along_strip = rpc_readout_element->distanceToEtaReadout(posi) / 1000. * SIG_VEL;
297  } else {
298  av_correct_time_along_strip = rpc_readout_element->distanceToPhiReadout(posi) / 1000. * SIG_VEL;
299  }
300 
301  // let's evaluate [real TOF - nominal TOF]
302  double real_TOF_onRPCgap = GP.mag() / 1000. * C_VEL;
303  double nominal_TOF_onRPCgap = posi.mag() / 1000. * C_VEL;
304 
305  // let's evaluate the total time correction
306  double correct_time_tot = real_TOF_onRPCgap - nominal_TOF_onRPCgap + correct_time_along_strip - av_correct_time_along_strip;
307 
308  // time and position information
309  m_ntuple.timeBlock.fill(0, m_idHelperSvc->gasGapId(id).get_identifier32().get_compact(), rpc->globalPosition().perp(),
310  rpc->globalPosition().z(), rpc->time(), 2., correct_time_along_strip, av_correct_time_along_strip,
311  real_TOF_onRPCgap, nominal_TOF_onRPCgap, correct_time_tot);
312 
313  return true;
314  }
315 
316  return true;
317  }
318 
320  const EventContext& ctx = Gaudi::Hive::currentContext();
321  m_ntuple.segmentBlock.stage->push_back(stage);
322 
323  Identifier id = m_edmHelperSvc->chamberId(segment);
324  m_ntuple.segmentBlock.id.fill(m_idHelperSvc->sector(id), m_idHelperSvc->chamberIndex(id));
325 
326  // position information
327  m_ntuple.segmentBlock.r->push_back(segment.globalPosition().perp());
328  m_ntuple.segmentBlock.z->push_back(segment.globalPosition().z());
329 
330  // timing information
331  float t0 = segment.hasFittedT0() ? segment.time() : -99999;
332  float t0Error = segment.hasFittedT0() ? segment.errorTime() : -99999;
333  m_ntuple.segmentBlock.t0->push_back(t0);
334  m_ntuple.segmentBlock.t0Error->push_back(t0Error);
335 
336  // extract clusters and ids
337  std::set<Identifier> ids;
338  std::vector<const MuonClusterOnTrack*> clusters;
340 
342  t0 = result.valid ? result.time : -99999;
343  t0Error = result.valid ? result.error : -99999;
344  m_ntuple.segmentBlock.t0Trig->push_back(t0);
345  m_ntuple.segmentBlock.t0TrigError->push_back(t0Error);
346 
347  // hit counts
349  m_ntuple.segmentBlock.nmdtHits->push_back(hitCounts.nmdtHits()+ hitCounts.nmmHits() + hitCounts.ncscHits.netaHits);
350  m_ntuple.segmentBlock.ntrigEtaHits->push_back(hitCounts.netaTrigHitLayers);
351  m_ntuple.segmentBlock.ntrigPhiHits->push_back(hitCounts.nphiTrigHitLayers);
352 
353  // barcode + pdg
354  int barcode = getBarcode(ids);
355  int pdg = 0;
356  if (m_isMC) pdg = barcode != -1 ? m_truthSummaryTool->getPdgId(barcode) : 0;
358 
360 
361  // extrapolate and create an intersection @ the segment surface.
362  std::shared_ptr<Trk::TrackParameters> exPars(
363  m_extrapolator->extrapolate(ctx, *intersection.trackParameters, segment.associatedSurface(), Trk::anyDirection, false, Trk::muon));
364  if (!exPars) {
365  ATH_MSG_VERBOSE(" extrapolation failed ");
366  m_ntuple.segmentBlock.quality->push_back(-2);
367  m_ntuple.segmentBlock.xresiduals.fill(0., 1., 0., 1., -1);
368  m_ntuple.segmentBlock.yresiduals.fill(0., 1., 0., 1., -1);
369  m_ntuple.segmentBlock.angleXZ.fill(0., 1., 0., 1., -1);
370  m_ntuple.segmentBlock.angleYZ.fill(0., 1., 0., 1., -1);
371  m_ntuple.segmentBlock.combinedYZ.fill(0., 1., 0., 1., -1);
372  return false;
373  }
374 
375  // cast to AtaPlane so we can get the segment info
376  std::shared_ptr<Trk::AtaPlane> ataPlane = std::dynamic_pointer_cast<Trk::AtaPlane>(exPars);
377  if (!ataPlane) {
378  ATH_MSG_WARNING(" dynamic_cast<> failed ");
379  m_ntuple.segmentBlock.quality->push_back(-2);
380  m_ntuple.segmentBlock.angleXZ.fill(0., 1., 0., 1., -1);
381  m_ntuple.segmentBlock.angleYZ.fill(0., 1., 0., 1., -1);
382  m_ntuple.segmentBlock.combinedYZ.fill(0., 1., 0., 1., -1);
383  return false;
384  }
385  MuonCombined::MuonSegmentInfo segmentInfo = m_matchingTool->muTagSegmentInfo(ctx, nullptr, segment, ataPlane);
386  m_ntuple.segmentBlock.quality->push_back(segmentInfo.quality);
387  m_ntuple.segmentBlock.xresiduals.fillResPull(segmentInfo.resX, segmentInfo.pullX, segmentInfo.segErrorX, segmentInfo.exErrorX, 1);
388  m_ntuple.segmentBlock.yresiduals.fillResPull(segmentInfo.resY, segmentInfo.pullY, segmentInfo.segErrorY, segmentInfo.exErrorY, 1);
389  m_ntuple.segmentBlock.angleXZ.fillResPull(segmentInfo.dangleXZ, segmentInfo.pullXZ, segmentInfo.segErrorXZ, segmentInfo.exErrorXZ,
390  1);
391  m_ntuple.segmentBlock.angleYZ.fillResPull(segmentInfo.dangleYZ, segmentInfo.pullYZ, segmentInfo.segErrorYZ, segmentInfo.exErrorYZ,
392  1);
393  m_ntuple.segmentBlock.combinedYZ.fillResPull(segmentInfo.resCY, segmentInfo.pullCY, 1);
394 
395  ATH_MSG_DEBUG(" Adding Segment to ntuple: stage " << stage);
396 
397  return true;
398  }
399 
401  const MuonHough::MuonLayerHough::Maximum& maximum) const {
402  m_ntuple.houghBlock.maximum->push_back(maximum.max);
403 
405 
406  int sector = -1;
407  int chIndex = -1;
408  float maxwidth = (maximum.binposmax - maximum.binposmin);
409  if (maximum.hough) {
410  maxwidth *= maximum.hough->m_binsize;
411  sector = maximum.hough->m_descriptor.sector;
412  chIndex = maximum.hough->m_descriptor.chIndex;
413  }
414  m_ntuple.houghBlock.id.fill(sector, chIndex);
416 
417  // get truth from hits
418  std::set<Identifier> ids;
419 
420  MuonHough::HitVec::const_iterator hit = maximum.hits.begin();
421  MuonHough::HitVec::const_iterator hit_end = maximum.hits.end();
422  for (; hit != hit_end; ++hit) {
423  // treat the case that the hit is a composite TGC hit
424  if ((*hit)->tgc) {
425  for (const auto& prd : (*hit)->tgc->etaCluster) ids.insert(prd->identify());
426  } else if ((*hit)->prd) {
427  ids.insert((*hit)->prd->identify());
428  }
429  }
430  int barcode = -1, pdg = 0;
431  if (m_isMC) {
433  pdg = barcode != -1 ? m_truthSummaryTool->getPdgId(barcode) : 0;
434  }
436 
437  ATH_MSG_DEBUG(" Adding Hough maximum to ntuple ");
438 
439  return true;
440  }
441 
443  float expos_err) const {
444  Identifier id = prd.identify();
445  m_ntuple.hitBlock.id.fill(m_idHelperSvc->sector(id), m_idHelperSvc->chamberIndex(id));
447 
448  int barcode = -1, pdg = 0;
449  if (m_isMC) {
450  barcode = m_truthSummaryTool->getBarcode(id);
451  pdg = barcode != -1 ? m_truthSummaryTool->getPdgId(barcode) : 0;
452  }
454 
455  float sign = expos < 0 ? -1. : 1.;
457  expos_err);
458 
459  return true;
460  }
461 
462  void MuonRecoValidationTool::extract(const MuonSegment& segment, std::set<Identifier>& ids,
463  std::vector<const MuonClusterOnTrack*>& clusters) const {
464  // loop over hits and extract clusters and ids
465  std::vector<const Trk::MeasurementBase*>::const_iterator mit = segment.containedMeasurements().begin();
466  std::vector<const Trk::MeasurementBase*>::const_iterator mit_end = segment.containedMeasurements().end();
467  for (; mit != mit_end; ++mit) {
468  // get Identifier and remove MDT hits
469  Identifier id = m_edmHelperSvc->getIdentifier(**mit);
470  if (!id.is_valid()) continue;
471  ids.insert(id);
472  if (!m_idHelperSvc->isTrigger(id)) continue;
473 
474  // cast to MuonClusterOnTrack
475  const MuonClusterOnTrack* clus = dynamic_cast<const MuonClusterOnTrack*>(*mit);
476  if (clus)
477  clusters.push_back(clus);
478  else {
479  const CompetingMuonClustersOnTrack* crot = dynamic_cast<const CompetingMuonClustersOnTrack*>(*mit);
480  if (!crot || crot->containedROTs().empty()) continue;
481  clusters.insert(clusters.end(), crot->containedROTs().begin(), crot->containedROTs().end());
482  }
483  }
484  }
485 
486  bool MuonRecoValidationTool::addMuonCandidate(const xAOD::TrackParticle& indetTrackParticle, const MuonCandidate* candidate,
487  Trk::Track* combinedTrack, int ntimes, float beta, float chi2ndof, int stage) const {
488  auto pos = std::find(m_trackParticles.begin(), m_trackParticles.end(), &indetTrackParticle);
489  if (pos == m_trackParticles.end()) {
490  ATH_MSG_WARNING("addMuonCandidate: indetTrackParticle not found ");
491  return false;
492  }
493 
495  int nprec = 0;
496  int ntrigPhi = 0;
497  int ntrigEta = 0;
498  int nseg = candidate ? candidate->layerIntersections.size() : 0;
499  const Trk::Track* track = combinedTrack;
500  if (combinedTrack) {
502  nprec = summary.nprecisionLayers;
503  ntrigPhi = summary.nphiLayers;
504  ntrigEta = summary.ntrigEtaLayers;
505  }
506  m_ntuple.candidateBlock.fill(ntimes, beta, chi2ndof, nseg, nprec, ntrigPhi, ntrigEta, stage);
507  return true;
508  }
509 
510 } // namespace Muon
Muon::MuonRecoValidationTool::m_ntuple
MuonInsideOutValidationNtuple m_ntuple
Definition: MuonRecoValidationTool.h:118
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
Muon::MuonValidationTrackParticleBlock::p
std::vector< float > * p
Definition: MuonInsideOutValidationNtuple.h:196
Muon::MuonCandidate
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonLayerEvent/MuonLayerEvent/MuonCandidate.h:14
Trk::SpaceTimePointBase::errorTime
float errorTime() const
access to the error on the measured time
Definition: SpaceTimePointBase.h:50
Trk::anyDirection
@ anyDirection
Definition: PropDirection.h:22
Muon::MuonRecoValidationTool::m_trackParticles
std::vector< const xAOD::TrackParticle * > m_trackParticles
Definition: MuonRecoValidationTool.h:115
xAOD::TrackParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TrackParticle_v1.cxx:73
MuonCombined::MuonSegmentInfo::segErrorYZ
double segErrorYZ
error from segment on angle in bending plane
Definition: MuonSegmentInfo.h:95
Muon::MuonValidationTrackParticleBlock::phi
std::vector< float > * phi
Definition: MuonInsideOutValidationNtuple.h:198
beamspotman.r
def r
Definition: beamspotman.py:676
MuonCombined::MuonSegmentInfo::pullXZ
double pullXZ
pull on angle in non-bending plane
Definition: MuonSegmentInfo.h:86
Muon::MuonValidationHoughBlock::id
MuonValidationIdBlock id
Definition: MuonInsideOutValidationNtuple.h:238
MuonCombined::MuonSegmentInfo
Definition: MuonSegmentInfo.h:23
Muon::MuonRecoValidationTool::m_hitSummaryTool
ToolHandle< IMuonHitSummaryTool > m_hitSummaryTool
Definition: MuonRecoValidationTool.h:107
TgcHitClustering.h
Muon::MuonValidationTrackParticleBlock::pt
std::vector< float > * pt
Definition: MuonInsideOutValidationNtuple.h:195
Muon::MuonValidationIdBlock::fill
void fill(int sector_, int chIndex_)
Definition: MuonInsideOutValidationNtuple.h:65
Muon::MuonValidationTrackParticleBlock::truth
MuonValidationTruthBlock truth
Definition: MuonInsideOutValidationNtuple.h:199
Muon::MuonInsideOutValidationNtuple::candidateBlock
MuonValidationCandidateBlock candidateBlock
Definition: MuonInsideOutValidationNtuple.h:291
get_generator_info.result
result
Definition: get_generator_info.py:21
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
max
#define max(a, b)
Definition: cfImp.cxx:41
python.FPGATrackSimAnalysisConfig.stage
stage
Definition: FPGATrackSimAnalysisConfig.py:604
Muon::MuonClusterOnTrack::globalPosition
virtual const Amg::Vector3D & globalPosition() const override
Returns global position.
Definition: MuonClusterOnTrack.cxx:93
Muon::MuonValidationHitBlock::id
MuonValidationIdBlock id
Definition: MuonInsideOutValidationNtuple.h:248
Trk::locX
@ locX
Definition: ParamDefs.h:43
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
MuonHough::MuonLayerHough::m_binsize
float m_binsize
Definition: MuonLayerHough.h:168
Muon::MuonValidationTimeBlock::fill
void fill(int type_, unsigned int gasgapId_, float r_, float z_, float time_, float err_, float timeProp_=0., float avTimeProp_=0., float tof_=0., float avTof_=0., float timeCor_=0., int stage_=0)
Definition: MuonInsideOutValidationNtuple.h:120
MuonCombined::MuonSegmentInfo::resCY
double resCY
residual on combined local position Y and angle YZ
Definition: MuonSegmentInfo.h:101
MuonCombined::MuonSegmentInfo::exErrorX
double exErrorX
error from extrapolation on residual in non-bending plane
Definition: MuonSegmentInfo.h:50
Muon::MuonValidationSegmentBlock::ntrigEtaHits
std::vector< int > * ntrigEtaHits
Definition: MuonInsideOutValidationNtuple.h:212
index
Definition: index.py:1
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
xAOD::TrackParticle_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: TrackParticle_v1.cxx:77
Muon::MuonRecoValidationTool::m_isMC
bool m_isMC
Definition: MuonRecoValidationTool.h:123
Muon::MuonRecoValidationTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonRecoValidationTool.h:103
MuonHough::MuonLayerHough::m_descriptor
RegionDescriptor m_descriptor
Definition: MuonLayerHough.h:179
TruthParticleContainer.h
MuonCombined::MuonSegmentInfo::dangleXZ
double dangleXZ
angular residual in the Local coordinate non-bending plane
Definition: MuonSegmentInfo.h:77
Muon::MuonValidationSegmentBlock::track
MuonValidationTrackBlock track
Definition: MuonInsideOutValidationNtuple.h:221
Muon::MuonValidationHoughBlock::track
MuonValidationTrackBlock track
Definition: MuonInsideOutValidationNtuple.h:239
Muon::MuonValidationTruthBlock::fill
void fill(int pdg_, int barcode_, float beta_=1.)
Definition: MuonInsideOutValidationNtuple.h:79
Trk::PrepRawData::localCovariance
const Amg::MatrixX & localCovariance() const
return const ref to the error matrix
ALFA_EventTPCnv_Dict::t0
std::vector< ALFA_RawData_p1 > t0
Definition: ALFA_EventTPCnvDict.h:42
HepMC::INVALID_PARTICLE_ID
constexpr int INVALID_PARTICLE_ID
Definition: MagicNumbers.h:56
skel.it
it
Definition: skel.GENtoEVGEN.py:423
CompetingMuonClustersOnTrack.h
MuonCombined::MuonSegmentInfo::segErrorXZ
double segErrorXZ
error from segment on angle in non-bending plane
Definition: MuonSegmentInfo.h:83
Muon::MuonValidationSegmentBlock::quality
std::vector< int > * quality
Definition: MuonInsideOutValidationNtuple.h:210
Muon::IMuonHitSummaryTool::CompactSummary
Definition: IMuonHitSummaryTool.h:70
MuonGM::RpcReadoutElement
An RpcReadoutElement corresponds to a single RPC module; therefore typicaly a barrel muon station con...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/RpcReadoutElement.h:54
Muon::RpcClusterOnTrack
Class to represent calibrated clusters formed from RPC strips.
Definition: RpcClusterOnTrack.h:35
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
Muon::MuonRecoValidationTool::addTrackParticle
bool addTrackParticle(const xAOD::TrackParticle &indetTrackParticle, const MuonSystemExtension &muonSystemExtention) const override
add a new TrackParticle with it's muon system extension
Definition: MuonRecoValidationTool.cxx:106
Muon::MuonValidationSegmentBlock::combinedYZ
MuonValidationResidualBlock combinedYZ
Definition: MuonInsideOutValidationNtuple.h:227
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
Muon::CompetingMuonClustersOnTrack
Definition: CompetingMuonClustersOnTrack.h:54
Muon::MuonRecoValidationTool::MuonRecoValidationTool
MuonRecoValidationTool(const std::string &, const std::string &, const IInterface *)
default AlgTool constructor
Definition: MuonRecoValidationTool.cxx:35
Muon::MuonRecoValidationTool::m_edmHelperSvc
ServiceHandle< IMuonEDMHelperSvc > m_edmHelperSvc
Definition: MuonRecoValidationTool.h:104
Muon::MuonValidationHitBlock::residuals
MuonValidationResidualBlock residuals
Definition: MuonInsideOutValidationNtuple.h:251
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
intersection
std::vector< std::string > intersection(std::vector< std::string > &v1, std::vector< std::string > &v2)
Definition: compareFlatTrees.cxx:25
Muon::MuonRecoValidationTool::clear
void clear()
clear ntuples
Definition: MuonRecoValidationTool.cxx:90
Trk::combinedTrack
void combinedTrack(long int ICH, double *pv0, double *covi, double BMAG, double *par, double *covo)
Definition: XYZtrp.cxx:113
Muon::MuonSegment::hasFittedT0
bool hasFittedT0() const
returns whether the segment has a fitted t0
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonSegment/MuonSegment/MuonSegment.h:212
PrepRawData.h
Muon::IMuonSegmentHitSummaryTool::HitCounts::netaTrigHitLayers
uint8_t netaTrigHitLayers
Definition: IMuonSegmentHitSummaryTool.h:52
Muon::MuonInsideOutValidationNtuple::houghBlock
MuonValidationHoughBlock houghBlock
Definition: MuonInsideOutValidationNtuple.h:288
Muon::MuonValidationSegmentBlock::xresiduals
MuonValidationResidualBlock xresiduals
Definition: MuonInsideOutValidationNtuple.h:223
Muon::MuonValidationSegmentBlock::t0
std::vector< float > * t0
Definition: MuonInsideOutValidationNtuple.h:216
Muon::MuonRecoValidationTool::m_trackParticleIndexLookup
std::map< const Trk::TrackParameters *, unsigned int > m_trackParticleIndexLookup
Definition: MuonRecoValidationTool.h:116
Muon::MuonRecoValidationTool::addTimeMeasurements
bool addTimeMeasurements(const xAOD::TrackParticle &indetTrackParticle, const MuGirlNS::StauHits &stauHits) const override
add StauHits to ntuple
Definition: MuonRecoValidationTool.cxx:177
Track.h
Muon::IMuonSegmentHitSummaryTool::HitCounts::nmdtHits
uint8_t nmdtHits() const
Returns the number of hits in both MDT layers.
Definition: IMuonSegmentHitSummaryTool.h:60
Muon::MuonValidationSegmentBlock::t0Error
std::vector< float > * t0Error
Definition: MuonInsideOutValidationNtuple.h:217
Muon::MuonRecoValidationTool::initialize
virtual StatusCode initialize() override
initialize method, method taken from bass-class AlgTool
Definition: MuonRecoValidationTool.cxx:56
Muon::MuonValidationHoughBlock::residuals
MuonValidationResidualBlock residuals
Definition: MuonInsideOutValidationNtuple.h:241
MuonCombined::MuonSegmentInfo::pullY
double pullY
pull on residual in bending plane
Definition: MuonSegmentInfo.h:68
MuonHough::MuonLayerHough::Maximum::binposmin
int binposmin
Definition: MuonLayerHough.h:68
MuonHough::MuonLayerHough::Maximum
struct representing the maximum in the hough space
Definition: MuonLayerHough.h:56
RpcClusterOnTrack.h
MuonHough::RegionDescriptor::sector
int sector
Definition: MuonLayerHough.h:40
Muon::IMuonSegmentHitSummaryTool::HitCounts::nmmHits
uint8_t nmmHits() const
Returns the number of hits in the micromegas.
Definition: IMuonSegmentHitSummaryTool.h:62
Muon::MuonValidationHoughBlock::maximum
std::vector< float > * maximum
Definition: MuonInsideOutValidationNtuple.h:237
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
MuonHough::MuonLayerHough::Maximum::max
float max
Definition: MuonLayerHough.h:59
Muon::MuonRecoValidationTool::m_candidateCounter
std::atomic< unsigned int > m_candidateCounter
Definition: MuonRecoValidationTool.h:121
MuonGM::RpcReadoutElement::distanceToPhiReadout
double distanceToPhiReadout(const Amg::Vector3D &P) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/RpcReadoutElement.cxx:223
Muon::MuonValidationResidualBlock::fill
void fill(const Trk::MeasurementBase &hit, const MuonSystemExtension::Intersection &intersection, Trk::ParamDefs par)
Definition: MuonInsideOutValidationNtuple.h:136
Muon::RpcPrepData
Class to represent RPC measurements.
Definition: RpcPrepData.h:35
Muon::RpcPrepData::detectorElement
virtual const MuonGM::RpcReadoutElement * detectorElement() const override final
Returns the detector element corresponding to this PRD.
Definition: RpcPrepData.h:202
Muon::MuonValidationTimeBlock::id
MuonValidationIdBlock id
Definition: MuonInsideOutValidationNtuple.h:102
Muon::MuonInsideOutValidationNtuple::trackParticleBlock
MuonValidationTrackParticleBlock trackParticleBlock
Definition: MuonInsideOutValidationNtuple.h:286
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
beamspotman.n
n
Definition: beamspotman.py:731
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
Muon::MuonValidationCandidateBlock::track
MuonValidationTrackBlock track
Definition: MuonInsideOutValidationNtuple.h:266
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
Muon::MuonSystemExtension
Tracking class to hold the extrapolation from a particle from the calo entry to the end of muon syste...
Definition: MuonSystemExtension.h:18
MuonHough::RegionDescriptor::chIndex
Muon::MuonStationIndex::ChIndex chIndex
Definition: MuonLayerHough.h:42
Muon::MuonValidationTrackParticleBlock::eta
std::vector< float > * eta
Definition: MuonInsideOutValidationNtuple.h:197
MuonCombined::MuonSegmentInfo::quality
int quality
hit count summary
Definition: MuonSegmentInfo.h:116
Muon::MuonValidationSegmentBlock::truth
MuonValidationTruthBlock truth
Definition: MuonInsideOutValidationNtuple.h:222
Muon::MuonValidationSegmentBlock::yresiduals
MuonValidationResidualBlock yresiduals
Definition: MuonInsideOutValidationNtuple.h:224
sign
int sign(int a)
Definition: TRT_StrawNeighbourSvc.h:127
Muon::MuonRecoValidationTool::extract
void extract(const MuonSegment &segment, std::set< Identifier > &ids, std::vector< const MuonClusterOnTrack * > &clusters) const
Definition: MuonRecoValidationTool.cxx:462
MuonCombined::MuonSegmentInfo::segErrorX
double segErrorX
error from segment on residual in non-bending plane
Definition: MuonSegmentInfo.h:53
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Muon::MuonValidationTrackBlock::fill
void fill(int trkid_)
Definition: MuonInsideOutValidationNtuple.h:91
Muon::MuonValidationSegmentBlock::angleYZ
MuonValidationResidualBlock angleYZ
Definition: MuonInsideOutValidationNtuple.h:226
Muon::MuonValidationSegmentBlock::t0TrigError
std::vector< float > * t0TrigError
Definition: MuonInsideOutValidationNtuple.h:219
MuonHough::MuonLayerHough::Maximum::hough
const MuonLayerHough * hough
Definition: MuonLayerHough.h:75
Trk::muon
@ muon
Definition: ParticleHypothesis.h:28
MuonCombined::MuonSegmentInfo::exErrorY
double exErrorY
error from extrapolation on residual in bending plane
Definition: MuonSegmentInfo.h:62
Muon::MuonRecoValidationTool::handle
virtual void handle(const Incident &inc) override
incident service handle for EndEvent
Definition: MuonRecoValidationTool.cxx:97
Muon::IMuonHitTimingTool::TimingResult
simple struct holding the result of the tool
Definition: IMuonHitTimingTool.h:39
Muon::MuonValidationSegmentBlock::z
std::vector< float > * z
Definition: MuonInsideOutValidationNtuple.h:215
Trk::PrepRawData
Definition: PrepRawData.h:62
Muon::MuonRecoValidationTool::addMuonCandidate
bool addMuonCandidate(const xAOD::TrackParticle &indetTrackParticle, const MuonCandidate *candidate, Trk::Track *combinedTrack, int ntimes, float beta, float chi2ndof, int stage) const override
add a new muon candidate
Definition: MuonRecoValidationTool.cxx:486
Trk::MeasurementBase
Definition: MeasurementBase.h:58
Muon::RpcClusterOnTrack::prepRawData
virtual const RpcPrepData * prepRawData() const override final
Returns the RpcPrepData - is a TRT_DriftCircle in this scope.
Definition: RpcClusterOnTrack.h:127
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
Muon::MuonValidationCandidateBlock::fill
void fill(int ntimes_, float beta_, float chi2ndof_, int nseg_, int nprec_, int ntrigPhi_, int ntrigEta_, int stage_)
Definition: MuonInsideOutValidationNtuple.h:268
xAOD::TrackParticle_v1::qOverP
float qOverP() const
Returns the parameter.
Muon::MuonRecoValidationTool::m_incidentSvc
ServiceHandle< IIncidentSvc > m_incidentSvc
Definition: MuonRecoValidationTool.h:112
python.subdetectors.mmg.ids
ids
Definition: mmg.py:8
MagicNumbers.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
Muon::MuonRecoValidationTool::add
bool add(const MuonSystemExtension::Intersection &intersection, const MuonSegment &segment, int stage) const override
add a new segment
Definition: MuonRecoValidationTool.cxx:319
MuonGM::RpcReadoutElement::stripPos
Amg::Vector3D stripPos(const Identifier &id) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/RpcReadoutElement.cxx:177
Trk::PrepRawData::localPosition
const Amg::Vector2D & localPosition() const
return the local position reference
Muon::MuonRecoValidationTool::m_hitTimingTool
ToolHandle< IMuonHitTimingTool > m_hitTimingTool
Definition: MuonRecoValidationTool.h:111
MuonHough::MuonLayerHough::Maximum::pos
float pos
Definition: MuonLayerHough.h:60
Muon::RpcClusterOnTrack::time
float time() const
Return the time (ns)
Definition: RpcClusterOnTrack.h:159
Muon::IMuonSegmentHitSummaryTool::HitCounts::nphiTrigHitLayers
uint8_t nphiTrigHitLayers
Number of eta stereo hits.
Definition: IMuonSegmentHitSummaryTool.h:51
MuonCombined::MuonSegmentInfo::resY
double resY
residual track - segment in Local coordinate in bending plane
Definition: MuonSegmentInfo.h:59
MuonBetaCalculationUtils.h
Muon::CompetingMuonClustersOnTrack::containedROTs
const std::vector< const MuonClusterOnTrack * > & containedROTs() const
returns the vector of SCT_ClusterOnTrack objects .
Definition: CompetingMuonClustersOnTrack.h:184
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Muon::MuonRecoValidationTool::m_tree
TTree * m_tree
Definition: MuonRecoValidationTool.h:119
MuonCombined::MuonSegmentInfo::dangleYZ
double dangleYZ
angular residual in the Local coordinate bending plane
Definition: MuonSegmentInfo.h:89
Muon::MuonValidationSegmentBlock::ntrigPhiHits
std::vector< int > * ntrigPhiHits
Definition: MuonInsideOutValidationNtuple.h:213
MuonHough::MuonLayerHough::Maximum::hits
HitVec hits
Definition: MuonLayerHough.h:73
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
Muon::MuonValidationSegmentBlock::nmdtHits
std::vector< int > * nmdtHits
Definition: MuonInsideOutValidationNtuple.h:211
Muon::MuonInsideOutValidationNtuple::hitBlock
MuonValidationHitBlock hitBlock
Definition: MuonInsideOutValidationNtuple.h:289
Muon::IMuonSegmentHitSummaryTool::HitCounts
Definition: IMuonSegmentHitSummaryTool.h:37
MuonCombined::MuonSegmentInfo::segErrorY
double segErrorY
error from segment on residual in bending plane
Definition: MuonSegmentInfo.h:65
Muon::MuonValidationHitBlock::truth
MuonValidationTruthBlock truth
Definition: MuonInsideOutValidationNtuple.h:250
Muon::IMuonSegmentHitSummaryTool::HitCounts::ncscHits
EtaPhiHitCount ncscHits
Definition: IMuonSegmentHitSummaryTool.h:45
DeMoScan.index
string index
Definition: DeMoScan.py:362
Muon::MuonRecoValidationTool::m_segmentHitSummaryTool
ToolHandle< IMuonSegmentHitSummaryTool > m_segmentHitSummaryTool
Definition: MuonRecoValidationTool.h:106
MuonCombined::MuonSegmentInfo::exErrorXZ
double exErrorXZ
error from extrapolation on angle in non-bending plane
Definition: MuonSegmentInfo.h:80
MuonCombined::MuonSegmentInfo::pullYZ
double pullYZ
pull on angle in bending plane
Definition: MuonSegmentInfo.h:98
Muon::MuonValidationSegmentBlock::t0Trig
std::vector< float > * t0Trig
Definition: MuonInsideOutValidationNtuple.h:218
Muon::MuonValidationSegmentBlock::r
std::vector< float > * r
Definition: MuonInsideOutValidationNtuple.h:214
CondAlgsOpts.found
int found
Definition: CondAlgsOpts.py:101
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
python.BackTrackingConfig.numThreads
int numThreads
Definition: BackTrackingConfig.py:61
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Muon::MuonRecoValidationTool::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: MuonRecoValidationTool.h:109
MuonCombined::MuonSegmentInfo::pullX
double pullX
pull on residual in non-bending plane
Definition: MuonSegmentInfo.h:56
Muon::MuonValidationSegmentBlock::stage
std::vector< int > * stage
Definition: MuonInsideOutValidationNtuple.h:209
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Muon::MuonValidationSegmentBlock::id
MuonValidationIdBlock id
Definition: MuonInsideOutValidationNtuple.h:220
MuonCombined::MuonSegmentInfo::pullCY
double pullCY
pull on combined local position Y and angle YZ
Definition: MuonSegmentInfo.h:104
MuonCandidate.h
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
Trk::RIO_OnTrack::identify
virtual Identifier identify() const final
return the identifier -extends MeasurementBase
Definition: RIO_OnTrack.h:155
Muon::MuonSystemExtension::layerIntersections
const std::vector< Intersection > & layerIntersections() const
access to the intersections with the layers.
Definition: MuonSystemExtension.h:62
Muon::MuonValidationTimeBlock::truth
MuonValidationTruthBlock truth
Definition: MuonInsideOutValidationNtuple.h:104
Muon::MuonRecoValidationTool::getIndex
int getIndex(const MuonSystemExtension::Intersection &intersection) const
Definition: MuonRecoValidationTool.h:93
Muon::MuonInsideOutValidationNtuple::segmentBlock
MuonValidationSegmentBlock segmentBlock
Definition: MuonInsideOutValidationNtuple.h:287
Muon::MuonValidationBlockBase::clear
void clear()
Definition: MuonInsideOutValidationNtuple.cxx:10
Muon::MuonInsideOutValidationNtuple::timeBlock
MuonValidationTimeBlock timeBlock
Definition: MuonInsideOutValidationNtuple.h:290
MuonSegment.h
Muon::MuonValidationTimeBlock::track
MuonValidationTrackBlock track
Definition: MuonInsideOutValidationNtuple.h:103
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
Muon::MuonSystemExtension::Intersection
data per intersection
Definition: MuonSystemExtension.h:21
Muon::MuonSegment::globalPosition
virtual const Amg::Vector3D & globalPosition() const override final
global position
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonSegment/MuonSegment/MuonSegment.h:157
MuonClusterOnTrack.h
MuonGM::RpcReadoutElement::distanceToEtaReadout
double distanceToEtaReadout(const Amg::Vector3D &P) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/RpcReadoutElement.cxx:278
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
Trk::SpaceTimePointBase::time
float time() const
access to the measured time
Definition: SpaceTimePointBase.h:47
MuonCombined::MuonSegmentInfo::exErrorYZ
double exErrorYZ
error from extrapolation on angle in bending plane
Definition: MuonSegmentInfo.h:92
Muon::MuonRecoValidationTool::m_truthSummaryTool
ToolHandle< IMuonTruthSummaryTool > m_truthSummaryTool
Definition: MuonRecoValidationTool.h:108
Muon::MuonSegment
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonSegment/MuonSegment/MuonSegment.h:45
ConstAccessor.h
Helper class to provide constant type-safe access to aux data.
Muon::MuonRecoValidationTool::addTimeMeasurement
bool addTimeMeasurement(const MuonSystemExtension::Intersection &intersection, const Trk::MeasurementBase &meas) const override
add a new time measurement
Definition: MuonRecoValidationTool.cxx:237
AthAlgTool
Definition: AthAlgTool.h:26
RpcPrepData.h
Muon::MuonValidationSegmentBlock::angleXZ
MuonValidationResidualBlock angleXZ
Definition: MuonInsideOutValidationNtuple.h:225
MuonParameters::beta
@ beta
Definition: MuonParamDefs.h:144
Muon::MuonRecoValidationTool::getBarcode
int getBarcode(const std::set< Identifier > &ids) const
Definition: MuonRecoValidationTool.cxx:154
TruthParticle.h
MuonHough::MuonLayerHough::Maximum::binposmax
int binposmax
Definition: MuonLayerHough.h:69
Trk::loc1
@ loc1
Definition: ParamDefs.h:40
Muon::MuonValidationBlockBase::init
void init(const std::string &prefix, TTree *, bool write=true)
Definition: MuonInsideOutValidationNtuple.cxx:28
Muon::MuonValidationResidualBlock::fillResPull
void fillResPull(float res_, float pull_, int status=1)
Definition: MuonInsideOutValidationNtuple.h:164
Muon::MuonValidationHoughBlock::truth
MuonValidationTruthBlock truth
Definition: MuonInsideOutValidationNtuple.h:240
Muon::MuonRecoValidationTool::m_matchingTool
ToolHandle< IMuTagMatchingTool > m_matchingTool
Definition: MuonRecoValidationTool.h:110
MuonCombined::MuonSegmentInfo::resX
double resX
residual track - segment in Local coordinate non-bending plane
Definition: MuonSegmentInfo.h:47
Amg::distance
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Definition: GeoPrimitivesHelpers.h:54
Muon::MuonBetaCalculationUtils
Definition: MuonBetaCalculationUtils.h:12
MuGirlNS::StauHits
std::vector< StauHit > StauHits
Definition: CandidateSummary.h:67
Muon::MuonCandidate::layerIntersections
std::vector< MuonLayerIntersection > layerIntersections
MuonLayerIntersections.
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonLayerEvent/MuonLayerEvent/MuonCandidate.h:20
Muon::IMuonSegmentHitSummaryTool::EtaPhiHitCount::netaHits
uint8_t netaHits
Definition: IMuonSegmentHitSummaryTool.h:21
Muon::MuonBetaCalculationUtils::calculateTof
float calculateTof(float beta, float dist)
Definition: MuonBetaCalculationUtils.h:37
Muon::MuonClusterOnTrack
Base class for Muon cluster RIO_OnTracks.
Definition: MuonClusterOnTrack.h:34
xAOD::TrackParticle_v1::phi
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)
MuonRecoValidationTool.h
NSWL1::PadTriggerAdapter::segment
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)
Definition: PadTriggerAdapter.cxx:5
Muon::MuonValidationHitBlock::track
MuonValidationTrackBlock track
Definition: MuonInsideOutValidationNtuple.h:249
RpcReadoutElement.h
SCT_Monitoring::summary
@ summary
Definition: SCT_MonitoringNumbers.h:65