ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Trk::TrackSummaryTool Class Referencefinal

#include <TrackSummaryTool.h>

Inheritance diagram for Trk::TrackSummaryTool:
Collaboration diagram for Trk::TrackSummaryTool:

Public Member Functions

 TrackSummaryTool (const std::string &, const std::string &, const IInterface *)
 
virtual ~TrackSummaryTool ()
 
virtual StatusCode initialize () override
 
virtual void computeAndReplaceTrackSummary (const EventContext &ctx, Track &track, bool suppress_hole_search=false) const override final
 
virtual void updateTrack (const EventContext &ctx, Track &track) const override final
 Same behavious as IExtendedTrackSummaryTool:computeAndReplaceTrackSummary but without the need to pass Does hole search. More...
 
virtual std::unique_ptr< Trk::TrackSummarysummary (const EventContext &ctx, const Track &track) const override final
 
virtual std::unique_ptr< Trk::TrackSummarysummaryNoHoleSearch (const EventContext &ctx, const Track &track) const override final
 
virtual void updateTrackSummary (const EventContext &ctx, Track &track) const override final
 method which can be used to update the summary of a track it, without doing hole search. More...
 
virtual void updateTrackSummary (const EventContext &ctx, Track &track, bool suppress_hole_search=false) const override final
 method which can be used to update the summary of a track If a summary is present it is modified in place. More...
 
virtual void updateAdditionalInfo (Track &track) const override
 method to update additional information (PID, dEdX), this is optimised for track collection merging. More...
 
virtual void computeAndReplaceTrackSummary (const EventContext &ctx, Track &track, bool suppress_hole_search=false) const=0
 Compute track summary and replace the summary in given track. More...
 
void computeAndReplaceTrackSummary (Track &track, bool suppress_hole_search=false) const
 Compute track summary and replace the summary in given track. More...
 
virtual std::unique_ptr< Trk::TrackSummarysummary (const EventContext &ctx, const Track &track) const=0
 
std::unique_ptr< Trk::TrackSummarysummary (const Track &track) const
 
virtual std::unique_ptr< Trk::TrackSummarysummary (const EventContext &ctx, const Track &track) const =0
 
std::unique_ptr< Trk::TrackSummarysummary (const Track &track) const
 
virtual std::unique_ptr< Trk::TrackSummarysummaryNoHoleSearch (const EventContext &ctx, const Track &track) const=0
 
std::unique_ptr< Trk::TrackSummarysummaryNoHoleSearch (const Track &track) const
 
virtual std::unique_ptr< Trk::TrackSummarysummaryNoHoleSearch (const EventContext &ctx, const Track &track) const =0
 
std::unique_ptr< Trk::TrackSummarysummaryNoHoleSearch (const Track &track) const
 

Private Member Functions

void fillSummary (const EventContext &ctx, Trk::TrackSummary &ts, const Trk::Track &track, bool doHolesInDet, bool doHolesMuon) const
 
void UpdateSummary (const EventContext &ctx, Track &track, bool suppress_hole_search) const
 
std::unique_ptr< Trk::TrackSummarycreateSummary (const EventContext &ctx, const Track &track, bool doHolesInDet, bool doHolesMuon) const
 
const Trk::IExtendedTrackSummaryHelperToolgetTool (const Identifier &id) const
 Return the correct tool, matching the passed Identifier. More...
 
void processTrackStates (const EventContext &ctx, const Track &track, const Trk::TrackStates *tsos, std::vector< int > &information, std::bitset< numberOfDetectorTypes > &hitPattern, bool doHolesInDet, bool doHolesMuon) const
 loops over TrackStatesOnSurface and uses this to produce the summary information Fills 'information', 'eProbability', and 'hitPattern' More...
 
void processMeasurement (const EventContext &ctx, const Track &track, const Trk::MeasurementBase *meas, const Trk::TrackStateOnSurface *tsos, std::vector< int > &information, std::bitset< numberOfDetectorTypes > &hitPattern) const
 
void searchHolesStepWise (const Trk::Track &track, std::vector< int > &information, bool doHolesInDet, bool doHolesMuon) const
 Extrapolation is performed from one hit to the next, it is checked if surfaces in between the extrapolation are left out. More...
 

Private Attributes

ToolHandle< IExtendedTrackSummaryHelperToolm_idTool { this, "InDetSummaryHelperTool", "", "" }
 tool to decipher ID RoTs More...
 
ToolHandle< IExtendedTrackSummaryHelperToolm_muonTool { this, "MuonSummaryHelperTool", "", "" }
 tool to decipher muon RoTs More...
 
Gaudi::Property< bool > m_doHolesMuon { this, "doHolesMuon", false, "" }
 controls whether holes on track in MS are produced Turning this on will (slightly) increase processing time. More...
 
