ATLAS Offline Software
Loading...
Searching...
No Matches
RtCalibrationIntegration.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MuonCalib_RtCalibrationIntegrationH
6#define MuonCalib_RtCalibrationIntegrationH
7
8#include <memory>
9#include <string>
10#include <vector>
11
18
19namespace MuonCalib {
20
21 //::::::::::::::::::::::::::::::::::::
22 //:: CLASS RtCalibrationIntegration ::
23 //::::::::::::::::::::::::::::::::::::
24
32
34 public:
35 // Constructors //
36 RtCalibrationIntegration(const std::string& name) : IMdtCalibration(name) { init(false, 14.6, 13.0, 14.0, false); }
39
40 RtCalibrationIntegration(const std::string& name, bool close_hits, double r_max, double lower_extrapolation_radius,
41 double upper_extrapolation_radius, bool add_tmax_difference) :
43 init(close_hits, r_max, lower_extrapolation_radius, upper_extrapolation_radius, add_tmax_difference);
44 }
47
48 // Methods //
49 // get-methods //
50 unsigned int number_of_hits_used() const;
53
54 // methods required by the base class "IMdtCalibration" //
55 MdtCalibOutputPtr analyseSegments(const MuonSegVec& seg) override;
59 void setInput(const IMdtCalibrationOutput* rt_input) override;
63 bool analyse();
65 bool converged() const;
68 MdtCalibOutputPtr getResults() const override;
70
71 private:
72 // options //
73 bool m_close_hits; // = true, if close hits should be used,
74 // = false, if only hits on segments should be used
81 // drift-time spectrum //
82
83 std::vector<std::pair<double, bool> > m_t_drift; // measured drift times
84 // r(t) //
85 std::shared_ptr<IRtRelation> m_rt; // pointer to the final r-t relationship
86 unsigned int m_nb_hits_used; // number of hits used in the algorithm
87 unsigned int m_nb_segments_used; // number of segments used
88 double m_r_max; // maximum drift radius
89 std::shared_ptr<RtCalibrationOutput> m_output; // class holding the results of the
90 // autocalibration
91
92 // private methods //
93 void init(bool close_hits, double r_max, double lower_extrapolation_radius, double higher_extrapolation_radius,
94 bool add_tmax_difference);
95 // initialize the class, close hits are used,
96 // if close_hits is set to true; the maximum
97 // drift radius is set to r_max
98 };
99
100} // namespace MuonCalib
101
102#endif
Interface to pass calibration output during calibration.
IMdtCalibration(const std::string &name)
constructor, string used to identify the instance
virtual std::string name() const
returns name (region) of instance
std::shared_ptr< IMdtCalibrationOutput > MdtCalibOutputPtr
std::vector< std::shared_ptr< MuonCalibSegment > > MuonSegVec
A MuonCalibSegment is a reconstructed three dimensional track segment in the MuonSpectrometer.
MdtCalibOutputPtr analyseSegments(const MuonSegVec &seg) override
determine r(t)
double m_lower_extrapolation_radius
sets the lower radius to perform the
void setInput(const IMdtCalibrationOutput *rt_input) override
the method is empty as no initial r-t relationship is required by the algorithm
double m_upper_extrapolation_radius
parabolic extrapolation.
bool analyse()
perform the integration method
RtCalibrationIntegration(const std::string &name, bool close_hits, double r_max, double lower_extrapolation_radius, double upper_extrapolation_radius, bool add_tmax_difference)
Constructor.
RtCalibrationIntegration(const std::string &name)
Default constructor.
bool converged() const
returns true, if the integration method has been performed
std::shared_ptr< RtCalibrationOutput > m_output
std::vector< std::pair< double, bool > > m_t_drift
bool handleSegment(MuonCalibSegment &seg)
analyse the segment "seg"
unsigned int number_of_hits_used() const
get the number of hits used in the r-t determination
void init(bool close_hits, double r_max, double lower_extrapolation_radius, double higher_extrapolation_radius, bool add_tmax_difference)
MdtCalibOutputPtr getResults() const override
returns the final r-t relationship
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.