|
ATLAS Offline Software
|
Go to the documentation of this file.
4 #ifndef RtCalibrationAnalytic__H
5 #define RtCalibrationAnalytic__H
35 #include "CLHEP/Matrix/SymMatrix.h"
36 #include "CLHEP/Matrix/Vector.h"
37 #include "CLHEP/Units/PhysicalConstants.h"
38 #include "CLHEP/Units/SystemOfUnits.h"
53 class RtRelationLookUp;
54 class RtCalibrationOutput;
55 class IMdtCalibrationOutput;
56 class MuonCalibSegment;
73 RtCalibrationAnalytic(
const std::string &
name,
const double rt_accuracy,
const unsigned int &func_type,
const unsigned int &ord,
74 const bool &
split,
const bool &full_matrix,
const bool &fix_min,
const bool &fix_max,
const int &max_it,
75 bool do_smoothing =
false,
bool do_parabolic_extrapolation =
false);
260 std::shared_ptr<const IRtRelation>
m_rt;
287 std::vector<CLHEP::HepVector>
m_U;
305 void init(
const double rt_accuracy,
const unsigned int &func_type,
const unsigned int &ord,
const bool &
split,
306 const bool &full_matrix,
const bool &fix_min,
const bool &fix_max,
const int &max_it,
bool do_smoothing,
307 bool do_parabolic_extrapolation);
std::shared_ptr< IMdtCalibrationOutput > MdtCalibOutputPtr
bool fullMatrix() const
returns true, if the full matrix relating the errors in the r-t relationship to the residuals should ...
MdtCalibOutputPtr getResults() const
returns the final r-t relationship
std::unique_ptr< TH2F > m_residuals
void doNotForceMonotony()
do not force r(t) to be monotonically increasing
std::unique_ptr< BaseFunction > m_base_function
std::unique_ptr< TFile > m_tfile
std::unique_ptr< TH1F > m_cut_evolution
std::vector< CLHEP::HepVector > m_U
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...
void display_segment(MuonCalibSegment *segment, std::ofstream &outfile)
int iteration() const
get the number of the current iteration
std::shared_ptr< const IRtRelation > m_rt
void doParabolicExtrapolation()
requires that parabolic extrapolation will be used for small and large radii
void forceMonotony()
force r(t) to be monotonically increasing
QuasianalyticLineReconstruction m_tracker
void init(const double rt_accuracy, const unsigned int &func_type, const unsigned int &ord, const bool &split, const bool &full_matrix, const bool &fix_min, const bool &fix_max, const int &max_it, bool do_smoothing, bool do_parabolic_extrapolation)
bool analyse()
perform the autocalibration with the segments acquired so far
RtCalibrationAnalytic(const std::string &name)
Default constructor: r-t accuracy is set to 0.5 mm.
void noParabolicExtrapolation()
no parabolic extrapolation is done
std::unique_ptr< TH1F > m_nb_segment_hits
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
bool handleSegment(MuonCalibSegment &seg)
analyse the segment "seg" (this method was required before MdtCalibInterfaces-00-01-06)
double m_rt_accuracy_previous
std::shared_ptr< IRtRelation > m_rt_new
int numberOfSegments() const
get the number of segments which were passed to the algorithm
MdtCalibOutputPtr analyseSegments(const MuonSegVec &seg)
perform the full autocalibration including iterations (required since MdtCalibInterfaces-00-01-06)
virtual std::string name() const
returns name (region) of instance
std::unique_ptr< TH1F > m_CL
double t_from_r(const double r)
bool m_control_histograms
void setInput(const IMdtCalibrationOutput *rt_input)
set the r-t relationship, the internal autocalibration objects are reset
double reliability() const
get the reliability of the r-t: 0: no convergence yet 1: convergence, r-t is reliable 2: convergence,...
bool converged() const
returns true, if the autocalibration has converged
void switch_off_control_histograms()
the algorithm does not produce controll histograms (this is the default)
int numberOfSegmentsUsed() const
get the number of segments which are used in the autocalibration
bool m_do_parabolic_extrapolation
void setEstimateRtAccuracy(const double acc)
set the estimated r-t accuracy =acc
std::vector< std::shared_ptr< MuonCalibSegment > > MuonSegVec
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...
void doSmoothing()
requires that the r-t relationship will be smoothened using the conventional autocalibration after co...
bool splitIntoMultilayers() const
returns true, if segments are internally restricted to single multilayers; returns false,...
std::shared_ptr< RtRelationLookUp > performParabolicExtrapolation(const bool &min, const bool &max, const IRtRelation &in_rt)
std::array< bool, 2 > m_multilayer
generic interface for a rt-relation
std::shared_ptr< RtCalibrationOutput > m_output
bool smoothing() const
returns true, if the r-t relationship will be smoothened using the conventional autocalibration after...
void noSmoothing()
do not smoothen the r-t relationship after convergence
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)