Gaudi::Property< bool > m_doHolesInDet { this, "doHolesInDet", false, "" }
 controls whether holes on track in ID are produced More...
 
Gaudi::Property< bool > m_addMuonDetailedSummary
 controls whether the detailed summary is added for the muons More...
 
Gaudi::Property< bool > m_pixelExists { this, "PixelExists", true, "" }
 switch to deactivate Pixel info init More...
 
Gaudi::Property< bool > m_alwaysRecomputeHoles
 
const AtlasDetectorIDm_detID
 atlas id helper More...
 

Detailed Description

Definition at line 42 of file TrackSummaryTool.h.

Constructor & Destructor Documentation

◆ TrackSummaryTool()

Trk::TrackSummaryTool::TrackSummaryTool ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Definition at line 52 of file TrackSummaryTool.cxx.

55  : base_class(t, n, p)
56  , m_detID{}
57 {
58  declareInterface<ITrackSummaryTool>(this);
59 }

◆ ~TrackSummaryTool()

Trk::TrackSummaryTool::~TrackSummaryTool ( )
virtualdefault

Member Function Documentation

◆ computeAndReplaceTrackSummary() [1/3]

void Trk::TrackSummaryTool::computeAndReplaceTrackSummary ( const EventContext &  ctx,
Trk::Track track,
bool  suppress_hole_search = false 
) const
finaloverridevirtual

Definition at line 96 of file TrackSummaryTool.cxx.

100 {
101  track.setTrackSummary(createSummary(ctx,
102  track,
103  m_doHolesInDet & !suppress_hole_search,
104  m_doHolesMuon & !suppress_hole_search));
105 }

◆ computeAndReplaceTrackSummary() [2/3]

virtual void Trk::IExtendedTrackSummaryTool::computeAndReplaceTrackSummary

Compute track summary and replace the summary in given track.

Parameters
trackthe track whose track summary is replaced with a newly computed one
suppress_hole_searchdo not perform the hole search independent of the settings of the ID and muon hole search properties. Will recompute the track summary for the given track, delete the old track summary of the track if there is already one and set the new one. The hole search is performed according to the settings of the ID and muon hole search properties unless the suppress_hole_search argument is true.

◆ computeAndReplaceTrackSummary() [3/3]

void Trk::IExtendedTrackSummaryTool::computeAndReplaceTrackSummary

Compute track summary and replace the summary in given track.

Parameters
trackthe track whose track summary is replaced with a newly computed one
suppress_hole_searchdo not perform the hole search independent of the settings of the ID and muon hole search properties. Will recompute the track summary for the given track, delete the old track summary of the track if there is already one and set the new one. The hole search is performed according to the settings of the ID and muon hole search properties unless the suppress_hole_search argument is true.

◆ createSummary()

std::unique_ptr< Trk::TrackSummary > Trk::TrackSummaryTool::createSummary ( const EventContext &  ctx,
const Track track,
bool  doHolesInDet,
bool  doHolesMuon 
) const
private

Definition at line 136 of file TrackSummaryTool.cxx.

140 {
141  std::unique_ptr<Trk::TrackSummary> ts;
142  // first check if track has summary already and then clone it.
143  if (track.trackSummary() != nullptr) {
144  ts = std::make_unique<Trk::TrackSummary>(*(track.trackSummary()));
145  } else {
146  ts = std::make_unique<Trk::TrackSummary>();
147  }
148  // fill the summary
149  fillSummary(ctx, *ts, track, doHolesInDet, doHolesMuon);
150  return ts;
151 }

◆ fillSummary()

void Trk::TrackSummaryTool::fillSummary ( const EventContext &  ctx,
Trk::TrackSummary ts,
const Trk::Track track,
bool  doHolesInDet,
bool  doHolesMuon 
) const
private

Definition at line 160 of file TrackSummaryTool.cxx.

