ATLAS Offline Software
MuonRecoValidationTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 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  using namespace MuonStationIndex;
35 
36  MuonRecoValidationTool::MuonRecoValidationTool(const std::string& t, const std::string& n, const IInterface* p) :
37  AthAlgTool(t, n, p),
38  m_segmentHitSummaryTool("Muon::MuonSegmentHitSummaryTool/MuonSegmentHitSummaryTool"),
39  m_hitSummaryTool("Muon::MuonHitSummaryTool/MuonHitSummaryTool"),
40  m_truthSummaryTool("Muon::MuonTruthSummaryTool/MuonTruthSummaryTool"),
41  m_extrapolator("Trk::Extrapolation/AtlasExtrapolator"),
42  m_matchingTool("MuTagMatchingTool/MuTagMatchingTool"),
43  m_hitTimingTool("Muon::MuonHitTimingTool/MuonHitTimingTool"),
44  m_incidentSvc("IncidentSvc", n),
45  m_candidateCounter(0) {
46  declareInterface<IMuonRecoValidationTool>(this);
47  declareProperty("MuonSegmentHitSummaryTool", m_segmentHitSummaryTool);
48  declareProperty("MuonHitSummaryTool", m_hitSummaryTool);
49  declareProperty("MuonTruthSummaryTool", m_truthSummaryTool);
50  declareProperty("Extrapolator", m_extrapolator);
51  declareProperty("MatchTool", m_matchingTool);
52  declareProperty("MuonHitTimingTool", m_hitTimingTool);
53  declareProperty("IncidentSvc", m_incidentSvc);
54  declareProperty("isMC", m_isMC = false);
55  }
56 
58 
60  ATH_MSG_ERROR("This tool cannot be used in multi-threaded mode");
61  return StatusCode::FAILURE;
62  }
63 
64  ATH_CHECK(m_idHelperSvc.retrieve());
65  ATH_CHECK(m_edmHelperSvc.retrieve());
67  ATH_CHECK(m_hitSummaryTool.retrieve());
68  if (m_isMC) {
69  ATH_CHECK(m_truthSummaryTool.retrieve());
70  } else {
71  m_truthSummaryTool.disable();
72  }
73  ATH_CHECK(m_extrapolator.retrieve());
74  ATH_CHECK(m_matchingTool.retrieve());
75  ATH_CHECK(m_hitTimingTool.retrieve());
76  SmartIF<ITHistSvc> thistSvc{service("THistSvc")};
77  ATH_CHECK(thistSvc.isValid());
78 
79  m_tree = new TTree("data", "RecoValidation");
80  ATH_CHECK(thistSvc->regTree("/MuonRecoVal/data", m_tree));
81 
82  m_ntuple.init("", m_tree);
83 
84  // call handle in case of EndEvent
85  ATH_CHECK(m_incidentSvc.retrieve());
86  m_incidentSvc->addListener(this, IncidentType::EndEvent);
87 
88  return StatusCode::SUCCESS;
89  }
90 
93  m_ntuple.clear();
94  m_trackParticles.clear();
96  }
97 
98  void MuonRecoValidationTool::handle(const Incident& inc) {
99  // Only clear cache for EndEvent incident
100  if (inc.type() == IncidentType::EndEvent) {
101  ATH_MSG_DEBUG(" clearing cache at end of event ");
102  m_tree->Fill();
103  clear();
104  }
105  }
106 
108  const MuonSystemExtension& muonSystemExtension) const {
109  m_ntuple.trackParticleBlock.pt->push_back(indetTrackParticle.pt());
110  m_ntuple.trackParticleBlock.p->push_back(1. / indetTrackParticle.qOverP());
111  m_ntuple.trackParticleBlock.eta->push_back(indetTrackParticle.eta());
112  m_ntuple.trackParticleBlock.phi->push_back(indetTrackParticle.phi());
113  int pdg = 0;
115  float beta = 1.;
116  // set truth
117  typedef ElementLink<xAOD::TruthParticleContainer> ElementTruthLink_t;
119  truthParticleLinkAcc("truthParticleLink");
120  if (truthParticleLinkAcc.isAvailable(indetTrackParticle)) {
121  const ElementTruthLink_t link = truthParticleLinkAcc(indetTrackParticle);
122  if (link.isValid()) {
123  pdg = (*link)->pdgId();
124  uniqueID = HepMC::uniqueID(*link);
125  beta = (*link)->p4().Beta();
126  }
127  }
129 
130  // try to find the pointer of the indetTrackParticle
131  bool found = false;
132  for (unsigned int index = 0; index < m_trackParticles.size(); ++index) {
133  if (&indetTrackParticle == m_trackParticles[index]) {
134  found = true;
135  break;
136  }
137  }
138  if (!found) {
139  // set index to the last element
140  unsigned int index = m_trackParticles.size();
141  m_trackParticles.push_back(&indetTrackParticle);
142 
143  const std::vector<Muon::MuonSystemExtension::Intersection>& layerIntersections = muonSystemExtension.layerIntersections();
144  ATH_MSG_DEBUG("Adding ID track: pt " << indetTrackParticle.pt() << " eta " << indetTrackParticle.eta() << " phi "
145  << indetTrackParticle.phi() << " layers " << layerIntersections.size());
146 
147  for (std::vector<Muon::MuonSystemExtension::Intersection>::const_iterator it = layerIntersections.begin();
148  it != layerIntersections.end(); ++it) {
149  m_trackParticleIndexLookup[it->trackParameters.get()] = index;
150  }
151  }
152  return true;
153  }
154 
155  int MuonRecoValidationTool::getUniqueID(const std::set<Identifier>& ids) const {
156  if (!m_isMC) return HepMC::INVALID_PARTICLE_ID;
157 
158  // count how often a barcode occurs
159  std::map<int, int> counters;
160  for (std::set<Identifier>::const_iterator it = ids.begin(); it != ids.end(); ++it) {
161  const int uniqueID = m_truthSummaryTool->getUniqueID(*it);
162  if (uniqueID != HepMC::INVALID_PARTICLE_ID) ++counters[uniqueID];
163  }
164 
165  // pick the most frequent
167  int max = -1;
168  for (std::map<int, int>::iterator it = counters.begin(); it != counters.end(); ++it) {
169  if (it->second > max) {
170  barcode = it->first; // FIXME barcode-based
171  max = it->second;
172  }
173  }
174 
175  return barcode;
176  }
177 
179  const MuGirlNS::StauHits& stauHits) const {
180  Muon::MuonBetaCalculationUtils muonBetaCalculationUtils;
181 
182  auto pos = std::find(m_trackParticles.begin(), m_trackParticles.end(), &indetTrackParticle);
183  if (pos == m_trackParticles.end()) {
184  ATH_MSG_WARNING("addTimeMeasurement: indetTrackParticle not found ");
185  return false;
186  }
187  int index = std::distance(m_trackParticles.begin(), pos);
188 
189  for (const auto& stauHit : stauHits) {
190  Identifier id = stauHit.id;
191  int type = toInt(m_idHelperSvc->technologyIndex(id)) + 10;
192  double r = std::hypot(stauHit.x, stauHit.y);
193  double tof = muonBetaCalculationUtils.calculateTof(1, std::hypot(r, stauHit.z));
194  // track index
196 
197  // identifier info
198  m_ntuple.timeBlock.id.fill(m_idHelperSvc->sector(id), toInt(m_idHelperSvc->chamberIndex(id)));
199 
200  // position + time information
201  m_ntuple.timeBlock.fill(type, m_idHelperSvc->gasGapId(id).get_identifier32().get_compact(), r, stauHit.z, stauHit.mToF - tof,
202  stauHit.error, stauHit.propagationTime, stauHit.e, tof, 0., stauHit.shift, 1000 * m_candidateCounter);
203 
204  // uniqueID + pdg
205  int uniqueID = HepMC::INVALID_PARTICLE_ID, pdg = 0;
206  if (m_isMC) {
207  uniqueID = m_truthSummaryTool->getUniqueID(id);
209  }
211  }
213  return true;
214  }
215 
217  const Amg::Vector3D& gpos, float time, float errorTime) const {
218  // track index
220 
221  // identifier info
222  m_ntuple.timeBlock.id.fill(m_idHelperSvc->sector(id), toInt(m_idHelperSvc->chamberIndex(id)));
223 
224  // position information
225  m_ntuple.timeBlock.fill(2, m_idHelperSvc->gasGapId(id).get_identifier32().get_compact(), gpos.perp(), gpos.z(), time, errorTime);
226 
227  // uniqueID + pdg
228  int uniqueID = HepMC::INVALID_PARTICLE_ID, pdg = 0;
229  if (m_isMC) {
230  uniqueID = m_truthSummaryTool->getUniqueID(id);
232  }
234 
235  return true;
236  }
237 
239  const Trk::MeasurementBase& meas) const {
240  float segmentTimeCorrection = 0.;
241 
242  const MuonSegment* seg = dynamic_cast<const MuonSegment*>(&meas);
243  if (seg && seg->hasFittedT0()) {
245 
246  Identifier id = m_edmHelperSvc->chamberId(*seg);
247  m_ntuple.timeBlock.id.fill(m_idHelperSvc->sector(id), toInt(m_idHelperSvc->chamberIndex(id)));
248 
249  // position information
250  m_ntuple.timeBlock.fill(1, m_idHelperSvc->chamberId(id).get_identifier32().get_compact(), seg->globalPosition().perp(),
251  seg->globalPosition().z(), seg->time() - segmentTimeCorrection, seg->errorTime());
252 
253  // uniqueID + pdg
254  std::set<Identifier> ids;
255  std::vector<const MuonClusterOnTrack*> clusters;
256  extract(*seg, ids, clusters);
257  int uniqueID = getUniqueID(ids);
258  int pdg = 0;
261 
262  return true;
263  }
264 
265  const RpcClusterOnTrack* rpc = dynamic_cast<const RpcClusterOnTrack*>(&meas);
266  if (rpc) {
268 
269  Identifier id = rpc->identify();
270  m_ntuple.timeBlock.id.fill(m_idHelperSvc->sector(id), toInt(m_idHelperSvc->chamberIndex(id)));
271 
272  // uniqueID + pdg
273  int uniqueID = HepMC::INVALID_PARTICLE_ID, pdg = 0;
274  if (m_isMC) {
275  uniqueID = m_truthSummaryTool->getUniqueID(id);
277  }
279 
280  bool measphi = m_idHelperSvc->measuresPhi(id);
281  const Amg::Vector3D& GP = rpc->globalPosition();
282  const Muon::RpcPrepData* MClus = rpc->prepRawData();
283  const MuonGM::RpcReadoutElement* rpc_readout_element = MClus->detectorElement();
284  Amg::Vector3D posi = rpc_readout_element->stripPos(id);
285 
286  // let's correct rpc time subtracting delay due to the induced electric signal propagation along strip
287  double correct_time_along_strip = 0;
288  if (measphi == 0) {
289  correct_time_along_strip = rpc_readout_element->distanceToEtaReadout(GP) / 1000. * SIG_VEL;
290  } else {
291  correct_time_along_strip = rpc_readout_element->distanceToPhiReadout(GP) / 1000. * SIG_VEL;
292  }
293 
294  // let's evaluate the average delay due to the induced electric signal propagation along strip
295  double av_correct_time_along_strip = 0;
296  if (measphi == 0) {
297  av_correct_time_along_strip = rpc_readout_element->distanceToEtaReadout(posi) / 1000. * SIG_VEL;
298  } else {
299  av_correct_time_along_strip = rpc_readout_element->distanceToPhiReadout(posi) / 1000. * SIG_VEL;
300  }
301 
302  // let's evaluate [real TOF - nominal TOF]
303  double real_TOF_onRPCgap = GP.mag() / 1000. * C_VEL;
304  double nominal_TOF_onRPCgap = posi.mag() / 1000. * C_VEL;
305 
306  // let's evaluate the total time correction
307  double correct_time_tot = real_TOF_onRPCgap - nominal_TOF_onRPCgap + correct_time_along_strip - av_correct_time_along_strip;
308 
309  // time and position information
310  m_ntuple.timeBlock.fill(0, m_idHelperSvc->gasGapId(id).get_identifier32().get_compact(), rpc->globalPosition().perp(),
311  rpc->globalPosition().z(), rpc->time(), 2., correct_time_along_strip, av_correct_time_along_strip,
312  real_TOF_onRPCgap, nominal_TOF_onRPCgap, correct_time_tot);
313 
314  return true;
315  }
316 
317  return true;
318  }
319 
321  const EventContext& ctx = Gaudi::Hive::currentContext();
322  m_ntuple.segmentBlock.stage->push_back(stage);
323 
324  Identifier id = m_edmHelperSvc->chamberId(segment);
325  m_ntuple.segmentBlock.id.fill(m_idHelperSvc->sector(id), toInt(m_idHelperSvc->chamberIndex(id)));
326 
327  // position information
328  m_ntuple.segmentBlock.r->push_back(segment.globalPosition().perp());
329  m_ntuple.segmentBlock.z->push_back(segment.globalPosition().z());
330 
331  // timing information
332  float t0 = segment.hasFittedT0() ? segment.time() : -99999;
333  float t0Error = segment.hasFittedT0() ? segment.errorTime() : -99999;
334  m_ntuple.segmentBlock.t0->push_back(t0);
335  m_ntuple.segmentBlock.t0Error->push_back(t0Error);
336 
337  // extract clusters and ids
338  std::set<Identifier> ids;
339  std::vector<const MuonClusterOnTrack*> clusters;
341 
343  t0 = result.valid ? result.time : -99999;
344  t0Error = result.valid ? result.error : -99999;
345  m_ntuple.segmentBlock.t0Trig->push_back(t0);
346  m_ntuple.segmentBlock.t0TrigError->push_back(t0Error);
347 
348  // hit counts
350  m_ntuple.segmentBlock.nmdtHits->push_back(hitCounts.nmdtHits()+ hitCounts.nmmHits() + hitCounts.ncscHits.netaHits);
351  m_ntuple.segmentBlock.ntrigEtaHits->push_back(hitCounts.netaTrigHitLayers);
352  m_ntuple.segmentBlock.ntrigPhiHits->push_back(hitCounts.nphiTrigHitLayers);
353 
354  // uniqueID + pdg
355  int uniqueID = getUniqueID(ids);
356  int pdg = 0;
359 
361 
362  // extrapolate and create an intersection @ the segment surface.
363  std::shared_ptr<Trk::TrackParameters> exPars(
364  m_extrapolator->extrapolate(ctx, *intersection.trackParameters, segment.associatedSurface(), Trk::anyDirection, false, Trk::muon));
365  if (!exPars) {
366  ATH_MSG_VERBOSE(" extrapolation failed ");
367  m_ntuple.segmentBlock.quality->push_back(-2);
368  m_ntuple.segmentBlock.xresiduals.fill(0., 1., 0., 1., -1);
369  m_ntuple.segmentBlock.yresiduals.fill(0., 1., 0., 1., -1);
370  m_ntuple.segmentBlock.angleXZ.fill(0., 1., 0., 1., -1);
371  m_ntuple.segmentBlock.angleYZ.fill(0., 1., 0., 1., -1);
372  m_ntuple.segmentBlock.combinedYZ.fill(0., 1., 0., 1., -1);
373  return false;
374  }
375 
376  // cast to AtaPlane so we can get the segment info
377  std::shared_ptr<Trk::AtaPlane> ataPlane = std::dynamic_pointer_cast<Trk::AtaPlane>(exPars);
378  if (!ataPlane) {
379  ATH_MSG_WARNING(" dynamic_cast<> failed ");
380  m_ntuple.segmentBlock.quality->push_back(-2);
381  m_ntuple.segmentBlock.angleXZ.fill(0., 1., 0., 1., -1);
382  m_ntuple.segmentBlock.angleYZ.fill(0., 1., 0., 1., -1);
383  m_ntuple.segmentBlock.combinedYZ.fill(0., 1., 0., 1., -1);
384  return false;
385  }
386  MuonCombined::MuonSegmentInfo segmentInfo = m_matchingTool->muTagSegmentInfo(ctx, nullptr, segment, ataPlane);
387  m_ntuple.segmentBlock.quality->push_back(segmentInfo.quality);
388  m_ntuple.segmentBlock.xresiduals.fillResPull(segmentInfo.resX, segmentInfo.pullX, segmentInfo.segErrorX, segmentInfo.exErrorX, 1);
389  m_ntuple.segmentBlock.yresiduals.fillResPull(segmentInfo.resY, segmentInfo.pullY, segmentInfo.segErrorY, segmentInfo.exErrorY, 1);
390  m_ntuple.segmentBlock.angleXZ.fillResPull(segmentInfo.dangleXZ, segmentInfo.pullXZ, segmentInfo.segErrorXZ, segmentInfo.exErrorXZ,
391  1);
392  m_ntuple.segmentBlock.angleYZ.fillResPull(segmentInfo.dangleYZ, segmentInfo.pullYZ, segmentInfo.segErrorYZ, segmentInfo.exErrorYZ,
393  1);
394  m_ntuple.segmentBlock.combinedYZ.fillResPull(segmentInfo.resCY, segmentInfo.pullCY, 1);
395 
396  ATH_MSG_DEBUG(" Adding Segment to ntuple: stage " << stage);
397 
398  return true;
399  }
400 
402  const MuonHough::MuonLayerHough::Maximum& maximum) const {
403  m_ntuple.houghBlock.maximum->push_back(maximum.max);
404 
406 
407  int sector = -1;
408  int chIndex = -1;
409  float maxwidth = (maximum.binposmax - maximum.binposmin);
410  if (maximum.hough) {
411  maxwidth *= maximum.hough->m_binsize;
412  sector = maximum.hough->m_descriptor.sector;
413  chIndex = toInt(maximum.hough->m_descriptor.chIndex);
414  }
415  m_ntuple.houghBlock.id.fill(sector, chIndex);
417 
418  // get truth from hits
419  std::set<Identifier> ids;
420 
421  MuonHough::HitVec::const_iterator hit = maximum.hits.begin();
422  MuonHough::HitVec::const_iterator hit_end = maximum.hits.end();
423  for (; hit != hit_end; ++hit) {
424  // treat the case that the hit is a composite TGC hit
425  if ((*hit)->tgc) {
426  for (const auto& prd : (*hit)->tgc->etaCluster) ids.insert(prd->identify());
427  } else if ((*hit)->prd) {
428  ids.insert((*hit)->prd->identify());
429  }
430  }
431  int uniqueID = HepMC::INVALID_PARTICLE_ID, pdg = 0;
432  if (m_isMC) {
435  }
437 
438  ATH_MSG_DEBUG(" Adding Hough maximum to ntuple ");
439 
440  return true;
441  }
442 
444  float expos_err) const {
445  Identifier id = prd.identify();
446  m_ntuple.hitBlock.id.fill(m_idHelperSvc->sector(id), toInt(m_idHelperSvc->chamberIndex(id)));
448 
449  int uniqueID = HepMC::INVALID_PARTICLE_ID, pdg = 0;
450  if (m_isMC) {
451  uniqueID = m_truthSummaryTool->getUniqueID(id);
453  }
455 
456  float sign = expos < 0 ? -1. : 1.;
458  expos_err);
459 
460  return true;
461  }
462 
463  void MuonRecoValidationTool::extract(const MuonSegment& segment, std::set<Identifier>& ids,
464  std::vector<const MuonClusterOnTrack*>& clusters) const {
465  // loop over hits and extract clusters and ids
466  std::vector<const Trk::MeasurementBase*>::const_iterator mit = segment.containedMeasurements().begin();
467  std::vector<const Trk::MeasurementBase*>::const_iterator mit_end = segment.containedMeasurements().end();
468  for (; mit != mit_end; ++mit) {
469  // get Identifier and remove MDT hits
470  Identifier id = m_edmHelperSvc->getIdentifier(**mit);
471  if (!id.is_valid()) continue;
472  ids.insert(id);
473  if (!m_idHelperSvc->isTrigger(id)) continue;
474 
475  // cast to MuonClusterOnTrack
476  const MuonClusterOnTrack* clus = dynamic_cast<const MuonClusterOnTrack*>(*mit);
477  if (clus)
478  clusters.push_back(clus);
479  else {
480  const CompetingMuonClustersOnTrack* crot = dynamic_cast<const CompetingMuonClustersOnTrack*>(*mit);
481  if (!crot || crot->containedROTs().empty()) continue;
482  clusters.insert(clusters.end(), crot->containedROTs().begin(), crot->containedROTs().end());
483  }
484  }
485  }
486 
487  bool MuonRecoValidationTool::addMuonCandidate(const xAOD::TrackParticle& indetTrackParticle, const MuonCandidate* candidate,
488  Trk::Track* combinedTrack, int ntimes, float beta, float chi2ndof, int stage) const {
489  auto pos = std::find(m_trackParticles.begin(), m_trackParticles.end(), &indetTrackParticle);
490  if (pos == m_trackParticles.end()) {
491  ATH_MSG_WARNING("addMuonCandidate: indetTrackParticle not found ");
492  return false;
493  }
494 
496  int nprec = 0;
497  int ntrigPhi = 0;
498  int ntrigEta = 0;
499  int nseg = candidate ? candidate->layerIntersections.size() : 0;
500  const Trk::Track* track = combinedTrack;
501  if (combinedTrack) {
503  nprec = summary.nprecisionLayers;
504  ntrigPhi = summary.nphiLayers;
505  ntrigEta = summary.ntrigEtaLayers;
506  }
507  m_ntuple.candidateBlock.fill(ntimes, beta, chi2ndof, nseg, nprec, ntrigPhi, ntrigEta, stage);
508  return true;
509  }
510 
511 } // 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:74
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:674
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.FPGATrackSimAnalysisConfig.stage
stage
Definition: FPGATrackSimAnalysisConfig.py:898
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:37
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:176
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
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
xAOD::TrackParticle_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: TrackParticle_v1.cxx:78
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:187
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
HepMC::INVALID_PARTICLE_ID
constexpr int INVALID_PARTICLE_ID
Definition: MagicNumbers.h:57
skel.it
it
Definition: skel.GENtoEVGEN.py:407
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:55
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:55
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:107
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:36
Muon::MuonRecoValidationTool::m_edmHelperSvc
ServiceHandle< IMuonEDMHelperSvc > m_edmHelperSvc
Definition: MuonRecoValidationTool.h:104
Muon::MuonValidationHitBlock::residuals
MuonValidationResidualBlock residuals
Definition: MuonInsideOutValidationNtuple.h:251
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition: TrackSystemController.h:45
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:91
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
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
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:178
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:57
Muon::MuonValidationHoughBlock::residuals
MuonValidationResidualBlock residuals
Definition: MuonInsideOutValidationNtuple.h:241
MuonCombined::MuonSegmentInfo::pullY
double pullY
pull on residual in bending plane
Definition: MuonSegmentInfo.h:68
Muon::MuonRecoValidationTool::getUniqueID
int getUniqueID(const std::set< Identifier > &ids) const
Definition: MuonRecoValidationTool.cxx:155
MuonHough::MuonLayerHough::Maximum::binposmin
int binposmin
Definition: MuonLayerHough.h:76
MuonHough::MuonLayerHough::Maximum
struct representing the maximum in the hough space
Definition: MuonLayerHough.h:64
RpcClusterOnTrack.h
MuonHough::RegionDescriptor::sector
int sector
Definition: MuonLayerHough.h:45
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
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:67
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:201
Muon::MuonValidationTimeBlock::id
MuonValidationIdBlock id
Definition: MuonInsideOutValidationNtuple.h:102
Muon::MuonInsideOutValidationNtuple::trackParticleBlock
MuonValidationTrackParticleBlock trackParticleBlock
Definition: MuonInsideOutValidationNtuple.h:286
Muon::MuonStationIndex::chIndex
ChIndex chIndex(const std::string &index)
convert ChIndex name string to enum
Definition: MuonStationIndex.cxx:11
beamspotman.n
n
Definition: beamspotman.py:729
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
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
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
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
HepMC::uniqueID
int uniqueID(const T &p)
Definition: MagicNumbers.h:116
Muon::MuonValidationSegmentBlock::yresiduals
MuonValidationResidualBlock yresiduals
Definition: MuonInsideOutValidationNtuple.h:224
sign
int sign(int a)
Definition: TRT_StrawNeighbourSvc.h:107
Muon::MuonRecoValidationTool::extract
void extract(const MuonSegment &segment, std::set< Identifier > &ids, std::vector< const MuonClusterOnTrack * > &clusters) const
Definition: MuonRecoValidationTool.cxx:463
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:83
Trk::muon
@ muon
Definition: ParticleHypothesis.h:31
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:98
Muon::IMuonHitTimingTool::TimingResult
simple struct holding the result of the tool
Definition: IMuonHitTimingTool.h:38
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:487
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
MuonR4::SegmentFit::toInt
constexpr int toInt(const ParamDefs p)
Definition: MuonHoughDefs.h:42
Muon::MuonRecoValidationTool::add
bool add(const MuonSystemExtension::Intersection &intersection, const MuonSegment &segment, int stage) const override
add a new segment
Definition: MuonRecoValidationTool.cxx:320
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:68
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
checkTriggerxAOD.found
found
Definition: checkTriggerxAOD.py:328
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:81
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:16
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
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
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
Trk::RIO_OnTrack::identify
Identifier identify() const
return the identifier -extends MeasurementBase
Definition: RIO_OnTrack.h:152
MuonCandidate.h
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
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:513
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:238
AthAlgTool
Definition: AthAlgTool.h:26
RpcPrepData.h
Muon::MuonValidationSegmentBlock::angleXZ
MuonValidationResidualBlock angleXZ
Definition: MuonInsideOutValidationNtuple.h:225
MuonParameters::beta
@ beta
Definition: MuonParamDefs.h:144
TruthParticle.h
MuonHough::MuonLayerHough::Maximum::binposmax
int binposmax
Definition: MuonLayerHough.h:77
Trk::loc1
@ loc1
Definition: ParamDefs.h:34
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
MuonHough::RegionDescriptor::chIndex
ChIdx chIndex
Definition: MuonLayerHough.h:47
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:81
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
Identifier
Definition: IdentifierFieldParser.cxx:14
SCT_Monitoring::summary
@ summary
Definition: SCT_MonitoringNumbers.h:65