ATLAS Offline Software
Loading...
Searching...
No Matches
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.
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.
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.
virtual void updateAdditionalInfo (Track &track) const override
 method to update additional information (PID, dEdX), this is optimised for track collection merging.
void computeAndReplaceTrackSummary (Track &track, bool suppress_hole_search=false) const
 Compute track summary and replace the summary in given track.
std::unique_ptr< Trk::TrackSummarysummary (const Track &track) const
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.
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'
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.

Private Attributes

ToolHandle< IExtendedTrackSummaryHelperToolm_idTool { this, "InDetSummaryHelperTool", "", "" }
 tool to decipher ID RoTs
ToolHandle< IExtendedTrackSummaryHelperToolm_muonTool { this, "MuonSummaryHelperTool", "", "" }
 tool to decipher muon RoTs
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.
Gaudi::Property< bool > m_doHolesInDet { this, "doHolesInDet", false, "" }
 controls whether holes on track in ID are produced
Gaudi::Property< bool > m_addMuonDetailedSummary
 controls whether the detailed summary is added for the muons
Gaudi::Property< bool > m_pixelExists { this, "PixelExists", true, "" }
 switch to deactivate Pixel info init
Gaudi::Property< bool > m_alwaysRecomputeHoles
const AtlasDetectorIDm_detID
 atlas id helper

Detailed Description

Constructor & Destructor Documentation

◆ TrackSummaryTool()

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

Definition at line 52 of file Tracking/TrkTools/TrkTrackSummaryTool/src/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/2]

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

Definition at line 96 of file Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx.

100{
101 track.setTrackSummary(createSummary(ctx,
102 track,
103 m_doHolesInDet & !suppress_hole_search,
104 m_doHolesMuon & !suppress_hole_search));
105}
Gaudi::Property< bool > m_doHolesMuon
controls whether holes on track in MS are produced Turning this on will (slightly) increase processin...
Gaudi::Property< bool > m_doHolesInDet
controls whether holes on track in ID are produced
std::unique_ptr< Trk::TrackSummary > createSummary(const EventContext &ctx, const Track &track, bool doHolesInDet, bool doHolesMuon) const

◆ computeAndReplaceTrackSummary() [2/2]

void Trk::IExtendedTrackSummaryTool::computeAndReplaceTrackSummary ( Track & track,
bool suppress_hole_search = false ) const

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 Tracking/TrkTools/TrkTrackSummaryTool/src/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}
void fillSummary(const EventContext &ctx, Trk::TrackSummary &ts, const Trk::Track &track, bool doHolesInDet, bool doHolesMuon) const
int ts
Definition globals.cxx:24

◆ 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 Tracking/TrkTools/TrkTrackSummaryTool/src/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;
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}
#define ATH_MSG_WARNING(x)
Gaudi::Property< bool > m_addMuonDetailedSummary
controls whether the detailed summary is added for the muons
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...
Gaudi::Property< bool > m_pixelExists
switch to deactivate Pixel info init
ToolHandle< IExtendedTrackSummaryHelperTool > m_muonTool
tool to decipher muon RoTs
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',...
ToolHandle< IExtendedTrackSummaryHelperTool > m_idTool
tool to decipher ID RoTs
@ numberOfTgcPhiHoles
number of TGC Phi measurements missing from the track
@ numberOfRpcEtaHoles
number of RPC Eta measurements missing from the track
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector
@ numberOfGangedPixels
number of Ganged Pixels flagged as fakes
@ numberOfPixelHits
number of pixel layers on track with absence of hits
@ numberOfTRTHighThresholdOutliers
number of dead TRT straws crossed
@ numberOfMdtHoles
number of MDT measurements missing from the track
@ numberOfMmHits
number of TGC Eta measurements missing from the track
@ numberOfStgcEtaHits
number of TGC Eta measurements missing from the track
@ numberOfStgcPhiHoles
number of TGC Phi measurements missing from the track
@ numberOfStgcEtaHoles
number of TGC Eta measurements missing from the track
@ numberOfNextToInnermostPixelLayerHits
these are the pixel hits, including the b-layer
@ numberOfMmHoles
number of TGC Eta measurements missing from the track
@ numberOfInnermostPixelLayerHits
these are the hits in the 1st pixel layer
@ numberOfTRTHighThresholdHits
total number of TRT hits which pass the high threshold
@ numberOfSCTHoles
number of Holes in both sides of a SCT module
@ numberOfGangedFlaggedFakes
number of dead pixel sensors crossed
@ numberOfStgcPhiHits
number of TGC Phi measurements missing from the track
@ numberOfPixelHoles
number of pixels which have a ganged ambiguity.
@ numberOfTRTTubeHits
number of TRT hits on track in straws with xenon
@ numberOfOutliersOnTrack
100 times the standard deviation of the chi2 from the surfaces
@ numberOfTgcEtaHoles
number of TGC Eta measurements missing from the track
@ numberOfTRTHighThresholdHitsTotal
number of TRT hits used for dE/dx computation
@ numberOfCscUnspoiltEtaHits
number of unspoilt CSC eta measurements (all CSC phi measurements are by definition spoilt).
@ numberOfPixelDeadSensors
number of pixel hits with broad errors (width/sqrt(12))
@ numberOfCscPhiHoles
number of CSC Phi measurements missing from the track
@ numberOfRpcPhiHoles
number of RPC Phi measurements missing from the track
@ numberOfCscEtaHoles
number of CSC Eta measurements missing from the track

