![]() |
ATLAS Offline Software
|
#include <RtCalibrationCurved.h>
Public Types | |
| using | MuonSegVec = std::vector<std::shared_ptr<MuonCalibSegment>> |
| using | MuonSegIt = MuonSegVec::iterator |
| using | MuonSegCit = MuonSegVec::const_iterator |
| using | MdtCalibOutputPtr = std::shared_ptr<IMdtCalibrationOutput> |
Public Member Functions | |
| RtCalibrationCurved (const std::string &name) | |
| Default constructor: r-t accuracy is set to 0.5 mm. | |
| RtCalibrationCurved (const std::string &name, 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=false, bool do_smoothing=false, bool do_multilayer_rt_scale=false) | |
| Constructor. | |
| ~RtCalibrationCurved () | |
| Destructor. | |
| double | reliability () const |
| get the reliability of the final r-t relationship: 0: no convergence yet 1: convergence, r(t) is reliable 2: convergence, r(t) is unreliable | |
| double | estimatedRtAccuracy () const |
| get the estimated r-t quality (CLHEP::mm), the accuracy of the input r-t is computed at the end of the iteration; in order to get the accuracy of the final r-t, the algorithm has to be rerun with the final r-t as an input | |
| int | numberOfSegments () const |
| get the number of segments which were passed to the algorithm | |
| int | numberOfSegmentsUsed () const |
| get the number of segments which are used in the autocalibration | |
| int | iteration () const |
| get the number of the current iteration | |
| bool | smoothing () const |
| returns true, if the r-t relationship will be smoothened using the conventional autocalibration after convergence; returns false otherwise | |
| void | setEstimateRtAccuracy (const double acc) |
| set the estimated r-t accuracy =acc | |
| 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 yes_or_no=false: unit matrix is used (algorithm is equivalent to to the conventional/classical method | |
| 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 file called "file_name" | |
| void | switch_off_control_histograms () |
| the algorithm does not produce controll histograms (this is the default) | |
| void | forceMonotony () |
| force r(t) to be monotonically increasing (this is default) | |
| void | doNotForceMonotony () |
| do not force r(t) to be monotonically increasing | |
| void | doParabolicExtrapolation () |
| requires that parabolic extrapolation will be used for small and large radii | |
| void | noParabolicExtrapolation () |
| no parabolic extrapolation is done | |
| void | doSmoothing () |
| requires that the r-t relationship will be smoothened using the conventional autocalibration after convergence | |
| void | noSmoothing () |
| do not smoothen the r-t relationship after convergence | |
| MdtCalibOutputPtr | analyseSegments (const MuonSegVec &seg) override |
| perform the full autocalibration including iterations (required since MdtCalibInterfaces-00-01-06) | |
| bool | handleSegment (MuonCalibSegment &seg) |
| analyse the segment "seg" (this method was required before MdtCalibInterfaces-00-01-06) | |
| void | setInput (const IMdtCalibrationOutput *rt_input) override |
| set the r-t relationship, the internal autocalibration objects are reset | |
| bool | analyse (const MuonSegVec &seg) |
| perform the autocalibration with the segments acquired so far | |
| bool | converged () const |
| returns true, if the autocalibration has converged | |
| virtual MdtCalibOutputPtr | getResults () const override |
| returns the final r-t relationship | |
| virtual std::string | name () const |
| returns name (region) of instance | |
Private Member Functions | |
| 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) |
| double | t_from_r (const double r) |
| void | display_segment (MuonCalibSegment *segment, std::ofstream &outfile, const CurvedLine *curved_segment) |
| std::shared_ptr< RtRelationLookUp > | performParabolicExtrapolation (const bool &min, const bool &max, const IRtRelation &in_rt) |
Private Attributes | |
| bool | m_control_histograms = false |
| bool | m_fix_min = false |
| bool | m_fix_max = false |
| int | m_max_it = 0 |
| bool | m_force_monotony = false |
| bool | m_do_multilayer_rt_scale = false |
| int | m_nb_segments = 0 |
| int | m_nb_segments_used = 0 |
| int | m_iteration = 0 |
| std::array< bool, 2 > | m_multilayer {} |
| int | m_status = 0 |
| double | m_rt_accuracy = 0.0 |
| double | m_rt_accuracy_previous |
| double | m_chi2_previous = 0.0 |
| double | m_chi2 = 0.0 |
| std::shared_ptr< const IRtRelation > | m_rt |
| double | m_t_length = 0.0 |
| double | m_t_mean = 0.0 |
| std::shared_ptr< IRtRelation > | m_rt_new |
| std::shared_ptr< RtCalibrationOutput > | m_output |
| std::unique_ptr< MultilayerRtDifference > | m_multilayer_rt_difference |
| double | m_r_max = 0.0 |
| std::unique_ptr< CurvedPatRec > | m_tracker |
| CLHEP::HepSymMatrix | m_M_track |
| CLHEP::HepSymMatrix | m_M_track_inverse |
| bool | m_do_parabolic_extrapolation = false |
| bool | m_do_smoothing = false |
| unsigned int | m_order = 0U |
| std::vector< CLHEP::HepVector > | m_U |
| std::vector< CLHEP::HepVector > | m_U_weighted |
| CLHEP::HepSymMatrix | m_A |
| CLHEP::HepVector | m_alpha |
| CLHEP::HepVector | m_b |
| std::unique_ptr< BaseFunction > | m_base_function |
| std::unique_ptr< TFile > | m_tfile {} |
| std::unique_ptr< TH1F > | m_cut_evolution {} |
| std::unique_ptr< TH1F > | m_nb_segment_hits {} |
| std::unique_ptr< TH1F > | m_pull_initial {} |
| std::unique_ptr< TH1F > | m_pull_final {} |
| std::unique_ptr< TH2F > | m_residuals_initial {} |
| std::unique_ptr< TH2F > | m_residuals_initial_all {} |
| std::unique_ptr< TH2F > | m_residuals_final {} |
| std::unique_ptr< TH2F > | m_driftTime_initial {} |
| std::unique_ptr< TH2F > | m_driftTime_final {} |
| std::unique_ptr< TH2F > | m_adc_vs_residual_final {} |
| std::string | m_name |
Definition at line 45 of file RtCalibrationCurved.h.
|
inherited |
Definition at line 30 of file IMdtCalibration.h.
|
inherited |
Definition at line 29 of file IMdtCalibration.h.
|
inherited |
Definition at line 28 of file IMdtCalibration.h.
|
inherited |
Definition at line 27 of file IMdtCalibration.h.
| RtCalibrationCurved::RtCalibrationCurved | ( | const std::string & | name | ) |
Default constructor: r-t accuracy is set to 0.5 mm.
The r-t accuracy is used internally to distinguish between good and bad segments. By default Legendre polynomials are used to parametrize the r-t correction. The order of the r-t correction polynomial is set to 15. Segments are not restricted to single multilayers. The full matrix relating the errors in r(t) to the residuals is used. No parabolic extrapolations are used. By default no smoothing is applied after convergence.
Definition at line 35 of file RtCalibrationCurved.cxx.
| RtCalibrationCurved::RtCalibrationCurved | ( | const std::string & | name, |
| 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 = false, | ||
| bool | do_smoothing = false, | ||
| bool | do_multilayer_rt_scale = false ) |
Constructor.
| rt_accuracy | r-t accuracy in mm. The r-t accuracy is used internally to distinguish between good and bad segments. |
| func_type | Type of function to be used for the r-t correction; = 1: Legendre polynomial (default), = 2: Chebyshev polynomial, = 3: polygon equidistant in r. |
| ord | Order of the r-t correction function (15 is default). |
| fix_min | =true: r(t0) is fixed in the autocalibration procedure (this is default). |
| fix_max | =true: r(tmax) is fixed in the autocalibration procedure (false is default). |
| max_it | Maximum number of iterations (20 by default). |
| do_parabolic_extrapolation | Use parabolic extrapolations for small and larged drift radii. |
| do_smoothing | Smoothing of the r-t relations after convergence. |
Definition at line 39 of file RtCalibrationCurved.cxx.
| RtCalibrationCurved::~RtCalibrationCurved | ( | ) |
Destructor.
Definition at line 46 of file RtCalibrationCurved.cxx.
| bool RtCalibrationCurved::analyse | ( | const MuonSegVec & | seg | ) |
perform the autocalibration with the segments acquired so far
Definition at line 563 of file RtCalibrationCurved.cxx.
|
overridevirtual |
perform the full autocalibration including iterations (required since MdtCalibInterfaces-00-01-06)
Implements MuonCalib::IMdtCalibration.
Definition at line 101 of file RtCalibrationCurved.cxx.
| bool RtCalibrationCurved::converged | ( | ) | const |
returns true, if the autocalibration has converged
Definition at line 717 of file RtCalibrationCurved.cxx.
|
private |
Definition at line 824 of file RtCalibrationCurved.cxx.
| void RtCalibrationCurved::doNotForceMonotony | ( | ) |
do not force r(t) to be monotonically increasing
Definition at line 97 of file RtCalibrationCurved.cxx.
| void RtCalibrationCurved::doParabolicExtrapolation | ( | ) |
requires that parabolic extrapolation will be used for small and large radii
Definition at line 98 of file RtCalibrationCurved.cxx.
| void RtCalibrationCurved::doSmoothing | ( | ) |
requires that the r-t relationship will be smoothened using the conventional autocalibration after convergence
Definition at line 99 of file RtCalibrationCurved.cxx.
| double RtCalibrationCurved::estimatedRtAccuracy | ( | ) | const |
get the estimated r-t quality (CLHEP::mm), the accuracy of the input r-t is computed at the end of the iteration; in order to get the accuracy of the final r-t, the algorithm has to be rerun with the final r-t as an input
Definition at line 51 of file RtCalibrationCurved.cxx.
| void RtCalibrationCurved::forceMonotony | ( | ) |
force r(t) to be monotonically increasing (this is default)
Definition at line 96 of file RtCalibrationCurved.cxx.
| void MuonCalib::RtCalibrationCurved::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 yes_or_no=false: unit matrix is used (algorithm is equivalent to to the conventional/classical method
|
overridevirtual |
returns the final r-t relationship
Implements MuonCalib::IMdtCalibration.
Definition at line 718 of file RtCalibrationCurved.cxx.
| bool RtCalibrationCurved::handleSegment | ( | MuonCalibSegment & | seg | ) |
analyse the segment "seg" (this method was required before MdtCalibInterfaces-00-01-06)
Definition at line 267 of file RtCalibrationCurved.cxx.
|
private |
Definition at line 725 of file RtCalibrationCurved.cxx.
| int RtCalibrationCurved::iteration | ( | ) | const |
|
inlinevirtualinherited |
| void MuonCalib::RtCalibrationCurved::noParabolicExtrapolation | ( | ) |
no parabolic extrapolation is done
| void RtCalibrationCurved::noSmoothing | ( | ) |
do not smoothen the r-t relationship after convergence
Definition at line 100 of file RtCalibrationCurved.cxx.
| int RtCalibrationCurved::numberOfSegments | ( | ) | const |
get the number of segments which were passed to the algorithm
Definition at line 53 of file RtCalibrationCurved.cxx.
| int RtCalibrationCurved::numberOfSegmentsUsed | ( | ) | const |
get the number of segments which are used in the autocalibration
Definition at line 55 of file RtCalibrationCurved.cxx.
|
private |
Definition at line 910 of file RtCalibrationCurved.cxx.
| double RtCalibrationCurved::reliability | ( | ) | const |
get the reliability of the final r-t relationship: 0: no convergence yet 1: convergence, r(t) is reliable 2: convergence, r(t) is unreliable
Definition at line 49 of file RtCalibrationCurved.cxx.
| void RtCalibrationCurved::setEstimateRtAccuracy | ( | const double | acc | ) |
set the estimated r-t accuracy =acc
Definition at line 61 of file RtCalibrationCurved.cxx.
|
overridevirtual |
set the r-t relationship, the internal autocalibration objects are reset
Implements MuonCalib::IMdtCalibration.
Definition at line 506 of file RtCalibrationCurved.cxx.
| bool RtCalibrationCurved::smoothing | ( | ) | const |
returns true, if the r-t relationship will be smoothened using the conventional autocalibration after convergence; returns false otherwise
Definition at line 59 of file RtCalibrationCurved.cxx.
| void RtCalibrationCurved::switch_off_control_histograms | ( | ) |
the algorithm does not produce controll histograms (this is the default)
Definition at line 88 of file RtCalibrationCurved.cxx.
| void RtCalibrationCurved::switch_on_control_histograms | ( | const std::string & | file_name | ) |
this methods requests control histograms from the algorithms; the algorithm will write them to ROOT file called "file_name"
Definition at line 63 of file RtCalibrationCurved.cxx.
|
private |
Definition at line 803 of file RtCalibrationCurved.cxx.
|
private |
Definition at line 248 of file RtCalibrationCurved.h.
|
private |
Definition at line 268 of file RtCalibrationCurved.h.
|
private |
Definition at line 250 of file RtCalibrationCurved.h.
|
private |
Definition at line 252 of file RtCalibrationCurved.h.
|
private |
Definition at line 255 of file RtCalibrationCurved.h.
|
private |
Definition at line 211 of file RtCalibrationCurved.h.
|
private |
Definition at line 205 of file RtCalibrationCurved.h.
|
private |
Definition at line 182 of file RtCalibrationCurved.h.
|
private |
Definition at line 259 of file RtCalibrationCurved.h.
|
private |
Definition at line 189 of file RtCalibrationCurved.h.
|
private |
Definition at line 234 of file RtCalibrationCurved.h.
|
private |
Definition at line 238 of file RtCalibrationCurved.h.
|
private |
Definition at line 267 of file RtCalibrationCurved.h.
|
private |
Definition at line 266 of file RtCalibrationCurved.h.
|
private |
Definition at line 185 of file RtCalibrationCurved.h.
|
private |
Definition at line 184 of file RtCalibrationCurved.h.
|
private |
Definition at line 187 of file RtCalibrationCurved.h.
|
private |
Definition at line 194 of file RtCalibrationCurved.h.
|
private |
Definition at line 230 of file RtCalibrationCurved.h.
|
private |
Definition at line 231 of file RtCalibrationCurved.h.
|
private |
Definition at line 186 of file RtCalibrationCurved.h.
|
private |
Definition at line 195 of file RtCalibrationCurved.h.
|
private |
Definition at line 224 of file RtCalibrationCurved.h.
|
privateinherited |
Definition at line 52 of file IMdtCalibration.h.
|
private |
Definition at line 260 of file RtCalibrationCurved.h.
|
private |
Definition at line 192 of file RtCalibrationCurved.h.
|
private |
Definition at line 193 of file RtCalibrationCurved.h.
|
private |
Definition at line 241 of file RtCalibrationCurved.h.
|
private |
Definition at line 222 of file RtCalibrationCurved.h.
|
private |
Definition at line 262 of file RtCalibrationCurved.h.
|
private |
Definition at line 261 of file RtCalibrationCurved.h.
|
private |
Definition at line 226 of file RtCalibrationCurved.h.
|
private |
Definition at line 265 of file RtCalibrationCurved.h.
|
private |
Definition at line 263 of file RtCalibrationCurved.h.
|
private |
Definition at line 264 of file RtCalibrationCurved.h.
|
private |
Definition at line 216 of file RtCalibrationCurved.h.
|
private |
Definition at line 202 of file RtCalibrationCurved.h.
|
private |
Definition at line 203 of file RtCalibrationCurved.h.
|
private |
Definition at line 221 of file RtCalibrationCurved.h.
|
private |
Definition at line 199 of file RtCalibrationCurved.h.
|
private |
Definition at line 217 of file RtCalibrationCurved.h.
|
private |
Definition at line 218 of file RtCalibrationCurved.h.
|
private |
Definition at line 258 of file RtCalibrationCurved.h.
|
private |
Definition at line 227 of file RtCalibrationCurved.h.
|
private |
Definition at line 243 of file RtCalibrationCurved.h.
|
private |
Definition at line 244 of file RtCalibrationCurved.h.