165 {
166  // Resize the vector where we will keep the information needed for the summary
167  std::vector<int>& information = ts.m_information;
168  information.resize(std::min(information.size(),
169  static_cast<size_t>(numberOfTrackSummaryTypes)));
170 
171  constexpr int toZero{ 0 };
172  if (!m_idTool.empty()) {
173  if (m_pixelExists) {
174  // Pixel counters set to 0
175  constexpr size_t numberOfPixelCounters{ 8 };
176  constexpr std::array<size_t, numberOfPixelCounters> atPixelIndices{
185  };
186  setTheseElements(information, atPixelIndices, toZero);
187  information[Trk::numberOfDBMHits] = 0;
188 
189  }
190  // SCT and TRT counters set to 0
191  constexpr size_t numberOfSctOrTrtCounters{ 9 };
192  constexpr std::array<size_t, numberOfSctOrTrtCounters> atSctOrTrtIndices{
202  };
203  setTheseElements(information, atSctOrTrtIndices, toZero);
204  }
205 
206  if (!m_muonTool.empty()) {
207  // Muon counters set to 0
208  constexpr size_t numberOfMuonRelatedCounters{ 15 };
209  constexpr std::array<size_t, numberOfMuonRelatedCounters> atMuonIndices{
218  };
219  // New Small Wheel counters set to 0
220  constexpr size_t numberOfNswRelatedCounters{ 6 };
221  constexpr std::array<size_t, numberOfNswRelatedCounters> atNswIndices{
224  };
225  setTheseElements(information, atMuonIndices, toZero);
226  setTheseElements(information, atNswIndices, toZero);
227  }
228 
229  // update the summart counters processing the track states
230  std::bitset<numberOfDetectorTypes> hitPattern;
231  if (track.trackStateOnSurfaces()) {
232  information[Trk::numberOfOutliersOnTrack] = 0;
233  processTrackStates(ctx,
234  track,
235  track.trackStateOnSurfaces(),
236  information,
237  hitPattern,
238  doHolesInDet,
239  doHolesMuon);
240  } else {
241  ATH_MSG_WARNING("Null pointer to TSoS found on Track (author = "
242  << track.info().dumpInfo()
243  << "). This should never happen! ");
244  }
245  ts.m_idHitPattern = hitPattern.to_ulong();
246 
247  //Now the possible additional summary steps
248  // Is the hole search done , could be there in the input already
249  bool holeSearchDone = (information[Trk::numberOfPixelHoles] != -1 &&
250  information[Trk::numberOfSCTHoles] != -1 &&
251  information[Trk::numberOfSCTDoubleHoles] != -1 &&
252  information[Trk::numberOfPixelDeadSensors] != -1 &&
253  information[Trk::numberOfSCTDeadSensors] != -1);
254 
255  // Do the holes search if we have to or insist to
256  if ((doHolesInDet || doHolesMuon) &&
257  (!holeSearchDone || m_alwaysRecomputeHoles.value())) {
258  if (m_pixelExists) {
259  information[numberOfPixelHoles] = 0;
260  }
261  information[numberOfSCTHoles] = 0;
262  information[numberOfSCTDoubleHoles] = 0;
263  searchHolesStepWise(track, information, doHolesInDet, doHolesMuon);
264  }
265 
266  // add detailed summary for muons
267  if (m_addMuonDetailedSummary && !m_muonTool.empty()) {
268  m_muonTool->addDetailedTrackSummary(ctx, track, ts);
269  }
270 }

◆ getTool()

const Trk::IExtendedTrackSummaryHelperTool * Trk::TrackSummaryTool::getTool ( const Identifier id) const
private

Return the correct tool, matching the passed Identifier.

Definition at line 406 of file TrackSummaryTool.cxx.

407 {
408  if (m_detID->is_indet(id)) {
409  if (!m_idTool.empty()) {
410  return &*m_idTool;
411  }
412  ATH_MSG_WARNING("getTool: Identifier is from ID but have no ID tool");
413  } else if (m_detID->is_muon(id)) {
414  if (!m_muonTool.empty()) {
415  return &*m_muonTool;
416  }
417  ATH_MSG_WARNING("getTool: Identifier is from Muon but have no Muon tool");
418  } else {
420  "getTool: Identifier is of unknown type! id: " << id.getString());
421  }
422  return nullptr;
423 }

◆ initialize()

StatusCode Trk::TrackSummaryTool::initialize ( )
overridevirtual

Definition at line 64 of file TrackSummaryTool.cxx.

65 {
66  ATH_CHECK(detStore()->retrieve(m_detID, "AtlasID"));
67  if (m_idTool.empty() && m_muonTool.empty()) {
68  ATH_MSG_WARNING("Could get neither InDetHelperTool nor MuonHelperTool.");
69  }
70  if (not m_idTool.empty()) {
71  ATH_CHECK(m_idTool.retrieve());
72  }
73  if (not m_muonTool.empty()) {
74  ATH_CHECK(m_muonTool.retrieve());
75  }
76  if(m_doHolesInDet){
77  ATH_MSG_INFO("Search for InDet holes ON");
78  }
79  if(m_doHolesMuon){
80  ATH_MSG_INFO("Search for Muon holes ON");
81  }
82  return StatusCode::SUCCESS;
83 }

◆ processMeasurement()

void Trk::TrackSummaryTool::processMeasurement ( const EventContext &  ctx,
const Track track,
const Trk::MeasurementBase meas,
const Trk::TrackStateOnSurface tsos,
std::vector< int > &  information,
std::bitset< numberOfDetectorTypes > &  hitPattern 
) const
private

Definition at line 362 of file TrackSummaryTool.cxx.

