ATLAS Offline Software
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 
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 
101  TrigInDetTrackFitPar (const double a0,
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 
120  TrigInDetTrackFitPar (const double a0,
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),
129  m_epT(0.0), m_cov(cov), m_surfaceType(PERIGEE),
130  m_surfaceCoordinate(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 
141  TrigInDetTrackFitPar (const double a0,
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 
274 CLASS_DEF( TrigInDetTrackFitPar , 159201573 , 1 )
275 CLASS_DEF( DataVector<TrigInDetTrackFitPar> , 99002908 , 1 )
276 
277 #endif
278 
279 
280 
281 
282 
283 
TrigInDetTrackFitPar::operator=
TrigInDetTrackFitPar & operator=(TrigInDetTrackFitPar &&rhs)
Move assignment.
Definition: TrigInDetTrackFitPar.h:185
TrigInDetTrackFitPar::pT
double pT() const
transverse momentum
Definition: TrigInDetTrackFitPar.h:240
TrigInDetTrackFitPar::ez0
double ez0() const
variance of longitudinal impact parameter
Definition: TrigInDetTrackFitPar.h:244
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
TrigInDetTrackFitPar::m_epT
double m_epT
Definition: TrigInDetTrackFitPar.h:268
TrigInDetTrackFitPar::PERIGEE
@ PERIGEE
Definition: TrigInDetTrackFitPar.h:72
TrigInDetTrackFitPar::m_a0
double m_a0
see detailed description below
Definition: TrigInDetTrackFitPar.h:259
TrigInDetTrackFitPar::m_phi0
double m_phi0
see detailed description below
Definition: TrigInDetTrackFitPar.h:260
TrigInDetTrackFitPar::surfaceCoordinate
void surfaceCoordinate(double c)
Setter: surface reference coordinate for non-perigee surfaces.
Definition: TrigInDetTrackFitPar.h:228
TrigInDetTrackFitPar::TrigInDetTrackFitPar
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.
Definition: TrigInDetTrackFitPar.h:141
TrigInDetTrackFitPar::m_eta
double m_eta
pseudorapidity
Definition: TrigInDetTrackFitPar.h:262
TrigInDetTrackFitPar
Definition: TrigInDetTrackFitPar.h:68
TrigInDetTrackFitPar::surfaceType
TrigSurfaceType surfaceType() const
surface type
Definition: TrigInDetTrackFitPar.h:254
TrigInDetTrackFitPar::TrigInDetTrackFitPar
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.
Definition: TrigInDetTrackFitPar.h:120
TrigInDetTrackFitPar::z0
double z0() const
longitudinal impact parameter
Definition: TrigInDetTrackFitPar.h:234
TrigInDetTrackFitPar::eta
void eta(const double eta)
Setter: pseudorapidity.
Definition: TrigInDetTrackFitPar.h:220
TrigInDetTrackFitPar::epT
double epT() const
variance of transverse momentum
Definition: TrigInDetTrackFitPar.h:250
TrigInDetTrackFitPar::z0
void z0(const double z0)
Setter: longitudinal impact parameter.
Definition: TrigInDetTrackFitPar.h:216
TrigInDetTrackFitPar::TrigInDetTrackFitPar
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.
Definition: TrigInDetTrackFitPar.h:101
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
TrigInDetTrackFitPar::cov
const std::vector< double > * cov() const
covariance (packed) of track parameters
Definition: TrigInDetTrackFitPar.h:252
TrigInDetTrackFitPar::m_pT
double m_pT
transverse momentum
Definition: TrigInDetTrackFitPar.h:263
TrigInDetTrackFitPar::surfaceCoordinate
double surfaceCoordinate() const
surface reference coordinate (radius or z-position) for non-perigee parameters
Definition: TrigInDetTrackFitPar.h:256
TrigInDetTrackFitPar::a0
double a0() const
transverse impact parameter
Definition: TrigInDetTrackFitPar.h:232
TrigInDetTrackFitPar::m_surfaceType
TrigSurfaceType m_surfaceType
type of track parameters - perigee, barrel, or endcap
Definition: TrigInDetTrackFitPar.h:270
TrigInDetTrackFitPar::m_surfaceCoordinate
double m_surfaceCoordinate
barrel radius or z of endcap disk
Definition: TrigInDetTrackFitPar.h:271
TrigInDetTrackFitPar::UNDEFINED
@ UNDEFINED
Definition: TrigInDetTrackFitPar.h:72
TrigInDetTrackFitPar::m_eeta
double m_eeta
Definition: TrigInDetTrackFitPar.h:267
TrigInDetTrackFitPar::TrigSurfaceType
TrigSurfaceType
Definition: TrigInDetTrackFitPar.h:72
TrigInDetTrackFitPar::surfaceType
void surfaceType(TrigSurfaceType s)
Setter: surface type PERIGEE=0, BARREL=1, ENDCAP=2.
Definition: TrigInDetTrackFitPar.h:226
TrigInDetTrackFitPar::m_ez0
double m_ez0
Definition: TrigInDetTrackFitPar.h:266
TrigInDetTrackFitPar::cov
void cov(const std::vector< double > *cov)
Setter: covariance matrix of track parameters.
Definition: TrigInDetTrackFitPar.h:224
TrigInDetTrackFitPar::~TrigInDetTrackFitPar
~TrigInDetTrackFitPar()
Destructor.
Definition: TrigInDetTrackFitPar.h:209
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
TrigInDetTrackFitPar::eeta
double eeta() const
variance of pseudorapidity
Definition: TrigInDetTrackFitPar.h:248
TrigInDetTrackFitPar::ea0
double ea0() const
variance of transverse impact parameter
Definition: TrigInDetTrackFitPar.h:242
TrigInDetTrackFitPar::TrigInDetTrackFitPar
TrigInDetTrackFitPar()
Constructor for POOL only.
Definition: TrigInDetTrackFitPar.h:75
TrigInDetTrackFitPar::ephi0
double ephi0() const
variance of azimuthal angle of the momentum
Definition: TrigInDetTrackFitPar.h:246
TrigInDetTrackFitPar::m_ephi0
double m_ephi0
Definition: TrigInDetTrackFitPar.h:265
TrigInDetTrackFitPar::m_cov
const std::vector< double > * m_cov
covariance matrix packed as described below
Definition: TrigInDetTrackFitPar.h:269
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
TrigInDetTrackFitPar::a0
void a0(const double a0)
Setter: transverse impact parameter.
Definition: TrigInDetTrackFitPar.h:214
TrigInDetTrackFitPar::TrigInDetTrackFitPar
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.
Definition: TrigInDetTrackFitPar.h:82
TrigInDetTrackFitPar::ENDCAP
@ ENDCAP
Definition: TrigInDetTrackFitPar.h:72
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:67
TrigInDetTrackFitPar::m_z0
double m_z0
see detailed description below
Definition: TrigInDetTrackFitPar.h:261
TrigInDetTrackFitPar::phi0
double phi0() const
azimuthal angle of the momentum
Definition: TrigInDetTrackFitPar.h:236
TrigInDetTrackFitPar::m_ea0
double m_ea0
Definition: TrigInDetTrackFitPar.h:264
TrigInDetTrackFitPar::eta
double eta() const
pseudorapidity
Definition: TrigInDetTrackFitPar.h:238
TrigInDetTrackFitPar::BARREL
@ BARREL
Definition: TrigInDetTrackFitPar.h:72
TrigInDetTrackFitPar::phi0
void phi0(const double phi0)
Setter: azimuthal angle of the momentum.
Definition: TrigInDetTrackFitPar.h:218
python.compressB64.c
def c
Definition: compressB64.py:93
CLASS_DEF.h
macros to associate a CLID to a type
TrigInDetTrackFitPar::pT
void pT(const double pT)
Setter: transverse momentum.
Definition: TrigInDetTrackFitPar.h:222
TrigInDetTrackFitPar::TrigInDetTrackFitPar
TrigInDetTrackFitPar(const TrigInDetTrackFitPar &rhs)
Copy constructor.
Definition: TrigInDetTrackFitPar.h:164