ATLAS Offline Software
Loading...
Searching...
No Matches
Tracking/TrkEvent/TrkTrack/src/TrackInfo.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6#include "GaudiKernel/MsgStream.h"
7#include <iostream>
8#include <sstream>
9
11 const TrackFitter fitter,
12 const ParticleHypothesis partHyp,
13 const std::bitset<NumberOfTrackProperties>& properties,
14 const std::bitset<NumberOfTrackRecoInfo>& patternRecognition)
15 : m_fitter(fitter)
16 , m_particleHypo(partHyp)
19{
20
22 switch (m_fitter) // switch on TrackFitter
23 {
24 case GaussianSumFilter: // GaussianSumFilter as TrackFitter (electron)
26 break;
31 break;
32 default:
34 } // end of switch operator
35 } // end of particle hypothesis check
36}
37
39 const ParticleHypothesis partHyp)
40 : TrackInfo(fitter, partHyp, {}, {})
41{
42}
43
44std::string
46{
47 std::stringstream authorInfo;
48 authorInfo << "The Fitter of this track is: ";
49
50 switch (m_fitter) {
52 authorInfo << "Unknown";
53 break;
54
56 authorInfo << "iPatTrackFitter";
57 break;
58
60 authorInfo << "xKalman";
61 break;
62
64 authorInfo << "KalmanFitter";
65 break;
66
68 authorInfo << "GaussianSumFilter";
69 break;
70
72 authorInfo << "GlobalChi2Fitter";
73 break;
74
76 authorInfo << "DistributedKalmanFilter";
77 break;
78
80 authorInfo << "DeterministicAnnealingFilter";
81 break;
82
84 authorInfo << "MuonboyFitter";
85 break;
86
87 default:
88 authorInfo << "Fitter not recognized " << m_fitter;
89 }
90
91 // adding properties, but checking first
92 // that they are there at all
93 if (m_properties.any()) {
94 authorInfo << (m_properties.test(Trk::TrackInfo::BremFit) ? " + BremFit" : "");
95 authorInfo << (m_properties.test(Trk::TrackInfo::BremFitSuccessful) ? " + BremFitSuccess" : "");
96 authorInfo << (m_properties.test(Trk::TrackInfo::StraightTrack) ? " + StraightTrack" : "");
97 authorInfo << (m_properties.test(Trk::TrackInfo::SlimmedTrack) ? " + SlimmedTrack" : "");
98 authorInfo << (m_properties.test(Trk::TrackInfo::HardScatterOrKink) ? " + HardScatterOrKink"
99 : "");
100 authorInfo << (m_properties.test(Trk::TrackInfo::LowPtTrack) ? " + LowPtTrack" : "");
101 } // end of adding track properties
102
103 // adding a pattern recognition structure
104 if (m_patternRecognition.any()) {
105 // std::cout<<"calling the pattern reco dump"<<std::endl;
106 authorInfo << "; The Pattern Recognition Agorithms used: ";
107 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::SiSPSeededFinder) ? "SiSPSeedFinder; "
108 : "");
109 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::SiCTBTracking) ? "SiCTBTracking; "
110 : "");
111 // std::cout<<"3d line pattern reco dump"<<std::endl;
113 ? "InDetAmbiguitySolver; "
114 : "");
116 ? "InDetExtensionProcessor; "
117 : "");
119 ? "TRTSeededTrackFinder; "
120 : "");
121 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::Muonboy) ? "Muonboy; " : "");
123 ? "MuGirlUnrefitted; "
124 : "");
125 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::STACO) ? "STACO; " : "");
126 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::StacoLowPt) ? "StacoLowPt; " : "");
127 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::MuTag) ? "MuTag; " : "");
129 ? "MooreToTrackTool; "
130 : "");
131 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::TrigIDSCAN) ? "TrigIDSCAN; " : "");
132 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::TrigSiTrack) ? "TrigSiTrack; " : "");
133 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::TrigTRTxK) ? "TrigTRTxK; " : "");
134 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::TrigTRTLUT) ? "TrigTRTLUT; " : "");
135 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::Fatras) ? "Fatras; " : "");
136 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::iPatLegacyCnv) ? "iPatLegacyCnv; "
137 : "");
139 ? "xKalmanLegacyCnv; "
140 : "");
142 ? "SimpleAmbiguityProcessorTool; "
143 : "");
145 ? "InDetAmbiTrackSelectionTool; "
146 : "");
147 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::TRTStandalone) ? "TRTStandalone; "
148 : "");
149 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::MuidStandAlone) ? "MuidStandAlone; "
150 : "");
152 ? "TRTSeededSingleSpTrackFinder; "
153 : "");
154 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::MooreLegacyCnv) ? "MooreLegacyCnv; "
155 : "");
156 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::MuidComb) ? "MuidComb; " : "");
157 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::Moore) ? "Moore; " : "");
158 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::MuidCombined) ? "MuidCombined; " : "");
160 ? "MuidVertexAssociator; "
161 : "");
162 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::MuGirl) ? "MuGirl; " : "");
163 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::iPatRec) ? "iPatRec; " : "");
164 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::MuGirlLowBeta) ? "MuGirlLowBeta; "
165 : "");
167 ? "FatrasSimulation; "
168 : "");
170 ? "MuonNotHittingTileVolume; "
171 : "");
173 ? "ReverseOrderedTrack; "
174 : "");
176 ? "SiSpacePointsSeedMaker_Cosmic; "
177 : "");
179 ? "SiSpacePointsSeedMaker_HeavyIon; "
180 : "");
182 ? "SiSpacePointsSeedMaker_LowMomentum; "
183 : "");
185 ? "SiSpacePointsSeedMaker_BeamGas; "
186 : "");
188 ? "SiSpacePointsSeedMaker_VeryLowMomentum; "
189 : "");
190 authorInfo << (m_patternRecognition.test(
192 ? "SiSpacePointsSeedMaker_ITkConversionTracks; "
193 : "");
195 ? "SiSpacePointsSeedMaker_LargeD0; "
196 : "");
197 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::Pseudotracking) ? "Pseudotracking; "
198 : "");
200 ? "MuidMuonRecoveryTool; "
201 : "");
203 ? "MuidStandaloneRefit; "
204 : "");
205 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::TrackInCaloROI) ? "TrackInCaloROI; "
206 : "");
208 ? "SiSpacePointsSeedMaker_ForwardTracks; "
209 : "");
210 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::strategyA) ? "strategyA; " : "");
211 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::strategyB) ? "strategyB; " : "");
212 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::strategyC) ? "strategyC; " : "");
213 authorInfo << (m_patternRecognition.test(Trk::TrackInfo::FTK) ? "FTK; " : "");
215 ? "FastTrackFinderSeed; "
216 : "");
218 ? "SiSPSeededFinderSimple; "
219 : "");
220
221 } // end of adding pattern recognition properties
222 return authorInfo.str();
223} // end of dump method
224
225std::ostream&
226Trk::operator<<(std::ostream& sl, const Trk::TrackInfo& info)
227{
228 sl << info.dumpInfo() << std::endl;
229 return sl;
230}
231
232MsgStream&
233Trk::operator<<(MsgStream& sl, const Trk::TrackInfo& info)
234{
235 sl << info.dumpInfo() << endmsg;
236 return sl;
237}
238
#define endmsg
Contains information about the 'fitter' of this track.
std::string dumpInfo() const
Returns a string with the name of the fitter of this track (i.e.
TrackInfo()=default
Rule of 6 : default ctor, copy/move ctor copy/move assignment.
std::bitset< NumberOfTrackProperties > m_properties
A bitset providing information on the properties of the track.
TrackInfo(const TrackFitter fitter, const ParticleHypothesis partHyp)
Non default Constructors.
const std::bitset< NumberOfTrackProperties > & properties() const
TrackFitter
enums to identify who created this track and what propertis does it have.
@ GaussianSumFilter
Tracks from Gaussian Sum Filter.
@ KalmanFitter
tracks produced by the Kalman Fitter
@ MuonboyFitter
Track produced with Muonboy's internal fitter.
@ DeterministicAnnealingFilter
Adpative track fitter with fuzzy hit assignment.
@ DistributedKalmanFilter
Fast Kalman filter from HLT with simplified material effects.
@ GlobalChi2Fitter
Track's from Thijs' global chi^2 fitter.
const std::bitset< NumberOfTrackRecoInfo > & patternRecognition() const
@ BremFit
A brem fit was performed on this track.
@ HardScatterOrKink
A track with a kink or a hard scatter.
@ BremFitSuccessful
A brem fit was performed on this track and this fit was successful.
@ SiSpacePointsSeedMaker_Cosmic
Entries allowing to distinguish different seed makers.
@ MuidStandaloneRefit
Standalone muon that was obtained by refitting a combined muon using the calorimeter information of t...
@ StacoLowPt
Tracks produced by StacoLowpt.
@ iPatLegacyCnv
Added because of compilation problems.
@ TRTSeededTrackFinder
Tracks from TRT Seeded Track finder.
@ TrigTRTxK
TrigInDetTracks produced by TrigTRTxK, running at trigger LVL2.
@ MooreLegacyCnv
Back compatibility with old type of ESD.
@ MuGirlUnrefitted
Tracks from MuGirl not refitted with iPat.
@ InDetExtensionProcessor
Tracks with InDetExtensionProcessor used.
@ SiSpacePointsSeedMaker_LargeD0
Large d0 for displaced vertex searches.
@ MuidMuonRecoveryTool
Muons found by the ID seeded muon recovery.
@ SiSpacePointsSeedMaker_ForwardTracks
Entries allowing to distinguish different seed makers.
@ MuonNotHittingTileVolume
Track which (physically) does not intersect the ID or Calo.
@ ReverseOrderedTrack
Track which has its hits behind it, e.g.
@ TrigIDSCAN
TrigInDetTracks produced by TrigIDSCAN, running at trigger LVL2.
@ InDetAmbiguitySolver
Tracks with InDetAmbiguitySolver used.
@ TrigSiTrack
TrigInDetTracks produced by TrigSiTrack, running at trigger LVL2.
@ SiSpacePointsSeedMaker_ITkConversionTracks
ITkConversion Track flag.
@ FastTrackFinderSeed
for tracks seeded by the FastTrackFinder
@ MuidComb
Back compatibility with older ESD versions.
@ SimpleAmbiguityProcessorTool
Added because of compilation problems.
@ SiSPSeededFinder
Tracks from SiSPSeedFinder.
@ InDetAmbiTrackSelectionTool
Added because of compilation problems.
@ SiSPSeededFinderSimple
for tracks processed by the trigger version of the SiSPSeededFinder
@ TRTSeededSingleSpTrackFinder
TRTSeededSingleSpTrackFinder.
@ TrigTRTLUT
TrigInDetTracks produced by TrigTRTLUT, running at trigger LVL2.
@ xKalmanLegacyCnv
Added because of compilation problems.
std::bitset< NumberOfTrackRecoInfo > m_patternRecognition
A bitset providing information on the actual pattern recognition algotithm.
TrackFitter m_fitter
This is an enum, which stores the identity of where the track was created.
ParticleHypothesis m_particleHypo
This is an enum, which stores the particle hypothesis (if any) used for the track fitting.
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.