369 {
370  // Check if the measurement type is RIO on Track (ROT)
371  const RIO_OnTrack* rot = nullptr;
373  rot = static_cast<const RIO_OnTrack*>(meas);
374  }
375  if (rot) {
376  // have RIO_OnTrack
377  const Trk::IExtendedTrackSummaryHelperTool* tool = getTool(rot->identify());
378  if (tool == nullptr) {
379  ATH_MSG_WARNING("Cannot find tool to match ROT. Skipping.");
380  } else {
381  tool->analyse(
382  ctx, track, rot, tsos, information, hitPattern);
383  }
384  } else {
385  // check if the measurement type is CompetingRIOsOnTrack
386  const Trk::CompetingRIOsOnTrack* compROT = nullptr;
388  compROT = static_cast<const CompetingRIOsOnTrack*>(meas);
389  }
390  if (compROT) {
391  // if this works we have a CompetingRIOsOnTrack.
392  rot = &compROT->rioOnTrack(0); // get 1st rot
394  getTool(rot->identify()); // Use 'main' ROT to get detector type
395  if (tool == nullptr) {
396  ATH_MSG_WARNING("Cannot find tool to match cROT. Skipping.");
397  } else {
398  tool->analyse(
399  ctx, track, compROT, tsos, information, hitPattern);
400  }
401  }
402  }
403 }

◆ processTrackStates()

void Trk::TrackSummaryTool::processTrackStates ( const EventContext &  ctx,
const Track track,
const Trk::TrackStates tsos,
std::vector< int > &  information,
std::bitset< numberOfDetectorTypes > &  hitPattern,
bool  doHolesInDet,
bool  doHolesMuon 
) const
private

loops over TrackStatesOnSurface and uses this to produce the summary information Fills 'information', 'eProbability', and 'hitPattern'

Definition at line 276 of file TrackSummaryTool.cxx.

284 {
285  int cntAddChi2 = 0;
286  float chi2Sum = 0;
287  float chi2Sum2 = 0;
289  Trk::TrackStates::const_iterator itEnd = tsos->end();
290  for (; it != itEnd; ++it) {
291  const auto& trackState = **it;
292  const auto isMeasurement =
293  trackState.type(Trk::TrackStateOnSurface::Measurement);
294  const auto isOutlier = trackState.type(Trk::TrackStateOnSurface::Outlier);
295  if (isMeasurement or isOutlier) {
296  const Trk::MeasurementBase* measurement = trackState.measurementOnTrack();
297  if (!measurement) {
298  ATH_MSG_WARNING("measurementOnTrack == null for a TrackStateOnSurface "
299  "of type Measurement or Outlier");
300  } else {
301  if (isOutlier)
302  ++information[Trk::numberOfOutliersOnTrack]; // increment outlier
303  // counter
305  ctx, track, measurement, *it, information, hitPattern);
306  } // if have measurement pointer
307  } // if type measurement, scatterer or outlier
308 
309  if (isMeasurement) {
310  if (const auto& pFitQuality{ trackState.fitQualityOnSurface() };
311  pFitQuality and pFitQuality.numberDoF() > 0) {
312  ++cntAddChi2;
313  if (const auto& chiSq{ pFitQuality.chiSquared() };
314  chiSq > 1.e5) { // limit unphysical values and protect against FPE
315  chi2Sum += 1.e5;
316  chi2Sum2 += 1.e10;
317  } else {
318  const float chi2add = chiSq / pFitQuality.numberDoF();
319  chi2Sum += chi2add;
320  chi2Sum2 += chi2add * chi2add;
321  }
322  }
323  }
324 
325  if (trackState.type(Trk::TrackStateOnSurface::Hole) &&
326  trackState.trackParameters()) {
327  if (!doHolesInDet ||
328  !doHolesMuon) { // no dedicated hole search via extrapolation, but
329  // take what might be on the track already.
330  if (trackState.trackParameters()
331  ->associatedSurface()
332  .associatedDetectorElement() != nullptr) {
333  const Identifier& id = trackState.trackParameters()
334  ->associatedSurface()
335  .associatedDetectorElementIdentifier();
336  if (!doHolesInDet && m_detID->is_pixel(id))
337  ++information[Trk::numberOfPixelHoles];
338  if (!doHolesInDet && m_detID->is_sct(id))
339  ++information[Trk::numberOfSCTHoles];
340  if (!doHolesMuon && m_detID->is_mdt(id))
341  ++information[Trk::numberOfMdtHoles];
342  }
343  }
344  }
345  }
346 
347  float varChi2 = 0;
348  if (cntAddChi2 > 0) {
349  const auto inverseCount{ 1. / cntAddChi2 };
350  varChi2 = (chi2Sum2 - (chi2Sum * chi2Sum * inverseCount)) * inverseCount;
351  }
352  if (varChi2 > 0 && varChi2 < 1.e13)
353  information[Trk::standardDeviationOfChi2OS] = int(std::sqrt(varChi2) * 100);
354 }

