ATLAS Offline Software
Loading...
Searching...
No Matches
MuonHoughPattern.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 MUONHOUGHPATTERNEVENT_MUONHOUGHPATTERN_H
6#define MUONHOUGHPATTERNEVENT_MUONHOUGHPATTERN_H
7
12namespace MuonHough {
15} // namespace MuonHough
16
19
20public:
22 MuonHoughPattern(int id_number);
23
25 virtual ~MuonHoughPattern() = default;
26
28 void resetTracksegment();
29
31 bool hitInHoughPattern(const std::shared_ptr<MuonHoughHit>& hit) const;
32
34 double calculateEZ() const;
36 double patternLength() const;
37
39 void printHoughPattern() const;
40
42 int getIdNumber() const;
43
45 double getEPhi() const;
47 double getERPhi() const;
49 double getETheta() const;
51 double getERTheta() const;
53 double getECurvature() const;
55 double getMaximumHistogram() const;
56
58 void setEPhi(double ephi);
60 void setERPhi(double erphi);
62 void setETheta(double etheta);
64 void setERTheta(double ertheta);
66 void setECurvature(double curvature);
68 void setMaximumHistogram(double maximumhistogram);
69
71 double getEAngle() const;
73 double getER() const;
75 void setEAngle(double eangle);
77 void setER(double er);
78
80 void setWhichSegment(bool which_segment);
81
83 Amg::Vector3D getEPos() const;
85 Amg::Vector3D getEDir() const;
86
88 void updateParametersRPhi(bool cosmics = false);
89
91
92private:
94 int m_id_number{-1};
95
98 bool m_whichsegment{false};
99
101 double m_ephi{-M_PI_2};
103 double m_erphi{0.};
105 double m_etheta{M_PI_2};
107 double m_ertheta{0.};
109 double m_ecurvature{1.};
112};
113
114inline int MuonHoughPattern::getIdNumber() const { return m_id_number; }
115
116inline double MuonHoughPattern::getEPhi() const { return m_ephi; }
117inline double MuonHoughPattern::getERPhi() const { return m_erphi; }
118inline double MuonHoughPattern::getETheta() const { return m_etheta; }
119inline double MuonHoughPattern::getERTheta() const { return m_ertheta; }
120inline double MuonHoughPattern::getECurvature() const { return m_ecurvature; }
122
123inline void MuonHoughPattern::setEPhi(double ephi) { m_ephi = ephi; }
124inline void MuonHoughPattern::setERPhi(double erphi) { m_erphi = erphi; }
125inline void MuonHoughPattern::setETheta(double etheta) { m_etheta = etheta; }
126inline void MuonHoughPattern::setERTheta(double ertheta) { m_ertheta = ertheta; }
127inline void MuonHoughPattern::setECurvature(double ecurvature) { m_ecurvature = ecurvature; }
128inline void MuonHoughPattern::setMaximumHistogram(double maximumhistogram) { m_maximumhistogram = maximumhistogram; }
129
130inline void MuonHoughPattern::setWhichSegment(bool which_segment) { m_whichsegment = which_segment; }
131#endif // MUONHOUGHPATTERNEVENT_MUONHOUGHPATTERN_H
An STL vector of pointers that by default owns its pointed-to elements.
Derived DataVector<T>.
Definition DataVector.h:795
MuonHoughHitContainer()=default
MuonHoughHitContainer does own its hits all added hits should be 'newed', except when m_ownhits==fals...
Amg::Vector3D getEPos() const
calulates 3d point closest to ip
double m_ephi
phi in rad
double m_ertheta
z0 in mm
void printHoughPattern() const
prints out info about hough pattern
double getEPhi() const
returns phi of pattern
double getERTheta() const
returns z0 of pattern
void setETheta(double etheta)
set theta of pattern
void setERPhi(double erphi)
set r0 of pattern
double m_ecurvature
curvature of pattern in rz plane in mm
int getIdNumber() const
returns id number of hough transform used to generate pattern
void updateParametersRPhi(bool cosmics=false)
update parameters in rphi plane based on weighted fit
bool m_whichsegment
which segment is pattern created in, not relevant if split search is off 0 lower segment,...
virtual ~MuonHoughPattern()=default
destructor
void setECurvature(double curvature)
set curvature of pattern
double getMaximumHistogram() const
returns maximum of histogram used to generate pattern
DataVector< MuonHoughPattern > MuonHoughPatternCollection
void resetTracksegment()
clear pattern
void setER(double er)
set radius in precision plane in mm
double calculateEZ() const
calculate estimated z-position of pattern
double patternLength() const
returns distance between first and last hit
double getERPhi() const
returns r0/d0 of pattern
double getER() const
returns radius in precision plane in mm
double getEAngle() const
returns angle in precision plane in rad
double m_maximumhistogram
maximum of histogram
bool hitInHoughPattern(const std::shared_ptr< MuonHoughHit > &hit) const
returns if hit is in pattern
void setEAngle(double eangle)
set angle in precision plane in rad
void setERTheta(double ertheta)
set z0 of pattern
Amg::Vector3D getEDir() const
calculates direction at point closest to ip
double m_erphi
r0 in mm
double m_etheta
theta in rad
double getECurvature() const
returns curvature of pattern
void setWhichSegment(bool which_segment)
set which segment pattern is in, not in use
double getETheta() const
returns theta of pattern
void setMaximumHistogram(double maximumhistogram)
set maximum of histogram used to generate pattern
void setEPhi(double ephi)
set phi of pattern
MuonHoughPattern(int id_number)
MuonHoughPattern does not own its hits (contrary to the default) MuonHoughHitContainer!
int m_id_number
id number of hough transform used to generate pattern
Eigen::Matrix< double, 3, 1 > Vector3D
MuonHoughTransformers
enum to identify the different houghtransformers
@ hough_curved_at_a_cylinder