ATLAS Offline Software
StraightPatRec.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MDTCALIBFITTERS_StraightPatRecH
5 #define MDTCALIBFITTERS_StraightPatRecH
6 
12 
13 #include <vector>
14 
21 
22 namespace MuonCalib {
23 
25  public:
26  // Constructors //
29 
30  StraightPatRec(const double r_road_width) { init(r_road_width); }
32 
33  // Methods //
34  // get-methods //
35  double roadWidth() const;
43 
44  // set-method //
45  void setRoadWidth(const double r_road_width);
48  void setTimeOut(const double time_out);
51 
52  void setFixSelection(bool fix_sel);
53 
54  // methods required by the base class "IMdtSegmentFitter" //
55  bool fit(MuonCalibSegment &r_segment) const;
79  bool fit(MuonCalibSegment &r_segment, HitSelection r_selection) const;
81  bool fit(MuonCalibSegment &r_segment, HitSelection r_selection, MTStraightLine &line_track) const;
82 
83  void printLevel(int) {}
84 
85  bool fitCallByReference(MuonCalibSegment &r_segment, HitSelection &r_selection, MTStraightLine &line_track) const;
86  bool fitCallByReference(MuonCalibSegment &r_segment, HitSelection &r_selection) const;
87 
88  private:
89  // internal co-ordinate definition //
90  // x3
91  // ^
92  // o o o o o o |
93  // ... o o o o o ... o--> x2
94  // o o o o o o x1
95  //
96 
98 
99  // parameters for the adjustment of the track reconstruction //
100  double m_r_max; // maximum radius
101  double m_road_width; // road width for pattern recognition
102  double m_time_out; // time-out for track finding
103 
104  // initialization methods //
105  void init();
106  // default initialization: road width = 0.5 CLHEP::mm
107  void init(const double r_road_width);
108  // initialization with user-defined road width
109 
110  // auxiliary methods //
111  MTStraightLine tangent(const Amg::Vector3D &r_w1, const double r_r1, const double r_sigma12, const Amg::Vector3D &r_w2,
112  const double r_r2, const double r_sigma22, const int &r_case) const;
113  // method for the calculation of tangents with errors;
114  // r_w1: wire position for the first hit,
115  // r_r1: drift radius of the first hit,
116  // r_sigma12: sigma(r_r1)^2,
117  // r_w2: wire position for the second hit,
118  // r_r2: drift radius of the second hit,
119  // r_sigma22: sigma(r_r2)^2,
120  // r_case = 1, 2, 3, 4: select one of the four cases of a tangent
121  MTStraightLine fitCandidate(MuonCalibSegment &r_segment, const std::vector<unsigned int> &r_selection,
122  const MTStraightLine &cand_line) const;
123 
124  // refit the candidate "cand_line" using the hits specified by
125  // the r_selection and index vectors
126  };
127 
128 } // namespace MuonCalib
129 
130 #endif
MuonCalib::StraightPatRec::m_r_max
double m_r_max
Definition: StraightPatRec.h:100
MuonCalib::StraightPatRec::printLevel
void printLevel(int)
Definition: StraightPatRec.h:83
MuonCalib::StraightPatRec::setRoadWidth
void setRoadWidth(const double r_road_width)
set the road width for the pattern recognition = r_road_width
Definition: StraightPatRec.cxx:279
MuonCalibSegment.h
MTStraightLine.h
MuonCalib::StraightPatRec::m_road_width
double m_road_width
Definition: StraightPatRec.h:101
MuonCalib::MuonCalibSegment
Definition: MuonCalibSegment.h:39
MuonCalib::StraightPatRec::tangent
MTStraightLine tangent(const Amg::Vector3D &r_w1, const double r_r1, const double r_sigma12, const Amg::Vector3D &r_w2, const double r_r2, const double r_sigma22, const int &r_case) const
Definition: StraightPatRec.cxx:67
MuonCalib::StraightPatRec::m_fix_selection
bool m_fix_selection
Definition: StraightPatRec.h:97
MuonCalib::StraightPatRec::fitCallByReference
bool fitCallByReference(MuonCalibSegment &r_segment, HitSelection &r_selection, MTStraightLine &line_track) const
Definition: StraightPatRec.cxx:304
MuonCalib::StraightPatRec::roadWidth
double roadWidth() const
get the final track in the local co-ordinate frame, i.e.
Definition: StraightPatRec.cxx:277
MuonCalib::StraightPatRec::setTimeOut
void setTimeOut(const double time_out)
set the time-out for the track finding to time_out (in seconds)
Definition: StraightPatRec.cxx:283
MuonCalib::StraightPatRec::setFixSelection
void setFixSelection(bool fix_sel)
Definition: StraightPatRec.cxx:288
GeoPrimitives.h
MuonCalib::StraightPatRec::StraightPatRec
StraightPatRec(const double r_road_width)
Constructor: user-defined road width for pattern recognition.
Definition: StraightPatRec.h:30
MuonCalib::StraightPatRec::init
void init()
Definition: StraightPatRec.cxx:24
MuonCalib
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
Definition: CscCalcPed.cxx:22
MuonCalib::StraightPatRec::m_time_out
double m_time_out
Definition: StraightPatRec.h:102
MuonCalib::StraightPatRec::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: StraightPatRec.cxx:289
IMdtPatRecFitter.h
MuonCalib::StraightPatRec::fitCandidate
MTStraightLine fitCandidate(MuonCalibSegment &r_segment, const std::vector< unsigned int > &r_selection, const MTStraightLine &cand_line) const
Definition: StraightPatRec.cxx:154
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonCalib::StraightPatRec::StraightPatRec
StraightPatRec()
Default constructor: road width for pattern recognition = 0.5 mm.
Definition: StraightPatRec.h:27
MuonCalib::IMdtPatRecFitter
Definition: IMdtPatRecFitter.h:18
MuonCalib::MTStraightLine
Definition: MTStraightLine.h:16
checker_macros.h
Define macros for attributes used to control the static checker.
DCSLFitter.h
MuonCalib::StraightPatRec
Definition: StraightPatRec.h:24
MuonCalib::IMdtSegmentFitter::HitSelection
std::vector< unsigned int > HitSelection
Definition: IMdtSegmentFitter.h:32