ATLAS Offline Software
Loading...
Searching...
No Matches
TrackDiff.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6// TrackDiff.h
7// Header file for TrackDiff
9// (c) ATLAS Detector software
11// Sebastian.Fleischmann@cern.ch
13
14#ifndef TRK_TRACKDIFF_H
15#define TRK_TRACKDIFF_H
16
25
26class AtlasDetectorID;
27class TTree;
28
29namespace Trk {
30
31 class RIO_OnTrack;
32 class Track;
33 class Surface;
75
76class TrackDiff : virtual public Trk::ITrackDiff, public AthAlgTool {
77public:
78
79 // standard AlgToolmethods
80 TrackDiff(const std::string&,const std::string&,const IInterface*);
82
83 // standard Athena methods
84 StatusCode initialize();
85 StatusCode finalize();
86
87
89 virtual StatusCode diff (
90 const Trk::Track& referenceTrack,
91 const Trk::Track& comparedTrack);
92
93
94private:
95
96 static const int s_maxHits = 300; // maximal number of hits per track
97
98 TTree* m_nt;
99
101
102 // jobOptions
103 std::string m_ntupleFileName;
104 std::string m_ntupleDirName;
105 std::string m_ntupleTreeName;
106 //bool m_compareMeasurements; //!< jobOption: compare track states of type "measurement"
111
113
117
127
129 std::vector<int>* m_detectorType;
130 std::vector<int>* m_isFake;
131 std::vector<int>* m_isMissing;
132 std::vector<int>* m_isPRD_Mismatch;
133 std::vector<int>* m_isFlippedSign;
134 std::vector<int>* m_isNoDriftTime;
135 std::vector<int>* m_refIsMeasurement;
136 std::vector<int>* m_refIsOutlier;
137 std::vector<int>* m_compIsMeasurement;
138 std::vector<int>* m_compIsOutlier;
139 std::vector<float>* m_maxAssignProb;
140 std::vector<float>* m_sumAssignProb;
141 std::vector<float>* m_surfX;
142 std::vector<float>* m_surfY;
143 std::vector<float>* m_surfZ;
144
147
148
156
157 SG::ReadHandleKey<xAOD::EventInfo> m_evt {this, "EvtInfo", "EventInfo", "EventInfo name"};
158
161
163 void resetVariables();
164
167 std::string &detTypeName ) const;
168
170 bool diffStateInfo(const Trk::TrackStateData* refTrackStateData,
171 const Trk::TrackStateData* compareTrackStateData);
172
173};
174
175
176} // end of namespace
177
178#endif // TRK_TRACKDIFF_H
An STL vector of pointers that by default owns its pointed-to elements.
Property holding a SG store/key/clid from which a ReadHandle is made.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Derived DataVector<T>.
Definition DataVector.h:795
Property holding a SG store/key/clid from which a ReadHandle is made.
provides the interface for a track diff tool
Definition ITrackDiff.h:29
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition RIO_OnTrack.h:70
Abstract Base Class for tracking surfaces.
int m_PRD_Mismatches[Trk::TrackState::NumberOfMeasurementTypes]
Definition TrackDiff.h:124
std::vector< int > * m_isNoDriftTime
Definition TrackDiff.h:134
int m_driftCircleSignFlips
Definition TrackDiff.h:125
TrackDiff(const std::string &, const std::string &, const IInterface *)
Definition TrackDiff.cxx:34
SG::ReadHandleKey< xAOD::EventInfo > m_evt
Definition TrackDiff.h:157
StatusCode finalize()
finalize
std::vector< int > * m_compIsOutlier
Definition TrackDiff.h:138
int m_nRefStates[Trk::TrackState::NumberOfMeasurementTypes]
Definition TrackDiff.h:114
int m_missed[Trk::TrackState::NumberOfMeasurementTypes]
Definition TrackDiff.h:118
std::vector< int > * m_isFake
vector<bool> would be more efficient, but vector<bool> is not a normal vector<> and seems to make tro...
Definition TrackDiff.h:130
int m_wrongTypeSum[Trk::TrackState::NumberOfMeasurementTypes]
Definition TrackDiff.h:153
std::vector< float > * m_sumAssignProb
Definition TrackDiff.h:140
int m_refType[Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes]
Definition TrackDiff.h:122
std::string m_ntupleTreeName
jobOption: Ntuple tree name
Definition TrackDiff.h:105
int m_fakeType[Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes]
Definition TrackDiff.h:121
Trk::TrackState::MeasurementType detectorType(const Trk::RIO_OnTrack &ROT, std::string &detTypeName) const
get detector type and name by identifier of Trk::RIO_OnTrack
bool m_compareOutliers
jobOption: compare track states of type "outlier"
Definition TrackDiff.h:107
int m_missedSum[Trk::TrackState::NumberOfMeasurementTypes]
Definition TrackDiff.h:152
std::vector< int > * m_isPRD_Mismatch
Definition TrackDiff.h:132
int m_PRD_MismatchesSum[Trk::TrackState::NumberOfMeasurementTypes]
Definition TrackDiff.h:154
std::vector< int > * m_detectorType
Definition TrackDiff.h:129
StatusCode initialize()
int m_wrongType[Trk::TrackState::NumberOfMeasurementTypes]
Definition TrackDiff.h:119
int m_fakesSum[Trk::TrackState::NumberOfMeasurementTypes]
Definition TrackDiff.h:151
bool m_compareAll
jobOption: compare track states of all types
Definition TrackDiff.h:108
std::string m_ntupleDirName
jobOption: Ntuple directory name
Definition TrackDiff.h:104
int m_nCompStatesSum[Trk::TrackState::NumberOfMeasurementTypes]
Definition TrackDiff.h:150
int m_compareType[Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes]
Definition TrackDiff.h:123
std::string m_ntupleFileName
jobOption: Ntuple file name
Definition TrackDiff.h:103
std::vector< float > * m_surfZ
Definition TrackDiff.h:143
int m_missingType[Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes]
Definition TrackDiff.h:120
TTree * m_nt
Pointer to the NTuple tree.
Definition TrackDiff.h:98
std::vector< float > * m_maxAssignProb
Definition TrackDiff.h:139
std::vector< int > * m_compIsMeasurement
Definition TrackDiff.h:137
bool m_writeCompetingROT
jobOption: write data about TrkCompetingRIOsOnTrack?
Definition TrackDiff.h:110
DataVector< const Trk::TrackStateData > * extractDataFromTrack(const Trk::Track &) const
extract data from a Trk::Track into a list of Trk::TrackStateData
std::vector< int > * m_isMissing
Definition TrackDiff.h:131
int m_fakes[Trk::TrackState::NumberOfMeasurementTypes]
Definition TrackDiff.h:116
AtlasDetectorID * m_idHelper
Used to find out the sub-det from PRD->identify().
Definition TrackDiff.h:100
std::vector< int > * m_isFlippedSign
Definition TrackDiff.h:133
std::vector< float > * m_surfX
Definition TrackDiff.h:141
virtual StatusCode diff(const Trk::Track &referenceTrack, const Trk::Track &comparedTrack)
diff of two given tracks
std::vector< float > * m_surfY
Definition TrackDiff.h:142
std::vector< int > * m_refIsMeasurement
Definition TrackDiff.h:135
bool diffStateInfo(const Trk::TrackStateData *refTrackStateData, const Trk::TrackStateData *compareTrackStateData)
diff of two given track state data
int m_nRefStatesSum[Trk::TrackState::NumberOfMeasurementTypes]
Definition TrackDiff.h:149
std::vector< int > * m_refIsOutlier
Definition TrackDiff.h:136
bool m_writeNtuple
jobOption: write data to ntuple?
Definition TrackDiff.h:109
static const int s_maxHits
Definition TrackDiff.h:96
int m_nCompStates[Trk::TrackState::NumberOfMeasurementTypes]
Definition TrackDiff.h:115
void resetVariables()
reset the ntuple variables
Helper class for Trk::TrackDiff.
MeasurementType
enum describing the flavour of MeasurementBase
Ensure that the ATLAS eigen extensions are properly loaded.