ATLAS Offline Software
Loading...
Searching...
No Matches
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
33namespace MuonCalib {
34
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
Define macros for attributes used to control the static checker.
Amg::Vector3D getHitPoint(const MdtHitPtr &hit, const MTStraightLine &straight_track) const
MuonCalibSegment::MdtHitPtr MdtHitPtr
void setTimeOut(const double time_out)
set the time-out for the track finding to time_out (in seconds)
std::vector< Amg::Vector3D > getHitPoints(const MdtHitVec &track_hits, const MTStraightLine &straight_track) const
CurvedPatRec()
Default constructor: road width of 0.5 mm is used.
double roadWidth() const
get the road width used in the pattern recognition [mm]
void setRoadWidth(const double r_road_width)
set the road width [mm] 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...
MuonCalibSegment::MdtHitVec MdtHitVec
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
Eigen::Matrix< double, 3, 1 > Vector3D
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.