|  | 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