|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef MuonCalib_RtCalibrationCurvedH
6 #define MuonCalib_RtCalibrationCurvedH
21 #include "CLHEP/Matrix/SymMatrix.h"
22 #include "CLHEP/Matrix/Vector.h"
35 class IMdtCalibrationOutput;
37 class RtRelationLookUp;
38 class RtCalibrationOutput;
40 class MuonCalibSegment;
43 class MultilayerRtDifference;
60 RtCalibrationCurved(
const std::string &
name,
const double rt_accuracy,
const unsigned int &func_type,
const unsigned int &ord,
61 const bool &fix_min,
const bool &fix_max,
const int &max_it,
bool do_parabolic_extrapolation =
false,
62 bool do_smoothing =
false,
bool do_multilayer_rt_scale =
false);
216 std::shared_ptr<const IRtRelation>
m_rt;
243 std::vector<CLHEP::HepVector>
m_U;
271 void init(
const double rt_accuracy,
const unsigned int &func_type,
const unsigned int &ord,
const bool &fix_min,
272 const bool &fix_max,
const int &max_it,
bool do_parabolic_extrapolation,
bool do_smoothing,
bool do_multilayer_rt_scale);
std::unique_ptr< TH2F > m_driftTime_initial
void noSmoothing()
do not smoothen the r-t relationship after convergence
std::unique_ptr< BaseFunction > m_base_function
std::shared_ptr< IRtRelation > m_rt_new
std::shared_ptr< IMdtCalibrationOutput > MdtCalibOutputPtr
std::unique_ptr< TH2F > m_residuals_initial
std::unique_ptr< TFile > m_tfile
void init(const double rt_accuracy, const unsigned int &func_type, const unsigned int &ord, const bool &fix_min, const bool &fix_max, const int &max_it, bool do_parabolic_extrapolation, bool do_smoothing, bool do_multilayer_rt_scale)
int iteration() const
get the number of the current iteration
void forceMonotony()
force r(t) to be monotonically increasing (this is default)
std::array< bool, 2 > m_multilayer
std::unique_ptr< TH1F > m_pull_initial
RtCalibrationCurved(const std::string &name)
Default constructor: r-t accuracy is set to 0.5 mm.
std::shared_ptr< const IRtRelation > m_rt
bool smoothing() const
returns true, if the r-t relationship will be smoothened using the conventional autocalibration after...
void fullMatrix(const bool &yes_or_no)
yes_or_no=true: the full matrix relating the errors in the r-t relationship to the residuals is used ...
void display_segment(MuonCalibSegment *segment, std::ofstream &outfile, const CurvedLine *curved_segment)
void doSmoothing()
requires that the r-t relationship will be smoothened using the conventional autocalibration after co...
double reliability() const
get the reliability of the final r-t relationship: 0: no convergence yet 1: convergence,...
void noParabolicExtrapolation()
no parabolic extrapolation is done
bool m_do_parabolic_extrapolation
std::unique_ptr< TH2F > m_residuals_final
std::unique_ptr< TH2F > m_driftTime_final
bool m_control_histograms
std::shared_ptr< RtRelationLookUp > performParabolicExtrapolation(const bool &min, const bool &max, const IRtRelation &in_rt)
int numberOfSegments() const
get the number of segments which were passed to the algorithm
void switch_on_control_histograms(const std::string &file_name)
this methods requests control histograms from the algorithms; the algorithm will write them to ROOT f...
std::unique_ptr< TH2F > m_residuals_initial_all
double estimatedRtAccuracy() const
get the estimated r-t quality (CLHEP::mm), the accuracy of the input r-t is computed at the end of th...
std::unique_ptr< MultilayerRtDifference > m_multilayer_rt_difference
void setEstimateRtAccuracy(const double acc)
set the estimated r-t accuracy =acc
CLHEP::HepSymMatrix m_M_track
CLHEP::HepSymMatrix m_M_track_inverse
std::unique_ptr< TH1F > m_cut_evolution
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
std::shared_ptr< RtCalibrationOutput > m_output
std::unique_ptr< TH1F > m_pull_final
std::unique_ptr< TH1F > m_nb_segment_hits
bool m_do_multilayer_rt_scale
virtual std::string name() const
returns name (region) of instance
std::unique_ptr< TH2F > m_adc_vs_residual_final
void setInput(const IMdtCalibrationOutput *rt_input) override
set the r-t relationship, the internal autocalibration objects are reset
MdtCalibOutputPtr analyseSegments(const MuonSegVec &seg) override
perform the full autocalibration including iterations (required since MdtCalibInterfaces-00-01-06)
bool converged() const
returns true, if the autocalibration has converged
bool analyse(const MuonSegVec &seg)
perform the autocalibration with the segments acquired so far
int numberOfSegmentsUsed() const
get the number of segments which are used in the autocalibration
double m_rt_accuracy_previous
void switch_off_control_histograms()
the algorithm does not produce controll histograms (this is the default)
void doNotForceMonotony()
do not force r(t) to be monotonically increasing
double t_from_r(const double r)
virtual MdtCalibOutputPtr getResults() const override
returns the final r-t relationship
bool handleSegment(MuonCalibSegment &seg)
analyse the segment "seg" (this method was required before MdtCalibInterfaces-00-01-06)
std::vector< std::shared_ptr< MuonCalibSegment > > MuonSegVec
~RtCalibrationCurved()
Destructor.
std::vector< CLHEP::HepVector > m_U_weighted
std::vector< CLHEP::HepVector > m_U
std::unique_ptr< CurvedPatRec > m_tracker
void doParabolicExtrapolation()
requires that parabolic extrapolation will be used for small and large radii
generic interface for a rt-relation
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)