ATLAS Offline Software
Loading...
Searching...
No Matches
TrigInDetTrackFitPar.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGINDETTRACKFITPAR_H
6#define TRIGINDETTRACKFITPAR_H
9#include <vector>
10#include <cmath>
11
67
69
70 public:
71
73
76 m_a0(0.0), m_phi0(0.0), m_z0(0.0),m_eta(0.0), m_pT(0.0),
77 m_ea0(0.0), m_ephi0(0.0), m_ez0(0.0), m_eeta(0.0), m_epT(0.0),
79 {};
80
82 TrigInDetTrackFitPar (const double a0,
83 const double phi0,
84 const double z0,
85 const double eta,
86 const double pT,
87 const double ea0,
88 const double ephi0,
89 const double ez0,
90 const double eeta,
91 const double epT,
92 const std::vector<double>* cov=0) :
93 m_a0(a0), m_phi0(phi0), m_z0(z0),
97 {};
98
99
102 const double phi0,
103 const double z0,
104 const double eta,
105 const double pT,
106 const double ea0,
107 const double ephi0,
108 const double ez0,
109 const double eeta,
110 const double epT,
111 const TrigSurfaceType t,
112 const double c,
113 const std::vector<double>* cov=0) :
114 m_a0(a0), m_phi0(phi0), m_z0(z0),
117 {};
118
121 const double phi0,
122 const double z0,
123 const double eta,
124 const double pT,
125 const std::vector<double>* cov=0) :
126 m_a0(a0), m_phi0(phi0), m_z0(z0),
127 m_eta(eta), m_pT(pT),
128 m_ea0(0.0), m_ephi0(0.0), m_ez0(0.0), m_eeta(0.0),
131 if(cov!=NULL) {
132 if((*cov)[0]>=0.0) m_ea0 = sqrt((*cov)[0]);
133 if((*cov)[5]>=0.0) m_ephi0 = sqrt((*cov)[5]);
134 if((*cov)[9]>=0.0) m_ez0 = sqrt((*cov)[9]);
135 if((*cov)[12]>=0.0) m_eeta = sqrt((*cov)[12]);
136 if((*cov)[14]>=0.0) m_epT = sqrt((*cov)[14]);
137 }
138 }
139
142 const double phi0,
143 const double z0,
144 const double eta,
145 const double pT,
146 const TrigSurfaceType t,
147 const double c,
148 const std::vector<double>* cov=0) :
149 m_a0(a0), m_phi0(phi0), m_z0(z0),
150 m_eta(eta), m_pT(pT),
151 m_ea0(0.0), m_ephi0(0.0), m_ez0(0.0), m_eeta(0.0), m_epT(0.0), m_cov(cov), m_surfaceType(t),
153 {
154 if(cov!=NULL) {
155 if((*cov)[0]>=0.0) m_ea0 = sqrt((*cov)[0]);
156 if((*cov)[5]>=0.0) m_ephi0 = sqrt((*cov)[5]);
157 if((*cov)[9]>=0.0) m_ez0 = sqrt((*cov)[9]);
158 if((*cov)[12]>=0.0) m_eeta = sqrt((*cov)[12]);
159 if((*cov)[14]>=0.0) m_epT = sqrt((*cov)[14]);
160 }
161 }
162
165 : m_a0 (rhs.m_a0),
166 m_phi0 (rhs.m_phi0),
167 m_z0 (rhs.m_z0),
168 m_eta (rhs.m_eta),
169 m_pT (rhs.m_pT),
170 m_ea0 (rhs.m_ea0),
171 m_ephi0 (rhs.m_ephi0),
172 m_ez0 (rhs.m_ez0),
173 m_eeta (rhs.m_eeta),
174 m_epT (rhs.m_epT),
177 {
178 if (rhs.m_cov)
179 m_cov = new std::vector<double> (*rhs.m_cov);
180 else
181 m_cov = nullptr;
182 }
183
186 {
187 if (this != &rhs) {
188 m_a0 = rhs.m_a0;
189 m_phi0 = rhs.m_phi0;
190 m_z0 = rhs.m_z0;
191 m_eta = rhs.m_eta;
192 m_pT = rhs.m_pT;
193 m_ea0 = rhs.m_ea0;
194 m_ephi0 = rhs.m_ephi0;
195 m_ez0 = rhs.m_ez0;
196 m_eeta = rhs.m_eeta;
197 m_epT = rhs.m_epT;
198 m_surfaceType = rhs.m_surfaceType;
199 m_surfaceCoordinate = rhs.m_surfaceCoordinate;
200
201 delete m_cov;
202 m_cov = rhs.m_cov;
203 rhs.m_cov = nullptr;
204 }
205 return *this;
206 }
207
210
211
212 // Methods to set data members
214 void a0 ( const double a0 ) { m_a0 = a0; }
216 void z0 ( const double z0 ) { m_z0 = z0; }
218 void phi0( const double phi0 ) { m_phi0 = phi0; }
220 void eta ( const double eta ) { m_eta = eta; }
222 void pT ( const double pT ) { m_pT = pT; }
224 void cov ( const std::vector<double>* cov ) { m_cov = cov; }
229
230 // Methods to retrieve data members
232 double a0() const { return m_a0; }
234 double z0() const { return m_z0; }
236 double phi0() const { return m_phi0; }
238 double eta() const { return m_eta; }
240 double pT() const { return m_pT; }
242 double ea0() const { return m_ea0; }
244 double ez0() const { return m_ez0; }
246 double ephi0() const { return m_ephi0; }
248 double eeta() const { return m_eeta; }
250 double epT() const { return m_epT; }
252 const std::vector<double>* cov() const { return m_cov; }
256 double surfaceCoordinate() const { return m_surfaceCoordinate; }
257
258 private:
259 double m_a0;
260 double m_phi0;
261 double m_z0;
262 double m_eta;
263 double m_pT;
264 double m_ea0;
265 double m_ephi0;
266 double m_ez0;
267 double m_eeta;
268 double m_epT;
269 const std::vector<double>* m_cov;
272};
273
274CLASS_DEF( TrigInDetTrackFitPar , 159201573 , 1 )
276
277#endif
278
279
280
281
282
283
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
An STL vector of pointers that by default owns its pointed-to elements.
Derived DataVector<T>.
Definition DataVector.h:795
encapsulates LVL2 track parameters and covariance matrix The vector of track parameters consists of
void surfaceCoordinate(double c)
Setter: surface reference coordinate for non-perigee surfaces.
const std::vector< double > * m_cov
covariance matrix packed as described below
TrigInDetTrackFitPar & operator=(TrigInDetTrackFitPar &&rhs)
Move assignment.
const std::vector< double > * cov() const
covariance (packed) of track parameters
double m_eta
pseudorapidity
void eta(const double eta)
Setter: pseudorapidity.
void z0(const double z0)
Setter: longitudinal impact parameter.
TrigInDetTrackFitPar(const double a0, const double phi0, const double z0, const double eta, const double pT, const std::vector< double > *cov=0)
Constructor for PERIGEE parameters without errors or covariance.
double m_pT
transverse momentum
TrigInDetTrackFitPar(const double a0, const double phi0, const double z0, const double eta, const double pT, const double ea0, const double ephi0, const double ez0, const double eeta, const double epT, const TrigSurfaceType t, const double c, const std::vector< double > *cov=0)
Constructor for parameters on non-PERIGEE surface.
double m_phi0
see detailed description below
double ea0() const
variance of transverse impact parameter
TrigInDetTrackFitPar()
Constructor for POOL only.
void phi0(const double phi0)
Setter: azimuthal angle of the momentum.
TrigSurfaceType surfaceType() const
surface type
double eta() const
pseudorapidity
double surfaceCoordinate() const
surface reference coordinate (radius or z-position) for non-perigee parameters
void a0(const double a0)
Setter: transverse impact parameter.
double m_z0
see detailed description below
double eeta() const
variance of pseudorapidity
double a0() const
transverse impact parameter
TrigInDetTrackFitPar(const double a0, const double phi0, const double z0, const double eta, const double pT, const double ea0, const double ephi0, const double ez0, const double eeta, const double epT, const std::vector< double > *cov=0)
Constructor for parameters on PERIGEE surface.
void surfaceType(TrigSurfaceType s)
Setter: surface type PERIGEE=0, BARREL=1, ENDCAP=2.
TrigInDetTrackFitPar(const TrigInDetTrackFitPar &rhs)
Copy constructor.
TrigSurfaceType m_surfaceType
type of track parameters - perigee, barrel, or endcap
double ez0() const
variance of longitudinal impact parameter
double z0() const
longitudinal impact parameter
TrigInDetTrackFitPar(const double a0, const double phi0, const double z0, const double eta, const double pT, const TrigSurfaceType t, const double c, const std::vector< double > *cov=0)
Constructor for non-PERIGEE parameters without errors or covariance.
double m_surfaceCoordinate
barrel radius or z of endcap disk
double pT() const
transverse momentum
double m_a0
see detailed description below
void cov(const std::vector< double > *cov)
Setter: covariance matrix of track parameters.
double ephi0() const
variance of azimuthal angle of the momentum
double epT() const
variance of transverse momentum
void pT(const double pT)
Setter: transverse momentum.
double phi0() const
azimuthal angle of the momentum