ATLAS Offline Software
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 
19 namespace 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
MuonCalib::IMdtCalibration::MdtCalibOutputPtr
std::shared_ptr< IMdtCalibrationOutput > MdtCalibOutputPtr
Definition: IMdtCalibration.h:30
RtCalibrationOutput.h
MuonCalib::RtCalibrationIntegration::m_nb_hits_used
unsigned int m_nb_hits_used
Definition: RtCalibrationIntegration.h:86
MuonCalibSegment.h
MuonCalib::RtCalibrationIntegration::handleSegment
bool handleSegment(MuonCalibSegment &seg)
analyse the segment "seg"
Definition: RtCalibrationIntegration.cxx:63
MuonCalib::RtCalibrationIntegration
Definition: RtCalibrationIntegration.h:33
IMdtSegmentFitter.h
MuonCalib::RtCalibrationIntegration::m_add_tmax_difference
bool m_add_tmax_difference
Definition: RtCalibrationIntegration.h:80
MuonCalib::IMdtCalibration
Definition: IMdtCalibration.h:25
MuonCalib::MuonCalibSegment
Definition: MuonCalibSegment.h:39
MuonCalib::RtCalibrationIntegration::m_nb_segments_used
unsigned int m_nb_segments_used
Definition: RtCalibrationIntegration.h:87
MuonCalib::RtCalibrationIntegration::m_rt
std::shared_ptr< IRtRelation > m_rt
Definition: RtCalibrationIntegration.h:85
MuonCalib::RtCalibrationIntegration::setInput
void setInput(const IMdtCalibrationOutput *rt_input) override
the method is empty as no initial r-t relationship is required by the algorithm
Definition: RtCalibrationIntegration.cxx:84
IMdtCalibrationOutput.h
MuonCalib::RtCalibrationIntegration::m_upper_extrapolation_radius
double m_upper_extrapolation_radius
parabolic extrapolation.
Definition: RtCalibrationIntegration.h:76
MuonCalib::RtCalibrationIntegration::analyse
bool analyse()
perform the integration method
Definition: RtCalibrationIntegration.cxx:85
MuonCalib::RtCalibrationIntegration::RtCalibrationIntegration
RtCalibrationIntegration(const std::string &name, bool close_hits, double r_max, double lower_extrapolation_radius, double upper_extrapolation_radius, bool add_tmax_difference)
Constructor.
Definition: RtCalibrationIntegration.h:40
MuonCalib::RtCalibrationIntegration::getResults
MdtCalibOutputPtr getResults() const override
returns the final r-t relationship
Definition: RtCalibrationIntegration.cxx:263
MuonCalib::RtCalibrationIntegration::m_output
std::shared_ptr< RtCalibrationOutput > m_output
Definition: RtCalibrationIntegration.h:89
MuonCalib
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
Definition: CscCalcPed.cxx:22
MuonCalib::RtCalibrationIntegration::m_lower_extrapolation_radius
double m_lower_extrapolation_radius
sets the lower radius to perform the
Definition: RtCalibrationIntegration.h:75
MuonCalib::RtCalibrationIntegration::converged
bool converged() const
returns true, if the integration method has been performed
Definition: RtCalibrationIntegration.cxx:256
MuonCalib::RtCalibrationIntegration::analyseSegments
MdtCalibOutputPtr analyseSegments(const MuonSegVec &seg) override
determine r(t)
Definition: RtCalibrationIntegration.cxx:56
MuonCalib::IMdtCalibration::name
virtual std::string name() const
returns name (region) of instance
Definition: IMdtCalibration.h:49
IMdtCalibration.h
MuonCalib::RtCalibrationIntegration::init
void init(bool close_hits, double r_max, double lower_extrapolation_radius, double higher_extrapolation_radius, bool add_tmax_difference)
Definition: RtCalibrationIntegration.cxx:41
MuonCalib::IMdtCalibrationOutput
Definition: IMdtCalibrationOutput.h:28
MuonCalib::RtCalibrationIntegration::m_t_drift
std::vector< std::pair< double, bool > > m_t_drift
Definition: RtCalibrationIntegration.h:83
IRtRelation.h
MuonCalib::RtCalibrationIntegration::number_of_hits_used
unsigned int number_of_hits_used() const
get the number of hits used in the r-t determination
Definition: RtCalibrationIntegration.cxx:54
MuonCalib::IMdtCalibration::MuonSegVec
std::vector< std::shared_ptr< MuonCalibSegment > > MuonSegVec
Definition: IMdtCalibration.h:27
MuonCalib::RtCalibrationIntegration::RtCalibrationIntegration
RtCalibrationIntegration(const std::string &name)
Default constructor.
Definition: RtCalibrationIntegration.h:36
MuonCalib::RtCalibrationIntegration::m_r_max
double m_r_max
Definition: RtCalibrationIntegration.h:88
MuonCalib::RtCalibrationIntegration::m_close_hits
bool m_close_hits
Definition: RtCalibrationIntegration.h:73