◆ searchHolesStepWise()

void Trk::TrackSummaryTool::searchHolesStepWise ( const Trk::Track track,
std::vector< int > &  information,
bool  doHolesInDet,
bool  doHolesMuon 
) const
private

Extrapolation is performed from one hit to the next, it is checked if surfaces in between the extrapolation are left out.

The trackParameters of the destination hit (instead of the trackParameters of the extrapolation step) are then used as starting point for the next extrapolation step.

Definition at line 426 of file TrackSummaryTool.cxx.

430 {
431  ATH_MSG_VERBOSE("Entering Trk::TrackSummaryTool::searchHolesStepWise");
432  // -------- obtain hits in Pixel and SCT only
433  if (track.trackStateOnSurfaces() == nullptr) {
434  constexpr int toMinusOne{ -1 };
435  constexpr std::array<size_t, 16> atIndices{ numberOfPixelHoles,
448  // new small wheels
451  numberOfMmHoles };
452  setTheseElements(information, atIndices, toMinusOne);
453  return;
454  }
455 
456  constexpr int toZero{ 0 };
457  if (doHolesInDet) {
458  // -------- perform the InDet hole search
459  if (m_pixelExists) {
460  setTheseElements(
461  information, { numberOfPixelHoles, numberOfPixelDeadSensors }, toZero);
462  }
463  setTheseElements(
464  information,
466  toZero);
467  m_idTool->searchForHoles(track, information, Trk::pion);
468  }
469  if (!m_muonTool.empty() && doHolesMuon) {
470  // now do Muon hole search. It works completely differently to the above,
471  // so we need to make this all a bit more general
472  // and probably more efficient. But this hopefully works for now! EJWM
473  constexpr size_t numberOfRelatedMuonCounters{ 10 };
474  constexpr std::array<size_t, numberOfRelatedMuonCounters> atMuonIndices{
482  // new small wheels
486  };
487  setTheseElements(information, atMuonIndices, toZero);
488  m_muonTool->searchForHoles(track, information, Trk::muon);
489  }
490 }

◆ summary() [1/5]

virtual std::unique_ptr<Trk::TrackSummary> Trk::ITrackSummaryTool::summary

◆ summary() [2/5]

std::unique_ptr< Trk::TrackSummary > Trk::TrackSummaryTool::summary ( const EventContext &  ctx,
const Track track 
) const
finaloverridevirtual

Definition at line 112 of file TrackSummaryTool.cxx.

