|
ATLAS Offline Software
|
#include <TrackSummaryTool.h>
|
| 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::TrackSummary > | summary (const EventContext &ctx, const Track &track) const override final |
|
virtual std::unique_ptr< Trk::TrackSummary > | summaryNoHoleSearch (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::TrackSummary > | summary (const EventContext &ctx, const Track &track) const=0 |
|
std::unique_ptr< Trk::TrackSummary > | summary (const Track &track) const |
|
virtual std::unique_ptr< Trk::TrackSummary > | summary (const EventContext &ctx, const Track &track) const =0 |
|
virtual std::unique_ptr< Trk::TrackSummary > | summaryNoHoleSearch (const EventContext &ctx, const Track &track) const=0 |
|
std::unique_ptr< Trk::TrackSummary > | summaryNoHoleSearch (const Track &track) const |
|
virtual std::unique_ptr< Trk::TrackSummary > | summaryNoHoleSearch (const EventContext &ctx, const Track &track) const =0 |
|
|
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::TrackSummary > | createSummary (const EventContext &ctx, const Track &track, bool doHolesInDet, bool doHolesMuon) const |
|
const Trk::IExtendedTrackSummaryHelperTool * | getTool (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...
|
|
|
ToolHandle< IExtendedTrackSummaryHelperTool > | m_idTool { this, "InDetSummaryHelperTool", "", "" } |
| tool to decipher ID RoTs More...
|
|
ToolHandle< IExtendedTrackSummaryHelperTool > | m_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 AtlasDetectorID * | m_detID |
| atlas id helper More...
|
|
Definition at line 42 of file TrackSummaryTool.h.
◆ TrackSummaryTool()
Trk::TrackSummaryTool::TrackSummaryTool |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~TrackSummaryTool()
Trk::TrackSummaryTool::~TrackSummaryTool |
( |
| ) |
|
|
virtualdefault |
◆ computeAndReplaceTrackSummary() [1/3]
void Trk::TrackSummaryTool::computeAndReplaceTrackSummary |
( |
const EventContext & |
ctx, |
|
|
Trk::Track & |
track, |
|
|
bool |
suppress_hole_search = false |
|
) |
| const |
|
finaloverridevirtual |
◆ computeAndReplaceTrackSummary() [2/3]
virtual void Trk::IExtendedTrackSummaryTool::computeAndReplaceTrackSummary |
Compute track summary and replace the summary in given track.
- Parameters
-
track | the track whose track summary is replaced with a newly computed one |
suppress_hole_search | do 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
-
track | the track whose track summary is replaced with a newly computed one |
suppress_hole_search | do 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.
141 std::unique_ptr<Trk::TrackSummary>
ts;
143 if (
track.trackSummary() !=
nullptr) {
144 ts = std::make_unique<Trk::TrackSummary>(*(
track.trackSummary()));
146 ts = std::make_unique<Trk::TrackSummary>();
◆ fillSummary()
Definition at line 160 of file TrackSummaryTool.cxx.
167 std::vector<int>& information =
ts.m_information;
168 information.resize(
std::min(information.size(),
171 constexpr
int toZero{ 0 };
175 constexpr
size_t numberOfPixelCounters{ 8 };
176 constexpr std::array<size_t, numberOfPixelCounters> atPixelIndices{
186 setTheseElements(information, atPixelIndices, toZero);
191 constexpr
size_t numberOfSctOrTrtCounters{ 9 };
192 constexpr std::array<size_t, numberOfSctOrTrtCounters> atSctOrTrtIndices{
203 setTheseElements(information, atSctOrTrtIndices, toZero);
208 constexpr
size_t numberOfMuonRelatedCounters{ 15 };
209 constexpr std::array<size_t, numberOfMuonRelatedCounters> atMuonIndices{
220 constexpr
size_t numberOfNswRelatedCounters{ 6 };
221 constexpr std::array<size_t, numberOfNswRelatedCounters> atNswIndices{
225 setTheseElements(information, atMuonIndices, toZero);
226 setTheseElements(information, atNswIndices, toZero);
230 std::bitset<numberOfDetectorTypes> hitPattern;
231 if (
track.trackStateOnSurfaces()) {
235 track.trackStateOnSurfaces(),
242 <<
track.info().dumpInfo()
243 <<
"). This should never happen! ");
245 ts.m_idHitPattern = hitPattern.to_ulong();
256 if ((doHolesInDet || doHolesMuon) &&
◆ getTool()
Return the correct tool, matching the passed Identifier.
Definition at line 406 of file TrackSummaryTool.cxx.
417 ATH_MSG_WARNING(
"getTool: Identifier is from Muon but have no Muon tool");
420 "getTool: Identifier is of unknown type! id: " <<
id.getString());
◆ initialize()
StatusCode Trk::TrackSummaryTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ processMeasurement()
Definition at line 362 of file TrackSummaryTool.cxx.
378 if (
tool ==
nullptr) {
382 ctx,
track, rot, tsos, information, hitPattern);
395 if (
tool ==
nullptr) {
399 ctx,
track, compROT, tsos, information, hitPattern);
◆ processTrackStates()
loops over TrackStatesOnSurface and uses this to produce the summary information Fills 'information', 'eProbability', and 'hitPattern'
Definition at line 276 of file TrackSummaryTool.cxx.
290 for (;
it != itEnd; ++
it) {
291 const auto& trackState = **
it;
292 const auto isMeasurement =
295 if (isMeasurement or isOutlier) {
298 ATH_MSG_WARNING(
"measurementOnTrack == null for a TrackStateOnSurface "
299 "of type Measurement or Outlier");
305 ctx,
track, measurement, *
it, information, hitPattern);
310 if (
const auto& pFitQuality{ trackState.fitQualityOnSurface() };
311 pFitQuality and pFitQuality.numberDoF() > 0) {
313 if (
const auto& chiSq{ pFitQuality.chiSquared() };
318 const float chi2add = chiSq / pFitQuality.numberDoF();
320 chi2Sum2 += chi2add * chi2add;
326 trackState.trackParameters()) {
330 if (trackState.trackParameters()
331 ->associatedSurface()
332 .associatedDetectorElement() !=
nullptr) {
333 const Identifier&
id = trackState.trackParameters()
334 ->associatedSurface()
335 .associatedDetectorElementIdentifier();
348 if (cntAddChi2 > 0) {
349 const auto inverseCount{ 1. / cntAddChi2 };
350 varChi2 = (chi2Sum2 - (chi2Sum * chi2Sum * inverseCount)) * inverseCount;
352 if (varChi2 > 0 && varChi2 < 1.e13)
◆ 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.
431 ATH_MSG_VERBOSE(
"Entering Trk::TrackSummaryTool::searchHolesStepWise");
433 if (
track.trackStateOnSurfaces() ==
nullptr) {
434 constexpr
int toMinusOne{ -1 };
452 setTheseElements(information, atIndices, toMinusOne);
456 constexpr
int toZero{ 0 };
473 constexpr
size_t numberOfRelatedMuonCounters{ 10 };
474 constexpr std::array<size_t, numberOfRelatedMuonCounters> atMuonIndices{
487 setTheseElements(information, atMuonIndices, toZero);
◆ summary() [1/4]
◆ summary() [2/4]
◆ summary() [3/4]
◆ summary() [4/4]
◆ summaryNoHoleSearch() [1/4]
virtual std::unique_ptr<Trk::TrackSummary> Trk::ITrackSummaryTool::summaryNoHoleSearch |
◆ summaryNoHoleSearch() [2/4]
◆ summaryNoHoleSearch() [3/4]
virtual std::unique_ptr<Trk::TrackSummary> Trk::IExtendedTrackSummaryTool::summaryNoHoleSearch |
◆ summaryNoHoleSearch() [4/4]
std::unique_ptr<Trk::TrackSummary> Trk::IExtendedTrackSummaryTool::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 |
◆ 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.
◆ 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
◆ m_doHolesInDet
Gaudi::Property<bool> Trk::TrackSummaryTool::m_doHolesInDet { this, "doHolesInDet", false, "" } |
|
private |
◆ 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
◆ m_muonTool
◆ m_pixelExists
Gaudi::Property<bool> Trk::TrackSummaryTool::m_pixelExists { this, "PixelExists", true, "" } |
|
private |
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
bool is_pixel(Identifier id) const
@ numberOfPixelHits
number of pixel layers on track with absence of hits
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector
@ numberOfRpcPhiHoles
number of RPC Phi measurements missing from the track
Const iterator class for DataVector/DataList.
@ numberOfTRTHighThresholdHits
total number of TRT hits which pass the high threshold
@ numberOfMdtHoles
number of MDT measurements missing from the track
@ numberOfTRTHighThresholdOutliers
number of dead TRT straws crossed
@ numberOfInnermostPixelLayerHits
these are the hits in the 1st pixel layer
bool is_sct(Identifier id) const
@ numberOfCscUnspoiltEtaHits
number of unspoilt CSC eta measurements (all CSC phi measurements are by definition spoilt).
@ numberOfPixelSpoiltHits
number of DBM Hits
@ numberOfSCTDeadSensors
number of TRT hits
@ numberOfCscEtaHoles
number of CSC Eta measurements missing from the track
@ numberOfTrackSummaryTypes
@ numberOfNextToInnermostPixelLayerHits
these are the pixel hits, including the b-layer
@ numberOfOutliersOnTrack
100 times the standard deviation of the chi2 from the surfaces
@ numberOfStgcEtaHoles
number of TGC Eta measurements missing from the track
@ standardDeviationOfChi2OS
@ numberOfCscPhiHoles
number of CSC Phi measurements missing from the track
@ numberOfMmHoles
number of TGC Eta measurements missing from the track
#define ATH_MSG_VERBOSE(x)
@ numberOfSCTHoles
number of Holes in both sides of a SCT module
@ numberOfTRTHoles
number of TRT hits which pass the high threshold (only xenon counted) total number of TRT hits which ...
@ numberOfMmHits
number of TGC Eta measurements missing from the track
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
@ numberOfTRTDeadStraws
number of TRT tube hits
virtual const RIO_OnTrack & rioOnTrack(unsigned int) const =0
returns the RIO_OnTrack (also known as ROT) objects depending on the integer.
@ numberOfTRTTubeHits
number of TRT hits on track in straws with xenon
@ Hole
A hole on the track - this is defined in the following way.
@ numberOfTRTOutliers
number of TRT holes
@ numberOfSCTHits
number of SCT holes
@ numberOfPixelDeadSensors
number of pixel hits with broad errors (width/sqrt(12))
Base class for all CompetingRIOsOnTack implementations, extends the common MeasurementBase.
virtual bool type(MeasurementBaseType::Type type) const =0
Interface method checking the type.
@ numberOfStgcEtaHits
number of TGC Eta measurements missing from the track
@ numberOfPixelHoles
number of pixels which have a ganged ambiguity.
@ numberOfTgcPhiHoles
number of TGC Phi measurements missing from the track
@ numberOfGangedPixels
number of Ganged Pixels flagged as fakes
@ numberOfDBMHits
number of hits in SCT
@ numberOfTRTHits
number of TRT outliers
@ numberOfTgcEtaHoles
number of TGC Eta measurements missing from the track
bool is_indet(Identifier id) const
@ numberOfStgcPhiHoles
number of TGC Phi measurements missing from the track
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
@ numberOfStgcPhiHits
number of TGC Phi measurements missing from the track
bool is_muon(Identifier id) const
#define ATH_MSG_WARNING(x)
@ numberOfGangedFlaggedFakes
number of dead pixel sensors crossed
@ numberOfTRTHighThresholdHitsTotal
number of TRT hits used for dE/dx computation
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
@ numberOfRpcEtaHoles
number of RPC Eta measurements missing from the track
@ numberOfMdtHits
number of mdt hits
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
bool is_mdt(Identifier id) const