ATLAS Offline Software
Loading...
Searching...
No Matches
QuasianalyticLineReconstruction.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef QuasianalyticLineReconstructionH
6#define QuasianalyticLineReconstructionH
7
8//:::::::::::::::::::::::::::::::::::::::::::
9//:: CLASS QuasianalyticLineReconstruction ::
10//:::::::::::::::::::::::::::::::::::::::::::
11
22
23#include <vector>
24
31
32namespace MuonCalib {
33
35 public:
38 // Constructors //
41
42 QuasianalyticLineReconstruction(const double r_road_width) { init(r_road_width); }
44
45 // Methods //
46 // get-methods //
47 double roadWidth() const;
50
51 // set-method //
52 void setRoadWidth(const double r_road_width);
55 void setTimeOut(const double time_out);
58 void setMaxRadius(const double maxR);
61 // methods required by the base class "IMdtSegmentFitter" //
62 bool fit(MuonCalibSegment& r_segment) const;
73 bool fit(MuonCalibSegment& r_segment, HitSelection r_selection) const;
87 bool fit(MuonCalibSegment& r_segment, HitSelection r_selection, MTStraightLine& final_track) const;
88 void printLevel(int /*level*/){};
89
90 private:
91 // internal co-ordinate definition //
92 // x3
93 // ^
94 // o o o o o o |
95 // ... o o o o o ... o--> x2
96 // o o o o o o x1
97 //
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 // chi^2 refitter //
105 DCSLFitter m_nfitter; // NIKHEF straight line reconstruction
106
107 // internal storage vectors //
108 std::vector<MTStraightLine> m_tangent;
109 // vector of tangents (for 1 track)
110 std::vector<int> m_nb_cand_hits; // number of hits on track candidate
111 std::vector<MTStraightLine> m_candidate; // track candidates
112
113 // initialization methods //
114 void init();
115 // default initialization: road width = 0.5 CLHEP::mm
116 void init(const double r_road_width);
117 // initialization with user-defined road width
118
119 // auxiliary methods //
120 MTStraightLine tangent(const Amg::Vector3D& r_w1, const double r_r1, const double r_sigma12, const Amg::Vector3D& r_w2,
121 const double r_r2, const double r_sigma22, const int& r_case) const;
122 // method for the calculation of tangents with errors;
123 // r_w1: wire position for the first hit,
124 // r_r1: drift radius of the first hit,
125 // r_sigma12: sigma(r_r1)^2,
126 // r_w2: wire position for the second hit,
127 // r_r2: drift radius of the second hit,
128 // r_sigma22: sigma(r_r2)^2,
129 // r_case = 1, 2, 3, 4: select one of the four cases of a tangent
130
131 MTStraightLine track_candidate(const IndexSet& r_index_set, const int& r_k_cand, const int& r_l_cand, const int& r_cand_case,
132 const std::vector<Amg::Vector3D>& r_w, const std::vector<double>& r_r, const std::vector<double>& r_sigma2,
133 double& r_chi2) const;
134 // method for the calculatation of a straight line from tangents;
135 // r_nb_selected_hits: number of selected hits,
136 // r_k_cand: index of the 1st wire of the candidate tangent
137 // (starting from 0),
138 // r_l_cand: index of the 2nd wire of the candidate tangent
139 // (starting from 0),
140 // r_cand_case: configuration of the tangent to be used (1, 2, 3, or 4)
141 // r_w: wire positions,
142 // r_r: drift radii,
143 // r_sigma2: sigma(r)^2,
144 // r_chi2: chi^2 for the reconstructed track
145 };
146
147} // namespace MuonCalib
148
149#endif
const std::string r_r
Define macros for attributes used to control the static checker.
std::vector< unsigned int > HitSelection
A MuonCalibSegment is a reconstructed three dimensional track segment in the MuonSpectrometer.
std::shared_ptr< MdtCalibHitBase > MdtHitPtr
typedef for a collection of MdtCalibHitBase s
std::vector< MdtHitPtr > MdtHitVec
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
void setMaxRadius(const double maxR)
set the max innerRadius, default for MDT sMDT 7.1mm, MDT 14.6mm
QuasianalyticLineReconstruction(const double r_road_width)
Constructor: user-defined road width for pattern recognition.
double roadWidth() const
get the road width used in the pattern recognition
QuasianalyticLineReconstruction()
Default constructor: road width for pattern recognition = 0.5 mm.
void setRoadWidth(const double r_road_width)
set the road width for the pattern recognition = r_road_width
bool fit(MuonCalibSegment &r_segment) const
reconstruction of the track using all hits in the segment "r_segment", returns true in case of succes...
void setTimeOut(const double time_out)
set the time-out for the track finding to time_out (in seconds)
MTStraightLine track_candidate(const IndexSet &r_index_set, const int &r_k_cand, const int &r_l_cand, const int &r_cand_case, const std::vector< Amg::Vector3D > &r_w, const std::vector< double > &r_r, const std::vector< double > &r_sigma2, double &r_chi2) const
Eigen::Matrix< double, 3, 1 > Vector3D
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.