ATLAS Offline Software
Loading...
Searching...
No Matches
TrigInDetTrack.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGINDETTRACK_H
6#define TRIGINDETTRACK_H
11#include "Identifier/Identifier.h"
12#include <map>
13#include <ostream>
14#include "GaudiKernel/MsgStream.h"
15
16
33
35
36 public:
40
43 // m_trkID(-1),
44 m_algId(NULLID), m_param(NULL), m_endParam(NULL),
45 m_chi2(-1.0), m_siSpacePoints(NULL), m_trtDriftCircles(NULL)
46 {
47 m_NStrawHits=-1;
48 m_NStraw=-1;
49 m_NStrawTime=-1;
50 m_NTRHits=-1;
54 };
55
59 const double chi2=0) :
60 // m_trkID(-1),
63 {
64 m_NStrawHits=-1;
65 m_NStraw=-1;
66 m_NStrawTime=-1;
67 m_NTRHits=-1;
71 };
72
74 TrigInDetTrack (std::vector<const TrigSiSpacePoint*>* siSpacePoints,
75 const TrigInDetTrackFitPar* param = 0,
77 const double chi2=0) :
78 // m_trkID(-1),
81 {
82 m_NStrawHits=-1;
83 m_NStraw=-1;
84 m_NStrawTime=-1;
85 m_NTRHits=-1;
90 }
91
92 // Constructor with a list of DriftCircles
93 TrigInDetTrack (std::vector<const InDet::TRT_DriftCircle*>* driftCircles,
94 const TrigInDetTrackFitPar* param = 0,
96 const double chi2=0) :
97 // m_trkID(-1),
99 m_siSpacePoints(NULL), m_trtDriftCircles(driftCircles)
100 {
101 m_NStrawHits=-1;
102 m_NStraw=-1;
103 m_NStrawTime=-1;
104 m_NTRHits=-1;
107 m_HitPattern=0;
108 }
109
112
114
117 if(m_param) delete m_param;
118 if(m_endParam) delete m_endParam;
121 }
122
123 // Methods to set data members
124 //void trackId(const int id) { m_trkID = id;}
125 void algorithmId(const AlgoId id) { m_algId = id;}
128 void chi2 ( const double chi2) { m_chi2 = chi2; }
129 void StrawHits (const int NSHits ) { m_NStrawHits = NSHits;}
130 void Straw (const int NS ) { m_NStraw = NS ;}
131 void StrawTime (const int NSTime ) { m_NStrawTime = NSTime;}
132 void TRHits (const int NTR ) { m_NTRHits = NTR ;}
133 void NPixelSpacePoints(const int n){ m_NPixelSpacePoints = n;}
134 void NSCT_SpacePoints(const int n) { m_NSCT_SpacePoints = n;}
135
136 void siSpacePoints ( std::vector<const TrigSiSpacePoint*>* spacePoints ) {
137 m_siSpacePoints = spacePoints;
139 }
140 void trtDriftCircles(std::vector<const InDet::TRT_DriftCircle*>* driftCircles) {
141 m_trtDriftCircles = driftCircles;
142 }
143
144 void HitPattern(const long hp) { m_HitPattern = hp;}
145
146 // Methods to retrieve data members
147 //int trackId() const { return m_trkID; }
149 AlgoId algorithmId() const { return m_algId; }
151 const TrigInDetTrackFitPar* param() const { return m_param; }
153 const TrigInDetTrackFitPar* endParam() const { return m_endParam; }
155 double chi2() const { return m_chi2; }
157 std::vector <const TrigSiSpacePoint*>* siSpacePoints() { return m_siSpacePoints; }
158 const std::vector <const TrigSiSpacePoint*>* siSpacePoints() const { return m_siSpacePoints; }
159
161 inline int NPixelSpacePoints() const { return m_NPixelSpacePoints;}
163 inline int NSCT_SpacePoints() const { return m_NSCT_SpacePoints;}
165 inline long HitPattern() const { return m_HitPattern;}
166
167 //Sivokl: add TRT info
169 inline int NStrawHits() const { return m_NStrawHits; }
171 inline int NStraw() const { return m_NStraw; }
173 inline int NStrawTime() const { return m_NStrawTime; }
175 inline int NTRHits() const { return m_NTRHits; }
177 std::vector<const InDet::TRT_DriftCircle*>* trtDriftCircles() {
178 return m_trtDriftCircles;
179 }
180 const std::vector<const InDet::TRT_DriftCircle*>* trtDriftCircles() const {
181 return m_trtDriftCircles;
182 }
183
184 const std::vector<Identifier>& rdoList() const {
185 return m_rdoList;
186 }
187
188 void rdoList (std::vector<Identifier>&& l)
189 {
190 m_rdoList = std::move (l);
191 }
192
194 m_rdoList.clear();
195 }
196
197 void fillRdoList();
198
199 private:
200 //int m_trkID;
204 double m_chi2;
212 std::vector<const TrigSiSpacePoint*>* m_siSpacePoints;
213 std::vector<const InDet::TRT_DriftCircle*>* m_trtDriftCircles;
214 void fillSiHitInfo();
215
216 std::vector<Identifier> m_rdoList;
217};
218
219std::string str( const TrigInDetTrack& t ); //<! printing helper
220MsgStream& operator<< ( MsgStream& m, const TrigInDetTrack& t ); //<! printing helper (wraps above)
221bool operator== ( const TrigInDetTrack& a, const TrigInDetTrack& b );
222inline bool operator!= ( const TrigInDetTrack& a, const TrigInDetTrack& b ) { return !(a==b); }
223
231void diff( const TrigInDetTrack& a, const TrigInDetTrack& b, std::map<std::string, double>& variableChange );
232
233
234CLASS_DEF( TrigInDetTrack , 256636597 , 1 )
235
236
237#endif
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
static Double_t a
MsgStream & operator<<(MsgStream &m, const TrigInDetTrack &t)
bool operator==(const TrigInDetTrack &a, const TrigInDetTrack &b)
bool operator!=(const TrigInDetTrack &a, const TrigInDetTrack &b)
void diff(const TrigInDetTrack &a, const TrigInDetTrack &b, std::map< std::string, double > &variableChange)
comparison with feedback Function compares two objects and returns "semi verbose" output in the form ...
encapsulates LVL2 track parameters and covariance matrix The vector of track parameters consists of
represents a LVL2 ID track
int NStrawTime() const
Number of TRT straws with valid drift time intersected by track.
long HitPattern() const
Hit pattern of silicon spacepoints.
void rdoList(std::vector< Identifier > &&l)
TrigInDetTrack()
Constructors: POOL needs default constructor.
AlgoId algorithmId() const
Track author SiTrack = 1, IdScan = 2, TrtXK = 4.
void algorithmId(const AlgoId id)
TrigInDetTrack(const TrigInDetTrack &)=delete
void StrawTime(const int NSTime)
TrigInDetTrack(std::vector< const InDet::TRT_DriftCircle * > *driftCircles, const TrigInDetTrackFitPar *param=0, const TrigInDetTrackFitPar *endParam=0, const double chi2=0)
int NPixelSpacePoints() const
Number of Pixel spacepoints associated with track.
void TRHits(const int NTR)
std::vector< const InDet::TRT_DriftCircle * > * m_trtDriftCircles
void siSpacePoints(std::vector< const TrigSiSpacePoint * > *spacePoints)
std::vector< const TrigSiSpacePoint * > * siSpacePoints()
Pixel and SCT spacepoints associated with track.
void StrawHits(const int NSHits)
void HitPattern(const long hp)
Hit pattern setter method.
void NPixelSpacePoints(const int n)
TrigInDetTrack(std::vector< const TrigSiSpacePoint * > *siSpacePoints, const TrigInDetTrackFitPar *param=0, const TrigInDetTrackFitPar *endParam=0, const double chi2=0)
Constructor with a list of points.
~TrigInDetTrack()
Destructor.
const std::vector< const TrigSiSpacePoint * > * siSpacePoints() const
const std::vector< const InDet::TRT_DriftCircle * > * trtDriftCircles() const
int NTRHits() const
Number of high-threshold TRT hits associated with track.
void NSCT_SpacePoints(const int n)
double chi2() const
Chi2 of the track fit normalized on number of DOF.
std::vector< const InDet::TRT_DriftCircle * > * trtDriftCircles()
TRT drift circles associated with track.
void chi2(const double chi2)
const TrigInDetTrackFitPar * m_param
std::vector< const TrigSiSpacePoint * > * m_siSpacePoints
const TrigInDetTrackFitPar * m_endParam
int NStrawHits() const
Number of TRT hits associated with track.
TrigInDetTrack(const TrigInDetTrackFitPar *param, const TrigInDetTrackFitPar *endParam=0, const double chi2=0)
Constructor with no space points or drift circles.
void param(const TrigInDetTrackFitPar *param)
const TrigInDetTrackFitPar * endParam() const
Track parameters (class TrigInDetTrackFitPar) at end of track.
const std::vector< Identifier > & rdoList() const
RDOs associated with track.
int NStraw() const
Number of TRT straws intersected by track.
TrigInDetTrack & operator=(const TrigInDetTrack &)=delete
std::vector< Identifier > m_rdoList
void Straw(const int NS)
void trtDriftCircles(std::vector< const InDet::TRT_DriftCircle * > *driftCircles)
void endParam(const TrigInDetTrackFitPar *param)
const TrigInDetTrackFitPar * param() const
Track parameters (class TrigInDetTrackFitPar) at start of track.
int NSCT_SpacePoints() const
Number of SCT spacepoints associated with track.
header for factorised IRoiDescriptor interface