◆ 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 Tracking/TrkTools/TrkTrackSummaryTool/src/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 Tracking/TrkTools/TrkTrackSummaryTool/src/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 }
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}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ 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 Tracking/TrkTools/TrkTrackSummaryTool/src/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
393 const Trk::IExtendedTrackSummaryHelperTool* tool =
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}
Identifier identify() const
return the identifier -extends MeasurementBase
virtual const RIO_OnTrack & rioOnTrack(unsigned int) const =0
returns the RIO_OnTrack (also known as ROT) objects depending on the integer.
virtual bool type(MeasurementBaseType::Type type) const =0
Interface method checking the type.
const Trk::IExtendedTrackSummaryHelperTool * getTool(const Identifier &id) const
Return the correct tool, matching the passed Identifier.

◆ 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 Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx.

284{
285 int cntAddChi2 = 0;
286 float chi2Sum = 0;
287 float chi2Sum2 = 0;
290 for (; it != itEnd; ++it) {
291 const auto& trackState = **it;
292 const auto isMeasurement =
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}
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
@ Hole
A hole on the track - this is defined in the following way.
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

◆ 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 Tracking/TrkTools/TrkTrackSummaryTool/src/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
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}
#define ATH_MSG_VERBOSE(x)
@ numberOfTRTHoles
number of TRT hits which pass the high threshold (only xenon counted) total number of TRT hits which ...

◆ summary() [1/2]

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

Definition at line 112 of file Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx.

114{
115 return createSummary(
116 ctx, track, m_doHolesInDet, m_doHolesMuon);
117}

◆ summary() [2/2]

std::unique_ptr< Trk::TrackSummary > Trk::IExtendedTrackSummaryTool::summary ( const Track & track) const

◆ summaryNoHoleSearch() [1/2]

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

Definition at line 125 of file Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx.

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

◆ summaryNoHoleSearch() [2/2]

std::unique_ptr< Trk::TrackSummary > Trk::IExtendedTrackSummaryTool::summaryNoHoleSearch ( const Track & track) const

◆ 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 Tracking/TrkTools/TrkTrackSummaryTool/TrkTrackSummaryTool/TrackSummaryTool.h.

159 { this,
160 "AddDetailedMuonSummary",
161 true,
162 "" };

◆ m_alwaysRecomputeHoles

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

Definition at line 166 of file Tracking/TrkTools/TrkTrackSummaryTool/TrkTrackSummaryTool/TrackSummaryTool.h.

166 { this,
167 "AlwaysRecomputeHoles",
168 false,
169 "" };

◆ m_detID

const AtlasDetectorID* Trk::TrackSummaryTool::m_detID
private

◆ 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 Tracking/TrkTools/TrkTrackSummaryTool/TrkTrackSummaryTool/TrackSummaryTool.h.

156{ this, "doHolesInDet", false, "" };

◆ 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 Tracking/TrkTools/TrkTrackSummaryTool/TrkTrackSummaryTool/TrackSummaryTool.h.

154{ this, "doHolesMuon", false, "" };

◆ m_idTool

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

tool to decipher ID RoTs

Definition at line 147 of file Tracking/TrkTools/TrkTrackSummaryTool/TrkTrackSummaryTool/TrackSummaryTool.h.

147{ this, "InDetSummaryHelperTool", "", "" };

◆ m_muonTool

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

tool to decipher muon RoTs

Definition at line 150 of file Tracking/TrkTools/TrkTrackSummaryTool/TrkTrackSummaryTool/TrackSummaryTool.h.

150{ this, "MuonSummaryHelperTool", "", "" };

◆ 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 Tracking/TrkTools/TrkTrackSummaryTool/TrkTrackSummaryTool/TrackSummaryTool.h.

164{ this, "PixelExists", true, "" };

The documentation for this class was generated from the following files: