ATLAS Offline Software
CurvedPatRec.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 MuonCalib_CurvedPatRecH
6 #define MuonCalib_CurvedPatRecH
7 
8 //::::::::::::::::::::::::
9 //:: CLASS CurvedPatRec ::
10 //::::::::::::::::::::::::
11 
22 
23 #include <vector>
24 
32 
33 namespace MuonCalib {
34 
35  class CurvedPatRec : public IMdtPatRecFitter {
36  public:
39 
40  // Constructors //
43 
44  CurvedPatRec(const double road_width);
46 
47  // Methods //
48  double roadWidth() const;
51 
52  // set-method //
53  void setRoadWidth(const double r_road_width);
56  void setTimeOut(const double time_out);
59 
60  // methods required by the base class "IMdtSegmentFitter" //
61  bool fit(MuonCalibSegment& r_segment) const;
72  bool fit(MuonCalibSegment& r_segment, HitSelection r_selection) const;
86  bool fit(MuonCalibSegment& r_segment, HitSelection r_selection, CurvedLine& curved_track) const;
87  void printLevel(int /*level*/){};
88 
89  private:
90  // internal co-ordinate definition //
91  // x3
92  // ^
93  // o o o o o o |
94  // ... o o o o o ... o--> x2
95  // o o o o o o x1
96  //
97 
98  // settings //
99  double m_road_width{0.5}; // road width to be used in pattern finding
100  double m_time_out{10}; // time out for pattern recognition.
101 
102  // straight pattern recognition to get the approximate incidence angle //
103 
104  // auxiliary methods //
105  Amg::Vector3D getHitPoint(const MdtHitPtr& hit, const MTStraightLine& straight_track) const;
106  // transform the given hit into a hit point in
107  // 3 dimensions using the given straight line
108  // as helper
109  std::vector<Amg::Vector3D> getHitPoints(const MdtHitVec& track_hits, const MTStraightLine& straight_track) const;
110  // transform the track hits into hit points in
111  // 3 dimensions using the given straight line
112  // as helper
113  std::vector<Amg::Vector3D> getHitPoints(const MdtHitVec& track_hits, const CurvedLine& curved_track) const;
114  // transform the track hits into hit points in
115  // 3 dimensions using the given curved line
116  // as helper
117  };
118 
119 } // namespace MuonCalib
120 
121 #endif
MuonCalib::CurvedPatRec::MdtHitPtr
MuonCalibSegment::MdtHitPtr MdtHitPtr
Definition: CurvedPatRec.h:38
MuonCalib::CurvedPatRec::CurvedPatRec
CurvedPatRec()
Default constructor: road width of 0.5 mm is used.
MuonCalibSegment.h
MuonCalib::CurvedPatRec::getHitPoints
std::vector< Amg::Vector3D > getHitPoints(const MdtHitVec &track_hits, const MTStraightLine &straight_track) const
Definition: CurvedPatRec.cxx:249
MuonCalib::CurvedPatRec::m_time_out
double m_time_out
Definition: CurvedPatRec.h:100
MTStraightLine.h
MuonCalib::CurvedLine
Definition: CurvedLine.h:30
MuonCalib::MuonCalibSegment::MdtHitVec
std::vector< MdtHitPtr > MdtHitVec
Definition: MuonCalibSegment.h:45
MuonCalib::MuonCalibSegment
Definition: MuonCalibSegment.h:39
MuonCalib::CurvedPatRec::fit
bool fit(MuonCalibSegment &r_segment) const
reconstruction of the track using all hits in the segment "r_segment", returns true in case of succes...
Definition: CurvedPatRec.cxx:23
MuonCalib::CurvedPatRec::m_road_width
double m_road_width
Definition: CurvedPatRec.h:99
StraightPatRec.h
MuonCalib::CurvedPatRec
Definition: CurvedPatRec.h:35
GeoPrimitives.h
MuonCalib::CurvedPatRec::setRoadWidth
void setRoadWidth(const double r_road_width)
set the road width [mm] for the pattern recognition = r_road_width
Definition: CurvedPatRec.cxx:21
CurvedLine.h
MuonCalib
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
Definition: CscCalcPed.cxx:22
IMdtPatRecFitter.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonCalib::IMdtPatRecFitter
Definition: IMdtPatRecFitter.h:18
MuonCalib::MTStraightLine
Definition: MTStraightLine.h:16
MuonCalib::CurvedPatRec::MdtHitVec
MuonCalibSegment::MdtHitVec MdtHitVec
Definition: CurvedPatRec.h:37
checker_macros.h
Define macros for attributes used to control the static checker.
MuonCalib::CurvedPatRec::printLevel
void printLevel(int)
Definition: CurvedPatRec.h:87
MuonCalib::CurvedPatRec::getHitPoint
Amg::Vector3D getHitPoint(const MdtHitPtr &hit, const MTStraightLine &straight_track) const
Definition: CurvedPatRec.cxx:236
MuonCalib::CurvedPatRec::roadWidth
double roadWidth() const
get the road width used in the pattern recognition [mm]
Definition: CurvedPatRec.cxx:20
MuonCalib::MuonCalibSegment::MdtHitPtr
std::shared_ptr< MdtCalibHitBase > MdtHitPtr
typedef for a collection of MdtCalibHitBase s
Definition: MuonCalibSegment.h:44
MuonCalib::IMdtSegmentFitter::HitSelection
std::vector< unsigned int > HitSelection
Definition: IMdtSegmentFitter.h:32
MuonCalib::CurvedPatRec::setTimeOut
void setTimeOut(const double time_out)
set the time-out for the track finding to time_out (in seconds)
Definition: CurvedPatRec.cxx:22