114 {
115  return createSummary(
117 }

◆ summary() [3/5]

virtual std::unique_ptr<Trk::TrackSummary> Trk::IExtendedTrackSummaryTool::summary

◆ summary() [4/5]

std::unique_ptr<Trk::TrackSummary> Trk::ITrackSummaryTool::summary

◆ summary() [5/5]

std::unique_ptr<Trk::TrackSummary> Trk::IExtendedTrackSummaryTool::summary

◆ summaryNoHoleSearch() [1/5]

virtual std::unique_ptr<Trk::TrackSummary> Trk::ITrackSummaryTool::summaryNoHoleSearch

◆ summaryNoHoleSearch() [2/5]

std::unique_ptr< Trk::TrackSummary > Trk::TrackSummaryTool::summaryNoHoleSearch ( const EventContext &  ctx,
const Track track 
) const
finaloverridevirtual

Definition at line 125 of file TrackSummaryTool.cxx.

127 {
128  return createSummary(ctx, track, false, false);
129 }

◆ summaryNoHoleSearch() [3/5]

virtual std::unique_ptr<Trk::TrackSummary> Trk::IExtendedTrackSummaryTool::summaryNoHoleSearch

◆ summaryNoHoleSearch() [4/5]

std::unique_ptr<Trk::TrackSummary> Trk::IExtendedTrackSummaryTool::summaryNoHoleSearch

◆ summaryNoHoleSearch() [5/5]

std::unique_ptr<Trk::TrackSummary> Trk::ITrackSummaryTool::summaryNoHoleSearch

◆ updateAdditionalInfo()

virtual void Trk::TrackSummaryTool::updateAdditionalInfo ( Track track) const
overridevirtual

method to update additional information (PID, dEdX), this is optimised for track collection merging.

◆ UpdateSummary()

void Trk::TrackSummaryTool::UpdateSummary ( const EventContext &  ctx,
Track track,
bool  suppress_hole_search 
) const
private

◆ updateTrack()

virtual void Trk::TrackSummaryTool::updateTrack ( const EventContext &  ctx,
Track track 
) const
finaloverridevirtual

Same behavious as IExtendedTrackSummaryTool:computeAndReplaceTrackSummary but without the need to pass Does hole search.

◆ updateTrackSummary() [1/2]

virtual void Trk::TrackSummaryTool::updateTrackSummary ( const EventContext &  ctx,
Track track 
) const
finaloverridevirtual

method which can be used to update the summary of a track it, without doing hole search.

If a summary is present it is modified in place. Otherwise a new one is created and filled.

◆ updateTrackSummary() [2/2]

virtual void Trk::TrackSummaryTool::updateTrackSummary ( const EventContext &  ctx,
Track track,
bool  suppress_hole_search = false 
) const
finaloverridevirtual

method which can be used to update the summary of a track If a summary is present it is modified in place.

Otherwise a new one is created and filled.

Member Data Documentation

◆ m_addMuonDetailedSummary

Gaudi::Property<bool> Trk::TrackSummaryTool::m_addMuonDetailedSummary
private
Initial value:
{ this,
"AddDetailedMuonSummary",
true,
"" }

controls whether the detailed summary is added for the muons

Definition at line 159 of file TrackSummaryTool.h.

◆ m_alwaysRecomputeHoles

Gaudi::Property<bool> Trk::TrackSummaryTool::m_alwaysRecomputeHoles
private
Initial value:
{ this,
"AlwaysRecomputeHoles",
false,
"" }

Definition at line 166 of file TrackSummaryTool.h.

◆ m_detID

const AtlasDetectorID* Trk::TrackSummaryTool::m_detID
private

atlas id helper

Definition at line 172 of file TrackSummaryTool.h.

◆ m_doHolesInDet

Gaudi::Property<bool> Trk::TrackSummaryTool::m_doHolesInDet { this, "doHolesInDet", false, "" }
private

controls whether holes on track in ID are produced

Definition at line 156 of file TrackSummaryTool.h.

◆ m_doHolesMuon

Gaudi::Property<bool> Trk::TrackSummaryTool::m_doHolesMuon { this, "doHolesMuon", false, "" }
private

controls whether holes on track in MS are produced Turning this on will (slightly) increase processing time.

Definition at line 154 of file TrackSummaryTool.h.

◆ m_idTool

ToolHandle<IExtendedTrackSummaryHelperTool> Trk::TrackSummaryTool::m_idTool { this, "InDetSummaryHelperTool", "", "" }
private

tool to decipher ID RoTs

Definition at line 147 of file TrackSummaryTool.h.

◆ m_muonTool

ToolHandle<IExtendedTrackSummaryHelperTool> Trk::TrackSummaryTool::m_muonTool { this, "MuonSummaryHelperTool", "", "" }
private

tool to decipher muon RoTs

Definition at line 150 of file TrackSummaryTool.h.

◆ m_pixelExists

Gaudi::Property<bool> Trk::TrackSummaryTool::m_pixelExists { this, "PixelExists", true, "" }
private

switch to deactivate Pixel info init

Definition at line 164 of file TrackSummaryTool.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
AtlasDetectorID::is_pixel
bool is_pixel(Identifier id) const
Definition: AtlasDetectorID.h:760
Trk::numberOfPixelHits
@ numberOfPixelHits
number of pixel layers on track with absence of hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:57
Trk::numberOfContribPixelLayers
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:49
Trk::numberOfRpcPhiHoles
@ numberOfRpcPhiHoles
number of RPC Phi measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:118
Trk::TrackSummaryTool::fillSummary
void fillSummary(const EventContext &ctx, Trk::TrackSummary &ts, const Trk::Track &track, bool doHolesInDet, bool doHolesMuon) const
Definition: TrackSummaryTool.cxx:160
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
Trk::numberOfTRTHighThresholdHits
@ numberOfTRTHighThresholdHits
total number of TRT hits which pass the high threshold
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:87
Trk::numberOfMdtHoles
@ numberOfMdtHoles
number of MDT measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:120
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Trk::numberOfTRTHighThresholdOutliers
@ numberOfTRTHighThresholdOutliers
number of dead TRT straws crossed
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:93
Trk::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 1st pixel layer
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:53
Trk::TrackSummaryTool::m_doHolesInDet
Gaudi::Property< bool > m_doHolesInDet
controls whether holes on track in ID are produced
Definition: TrackSummaryTool.h:156
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
Trk::IExtendedTrackSummaryHelperTool
Definition: IExtendedTrackSummaryHelperTool.h:35
Trk::numberOfCscEtaHits
@ numberOfCscEtaHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:108
AtlasDetectorID::is_sct
bool is_sct(Identifier id) const
Definition: AtlasDetectorID.h:770
Trk::numberOfCscUnspoiltEtaHits
@ numberOfCscUnspoiltEtaHits
number of unspoilt CSC eta measurements (all CSC phi measurements are by definition spoilt).
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:142
Trk::numberOfPixelSpoiltHits
@ numberOfPixelSpoiltHits
number of DBM Hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:67
Trk::numberOfSCTDeadSensors
@ numberOfSCTDeadSensors
number of TRT hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:76
Trk::TrackSummaryTool::m_alwaysRecomputeHoles
Gaudi::Property< bool > m_alwaysRecomputeHoles
Definition: TrackSummaryTool.h:166
Trk::numberOfCscEtaHoles
@ numberOfCscEtaHoles
number of CSC Eta measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:112
Trk::numberOfTrackSummaryTypes
@ numberOfTrackSummaryTypes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:189
skel.it
it
Definition: skel.GENtoEVGEN.py:423
Trk::numberOfNextToInnermostPixelLayerHits
@ numberOfNextToInnermostPixelLayerHits
these are the pixel hits, including the b-layer
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:55
Trk::numberOfOutliersOnTrack
@ numberOfOutliersOnTrack
100 times the standard deviation of the chi2 from the surfaces
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:148
Trk::numberOfTgcPhiHits
@ numberOfTgcPhiHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:105
Trk::numberOfStgcEtaHoles
@ numberOfStgcEtaHoles
number of TGC Eta measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:134
Trk::standardDeviationOfChi2OS
@ standardDeviationOfChi2OS
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:150
Trk::numberOfCscPhiHoles
@ numberOfCscPhiHoles
number of CSC Phi measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:114
Trk::numberOfMmHoles
@ numberOfMmHoles
number of TGC Eta measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:138
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
Trk::numberOfSCTHoles
@ numberOfSCTHoles
number of Holes in both sides of a SCT module
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:73
Trk::numberOfTRTHoles
@ numberOfTRTHoles
number of TRT hits which pass the high threshold (only xenon counted) total number of TRT hits which ...
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:83
Trk::numberOfMmHits
@ numberOfMmHits
number of TGC Eta measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:132
Trk::TrackStateOnSurface::Outlier
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
Definition: TrackStateOnSurface.h:122
Trk::numberOfTRTDeadStraws
@ numberOfTRTDeadStraws
number of TRT tube hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:95
Trk::CompetingRIOsOnTrack::rioOnTrack
virtual const RIO_OnTrack & rioOnTrack(unsigned int) const =0
returns the RIO_OnTrack (also known as ROT) objects depending on the integer.
Trk::TrackSummaryTool::m_idTool
ToolHandle< IExtendedTrackSummaryHelperTool > m_idTool
tool to decipher ID RoTs
Definition: TrackSummaryTool.h:147
Trk::TrackSummaryTool::getTool
const Trk::IExtendedTrackSummaryHelperTool * getTool(const Identifier &id) const
Return the correct tool, matching the passed Identifier.
Definition: TrackSummaryTool.cxx:406
Trk::numberOfTRTTubeHits
@ numberOfTRTTubeHits
number of TRT hits on track in straws with xenon
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:97
Trk::TrackSummaryTool::m_addMuonDetailedSummary
Gaudi::Property< bool > m_addMuonDetailedSummary
controls whether the detailed summary is added for the muons
Definition: TrackSummaryTool.h:159
Trk::TrackStateOnSurface::Hole
@ Hole
A hole on the track - this is defined in the following way.
Definition: TrackStateOnSurface.h:128
Trk::MeasurementBaseType::CompetingRIOsOnTrack
@ CompetingRIOsOnTrack
Definition: MeasurementBase.h:50
Trk::TrackSummaryTool::createSummary
std::unique_ptr< Trk::TrackSummary > createSummary(const EventContext &ctx, const Track &track, bool doHolesInDet, bool doHolesMuon) const
Definition: TrackSummaryTool.cxx:136
Trk::numberOfTRTOutliers
@ numberOfTRTOutliers
number of TRT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:81
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
beamspotman.n
n
Definition: beamspotman.py:731
Trk::numberOfSCTHits
@ numberOfSCTHits
number of SCT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:71
Trk::numberOfPixelDeadSensors
@ numberOfPixelDeadSensors
number of pixel hits with broad errors (width/sqrt(12))
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:65
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
Trk::TrackSummaryTool::searchHolesStepWise
void searchHolesStepWise(const Trk::Track &track, std::vector< int > &information, bool doHolesInDet, bool doHolesMuon) const
Extrapolation is performed from one hit to the next, it is checked if surfaces in between the extrapo...
Definition: TrackSummaryTool.cxx:426
Trk::CompetingRIOsOnTrack
Base class for all CompetingRIOsOnTack implementations, extends the common MeasurementBase.
Definition: CompetingRIOsOnTrack.h:64
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Trk::MeasurementBase::type
virtual bool type(MeasurementBaseType::Type type) const =0
Interface method checking the type.
Trk::muon
@ muon
Definition: ParticleHypothesis.h:28
Trk::numberOfStgcEtaHits
@ numberOfStgcEtaHits
number of TGC Eta measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:128
Trk::numberOfTgcEtaHits
@ numberOfTgcEtaHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:106
min
#define min(a, b)
Definition: cfImp.cxx:40
Trk::numberOfPixelHoles
@ numberOfPixelHoles
number of pixels which have a ganged ambiguity.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:59
Trk::numberOfTgcPhiHoles
@ numberOfTgcPhiHoles
number of TGC Phi measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:124
Trk::TrackSummaryTool::m_detID
const AtlasDetectorID * m_detID
atlas id helper
Definition: TrackSummaryTool.h:172
Trk::MeasurementBase
Definition: MeasurementBase.h:58
Trk::numberOfGangedPixels
@ numberOfGangedPixels
number of Ganged Pixels flagged as fakes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:61
Trk::numberOfDBMHits
@ numberOfDBMHits
number of hits in SCT
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:69
Trk::TrackSummaryTool::m_muonTool
ToolHandle< IExtendedTrackSummaryHelperTool > m_muonTool
tool to decipher muon RoTs
Definition: TrackSummaryTool.h:150
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
Trk::numberOfTRTHits
@ numberOfTRTHits
number of TRT outliers
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:79
Trk::numberOfRpcPhiHits
@ numberOfRpcPhiHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:109
Trk::TrackSummaryTool::m_doHolesMuon
Gaudi::Property< bool > m_doHolesMuon
controls whether holes on track in MS are produced Turning this on will (slightly) increase processin...
Definition: TrackSummaryTool.h:154
Trk::numberOfTgcEtaHoles
@ numberOfTgcEtaHoles
number of TGC Eta measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:122
Trk::numberOfSCTSpoiltHits
@ numberOfSCTSpoiltHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:78
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
AtlasDetectorID::is_indet
bool is_indet(Identifier id) const
Definition: AtlasDetectorID.h:683
Trk::MeasurementBaseType::RIO_OnTrack
@ RIO_OnTrack
Definition: MeasurementBase.h:49
Trk::numberOfStgcPhiHoles
@ numberOfStgcPhiHoles
number of TGC Phi measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:136
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
Trk::numberOfStgcPhiHits
@ numberOfStgcPhiHits
number of TGC Phi measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:130
AtlasDetectorID::is_muon
bool is_muon(Identifier id) const
Definition: AtlasDetectorID.h:701
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Trk::TrackSummaryTool::m_pixelExists
Gaudi::Property< bool > m_pixelExists
switch to deactivate Pixel info init
Definition: TrackSummaryTool.h:164
Trk::TrackSummaryTool::processMeasurement
void processMeasurement(const EventContext &ctx, const Track &track, const Trk::MeasurementBase *meas, const Trk::TrackStateOnSurface *tsos, std::vector< int > &information, std::bitset< numberOfDetectorTypes > &hitPattern) const
Definition: TrackSummaryTool.cxx:362
Trk::numberOfGangedFlaggedFakes
@ numberOfGangedFlaggedFakes
number of dead pixel sensors crossed
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:63
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
Trk::numberOfRpcEtaHits
@ numberOfRpcEtaHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:110
Trk::numberOfTRTHighThresholdHitsTotal
@ numberOfTRTHighThresholdHitsTotal
number of TRT hits used for dE/dx computation
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:89
Trk::TrackSummaryTool::processTrackStates
void processTrackStates(const EventContext &ctx, const Track &track, const Trk::TrackStates *tsos, std::vector< int > &information, std::bitset< numberOfDetectorTypes > &hitPattern, bool doHolesInDet, bool doHolesMuon) const
loops over TrackStatesOnSurface and uses this to produce the summary information Fills 'information',...
Definition: TrackSummaryTool.cxx:276
python.CaloScaleNoiseConfig.ts
ts
Definition: CaloScaleNoiseConfig.py:86
Trk::numberOfSCTDoubleHoles
@ numberOfSCTDoubleHoles
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:75
Trk::numberOfTRTXenonHits
@ numberOfTRTXenonHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:99
Trk::numberOfCscPhiHits
@ numberOfCscPhiHits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:107
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
Trk::numberOfRpcEtaHoles
@ numberOfRpcEtaHoles
number of RPC Eta measurements missing from the track
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:116
Trk::numberOfMdtHits
@ numberOfMdtHits
number of mdt hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:103
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
AtlasDetectorID::is_mdt
bool is_mdt(Identifier id) const
Definition: AtlasDetectorID.h:859