ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCalib
MdtCalib
MdtCalibFitters
MdtCalibFitters
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
25
#include "
CxxUtils/checker_macros.h
"
26
#include "
MdtCalibFitters/DCSLFitter.h
"
27
#include "
MdtCalibFitters/IndexSet.h
"
28
#include "
MdtCalibFitters/MTStraightLine.h
"
29
#include "
MdtCalibInterfaces/IMdtPatRecFitter.h
"
30
#include "
MuonCalibEventBase/MuonCalibSegment.h
"
31
32
namespace
MuonCalib
{
33
34
class
QuasianalyticLineReconstruction
:
public
IMdtPatRecFitter
{
35
public
:
36
using
MdtHitPtr
=
MuonCalibSegment::MdtHitPtr
;
37
using
MdtHitVec
=
MuonCalibSegment::MdtHitVec
;
38
// Constructors //
39
QuasianalyticLineReconstruction
() {
init
(); }
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
r_r
const std::string r_r
Definition
ASCIICondDbSvc.cxx:14
IMdtPatRecFitter.h
IndexSet.h
MTStraightLine.h
MuonCalibSegment.h
DCSLFitter.h
checker_macros.h
Define macros for attributes used to control the static checker.
MuonCalib::DCSLFitter
Straight line fitter for drift circles.
Definition
MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibFitters/MdtCalibFitters/DCSLFitter.h:28
MuonCalib::IMdtPatRecFitter::IMdtPatRecFitter
IMdtPatRecFitter()
constructor
Definition
IMdtPatRecFitter.h:21
MuonCalib::IMdtSegmentFitter::HitSelection
std::vector< unsigned int > HitSelection
Definition
IMdtSegmentFitter.h:32
MuonCalib::IndexSet
Definition
IndexSet.h:40
MuonCalib::MTStraightLine
Definition
MTStraightLine.h:16
MuonCalib::MuonCalibSegment
A MuonCalibSegment is a reconstructed three dimensional track segment in the MuonSpectrometer.
Definition
MuonCalibSegment.h:39
MuonCalib::MuonCalibSegment::MdtHitPtr
std::shared_ptr< MdtCalibHitBase > MdtHitPtr
typedef for a collection of MdtCalibHitBase s
Definition
MuonCalibSegment.h:43
MuonCalib::MuonCalibSegment::MdtHitVec
std::vector< MdtHitPtr > MdtHitVec
Definition
MuonCalibSegment.h:45
MuonCalib::QuasianalyticLineReconstruction::MdtHitVec
MuonCalibSegment::MdtHitVec MdtHitVec
Definition
QuasianalyticLineReconstruction.h:37
MuonCalib::QuasianalyticLineReconstruction::m_nb_cand_hits
std::vector< int > m_nb_cand_hits
Definition
QuasianalyticLineReconstruction.h:110
MuonCalib::QuasianalyticLineReconstruction::init
void init()
Definition
QuasianalyticLineReconstruction.cxx:22
MuonCalib::QuasianalyticLineReconstruction::m_candidate
std::vector< MTStraightLine > m_candidate
Definition
QuasianalyticLineReconstruction.h:111
MuonCalib::QuasianalyticLineReconstruction::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
QuasianalyticLineReconstruction.cxx:47
MuonCalib::QuasianalyticLineReconstruction::printLevel
void printLevel(int)
Definition
QuasianalyticLineReconstruction.h:88
MuonCalib::QuasianalyticLineReconstruction::m_tangent
std::vector< MTStraightLine > m_tangent
Definition
QuasianalyticLineReconstruction.h:108
MuonCalib::QuasianalyticLineReconstruction::MdtHitPtr
MuonCalibSegment::MdtHitPtr MdtHitPtr
Definition
QuasianalyticLineReconstruction.h:36
MuonCalib::QuasianalyticLineReconstruction::setMaxRadius
void setMaxRadius(const double maxR)
set the max innerRadius, default for MDT sMDT 7.1mm, MDT 14.6mm
Definition
QuasianalyticLineReconstruction.cxx:321
MuonCalib::QuasianalyticLineReconstruction::QuasianalyticLineReconstruction
QuasianalyticLineReconstruction(const double r_road_width)
Constructor: user-defined road width for pattern recognition.
Definition
QuasianalyticLineReconstruction.h:42
MuonCalib::QuasianalyticLineReconstruction::m_time_out
double m_time_out
Definition
QuasianalyticLineReconstruction.h:102
MuonCalib::QuasianalyticLineReconstruction::roadWidth
double roadWidth() const
get the road width used in the pattern recognition
Definition
QuasianalyticLineReconstruction.cxx:318
MuonCalib::QuasianalyticLineReconstruction::m_nfitter
DCSLFitter m_nfitter
Definition
QuasianalyticLineReconstruction.h:105
MuonCalib::QuasianalyticLineReconstruction::QuasianalyticLineReconstruction
QuasianalyticLineReconstruction()
Default constructor: road width for pattern recognition = 0.5 mm.
Definition
QuasianalyticLineReconstruction.h:39
MuonCalib::QuasianalyticLineReconstruction::m_road_width
double m_road_width
Definition
QuasianalyticLineReconstruction.h:101
MuonCalib::QuasianalyticLineReconstruction::setRoadWidth
void setRoadWidth(const double r_road_width)
set the road width for the pattern recognition = r_road_width
Definition
QuasianalyticLineReconstruction.cxx:319
MuonCalib::QuasianalyticLineReconstruction::m_r_max
double m_r_max
Definition
QuasianalyticLineReconstruction.h:100
MuonCalib::QuasianalyticLineReconstruction::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
QuasianalyticLineReconstruction.cxx:328
MuonCalib::QuasianalyticLineReconstruction::setTimeOut
void setTimeOut(const double time_out)
set the time-out for the track finding to time_out (in seconds)
Definition
QuasianalyticLineReconstruction.cxx:320
MuonCalib::QuasianalyticLineReconstruction::track_candidate
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
Definition
QuasianalyticLineReconstruction.cxx:135
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
MuonCalib
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
Definition
CscCalcPed.cxx:21
Generated on
for ATLAS Offline Software by
1.17.0