ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCalibTrack_E.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONCALIBEXTRATREEEVENT_MUONCALIBTRACK_E_H
6#define MUONCALIBEXTRATREEEVENT_MUONCALIBTRACK_E_H
7
11
12#include <cmath>
13#include <memory>
14#include <vector>
15namespace MuonCalib {
16 class MuonCalibSegment;
25 public:
26 using CalibHitPtr = std::shared_ptr<const MuonCalibHit_E>;
27 using CalibHolePtr = std::shared_ptr<MuonCalibHole_E>;
28 using CalibSegPtr = std::shared_ptr<MuonCalibSegment>;
29 using HitVector = std::vector<CalibHitPtr>;
30 using HoleVector = std::vector<CalibHolePtr>;
31 using SegmentVector = std::vector<CalibSegPtr>;
32 MuonCalibTrack_E() = default;
33
34 static constexpr float dummy_chi2{9999.};
35 struct defineParams {
36 float x0{0.};
37 float y0{0.};
38 float z0{0.};
39 float phi{5. * M_PI};
40 float theta{0.};
41 float qOverP{0.};
42
43 int author{0};
45 int ndof{1};
46 AmgSymMatrix(5) cov{};
47 };
48
50 MuonCalibTrack_E(defineParams pars);
52
53 MuonCalibTrack_E(const MuonCalibTrack_E& pat) = default;
55 virtual ~MuonCalibTrack_E() = default;
56
57 const HitVector& hits() const;
58 HitVector& hits();
59
60 const HoleVector& holes() const;
62
63 const SegmentVector& segmetnsOnTrack() const;
65
67 unsigned int nrHits() const { return m_hits.size(); }
68 unsigned int nrHoles() const { return m_holes.size(); }
69
70 virtual float d0() const;
71 virtual float z0ip() const;
72 float x0() const;
73 float y0() const;
74 float z0() const;
75 float phi() const;
76 float theta() const;
77 float qOverP() const;
78 float p() const;
79 float pt() const;
80 float errInvP() const;
81 int author() const;
82 float chi2() const;
83 int ndof() const;
84
85 float cov00() const { return m_params.cov(0, 0); }
86 float cov01() const { return m_params.cov(0, 1); }
87 float cov02() const { return m_params.cov(0, 2); }
88 float cov03() const { return m_params.cov(0, 3); }
89 float cov04() const { return m_params.cov(0, 4); }
90 float cov11() const { return m_params.cov(1, 1); }
91 float cov12() const { return m_params.cov(1, 2); }
92 float cov13() const { return m_params.cov(1, 3); }
93 float cov14() const { return m_params.cov(1, 4); }
94 float cov22() const { return m_params.cov(2, 2); }
95 float cov23() const { return m_params.cov(2, 3); }
96 float cov24() const { return m_params.cov(2, 4); }
97 float cov33() const { return m_params.cov(3, 3); }
98 float cov34() const { return m_params.cov(3, 4); }
99 float cov44() const { return m_params.cov(4, 4); }
100
101 void setX0(float x0);
102 void setY0(float y0);
103 void setZ0(float z0);
104 void setPhi(float phi);
105 void setTheta(float theta);
106 void setQOverP(float qOverP);
107 void setAuthor(int author);
108
109 void setChi2(float chi2);
110 void setNdof(int ndof);
111
113 const Amg::Vector3D& position() const;
115 const Amg::Vector3D& direction() const;
116
117 void setCov00(float cov00) { m_params.cov(0, 0) = cov00; }
118 void setCov01(float cov01) { m_params.cov(0, 1) = cov01; }
119 void setCov02(float cov02) { m_params.cov(0, 2) = cov02; }
120 void setCov03(float cov03) { m_params.cov(0, 3) = cov03; }
121 void setCov04(float cov04) { m_params.cov(0, 4) = cov04; }
122 void setCov11(float cov11) { m_params.cov(1, 1) = cov11; }
123 void setCov12(float cov12) { m_params.cov(1, 2) = cov12; }
124 void setCov13(float cov13) { m_params.cov(1, 3) = cov13; }
125 void setCov14(float cov14) { m_params.cov(1, 4) = cov14; }
126 void setCov22(float cov22) { m_params.cov(2, 2) = cov22; }
127 void setCov23(float cov23) { m_params.cov(2, 3) = cov23; }
128 void setCov24(float cov24) { m_params.cov(2, 4) = cov24; }
129 void setCov33(float cov33) { m_params.cov(3, 3) = cov33; }
130 void setCov34(float cov34) { m_params.cov(3, 4) = cov34; }
131 void setCov44(float cov44) { m_params.cov(4, 4) = cov44; }
132
133 void addHit(const CalibHitPtr& hit);
134 void addHole(const CalibHolePtr& hole);
135 void addSegmentOnTrack(const CalibSegPtr& s);
136
137 private:
139 void clear();
140
144
146 Amg::Vector3D m_pos{0., 0., 0.};
147 Amg::Vector3D m_dir{0., 0., 1.};
148 };
149
150} // namespace MuonCalib
151
152#endif // MUONCALIBTRACK_E_H
#define M_PI
Scalar phi() const
phi method
Scalar theta() const
theta method
A MuonCalibSegment is a reconstructed three dimensional track segment in the MuonSpectrometer.
int author() const
returns the author
void setAuthor(int author)
sets author
const SegmentVector & segmetnsOnTrack() const
virtual float z0ip() const
returns trackparameter z0 at IP
void addHole(const CalibHolePtr &hole)
Add a MuonCalib::MuonCalibHole_E to the track.
int ndof() const
returns the number of degrees of freedom
float cov33() const
returns the covariance matrix elements
void setTheta(float theta)
sets trackparameter theta
void setCov00(float cov00)
sets covariance matrix
std::vector< CalibHitPtr > HitVector
typedef of a set of MuonCalib::MuonCalibHit_E s
void setCov23(float cov23)
sets covariance matrix
void setCov44(float cov44)
sets covariance matrix
void setChi2(float chi2)
sets track chi2
float phi() const
returns trackparameter phi
float cov04() const
returns the covariance matrix elements
MuonCalibTrack_E(const MuonCalibTrack_E &pat)=default
destructor
std::shared_ptr< MuonCalibSegment > CalibSegPtr
float cov03() const
returns the covariance matrix elements
float cov11() const
returns the covariance matrix elements
const Amg::Vector3D & position() const
position of perigee of track
void setCov02(float cov02)
sets covariance matrix
void setX0(float x0)
sets trackparameter x0
MuonCalibTrack_E & operator=(const MuonCalibTrack_E &rhs)=default
assignment operator
void setCov01(float cov01)
sets covariance matrix
void setPhi(float phi)
sets trackparameter phi
void setCov14(float cov14)
sets covariance matrix
void setNdof(int ndof)
sets ndof
void setY0(float y0)
sets trackparameter y0
MuonCalibTrack_E()=default
default constructor
void setZ0(float z0)
sets trackparameter z0
static constexpr float dummy_chi2
float pt() const
returns pt
float cov22() const
returns the covariance matrix elements
float cov14() const
returns the covariance matrix elements
const HitVector & hits() const
unsigned int nrHoles() const
returns number of MuonCalib::MuonCalibHole_E s on track
void setCov33(float cov33)
sets covariance matrix
HoleVector m_holes
set of MuonCalib::MuonCalibHole_E s on track
void setCov13(float cov13)
sets covariance matrix
std::vector< CalibSegPtr > SegmentVector
void addSegmentOnTrack(const CalibSegPtr &s)
void setCov04(float cov04)
sets covariance matrix
float theta() const
returns trackparameter theta
float cov24() const
returns the covariance matrix elements
float y0() const
returns trackparameter y0
float qOverP() const
returns trackparameter q/p
void addHit(const CalibHitPtr &hit)
Add a MuonCalib::MuonCalibHit_E to the track.
float z0() const
returns trackparameter z0
unsigned int nrHits() const
returns number of MuonCalib::MuonCalibHit_E s on track
float cov44() const
returns the covariance matrix elements
std::vector< CalibHolePtr > HoleVector
typedef of a set of MuonCalib::MuonCalibHole_E s
void clear()
Add a Segment on Track.
float p() const
returns momentum
float chi2() const
returns track chi2
float x0() const
returns trackparameter x0
std::shared_ptr< const MuonCalibHit_E > CalibHitPtr
float cov02() const
returns the covariance matrix elements
float cov00() const
returns the covariance matrix elements
float errInvP() const
returns the error**2 on trackparameter q/p
void setCov34(float cov34)
sets covariance matrix
const Amg::Vector3D & direction() const
direction of perigee of track
float cov01() const
returns the covariance matrix elements
const HoleVector & holes() const
float cov13() const
returns the covariance matrix elements
float cov23() const
returns the covariance matrix elements
void setCov24(float cov24)
sets covariance matrix
void setQOverP(float qOverP)
sets trackparameter q/p
void setCov03(float cov03)
sets covariance matrix
virtual ~MuonCalibTrack_E()=default
std::shared_ptr< MuonCalibHole_E > CalibHolePtr
float cov12() const
returns the covariance matrix elements
HitVector m_hits
set of MuonCalib::MuonCalibHit_E s on track
void setCov12(float cov12)
sets covariance matrix
virtual float d0() const
returns trackparameter d0
float cov34() const
returns the covariance matrix elements
void setCov11(float cov11)
sets covariance matrix
void setCov22(float cov22)
sets covariance matrix
double chi2(TH1 *h0, TH1 *h1)
Eigen::Matrix< double, 3, 1 > Vector3D
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
constructor setting all trackparameters and position