ATLAS Offline Software
|
#include <RtChebyshev.h>
Public Types | |
using | ParVec = std::vector< double > |
Public Member Functions | |
RtChebyshev (const ParVec &vec) | |
initialization constructor, More... | |
virtual std::string | name () const override final |
get the class name More... | |
virtual double | radius (double t) const override final |
get the drift velocity More... | |
virtual double | driftVelocity (double t) const override final |
get the drift acceleration More... | |
virtual double | driftAcceleration (double t) const override final |
Returns the acceleration of the r-t relation. More... | |
virtual double | tLower () const override final |
< get the lower drift-time bound More... | |
virtual double | tUpper () const override final |
Returns the upper time covered by the r-t. More... | |
virtual double | tBinWidth () const override final |
get the number of parameters used to describe the r(t) relationship More... | |
unsigned int | numberOfRtParameters () const |
get the coefficients of the r(t) polynomial More... | |
std::vector< double > | rtParameters () const |
get the reduced time which is the argument of the Chebyshev polynomial More... | |
double | getReducedTime (const double t) const |
virtual std::string | typeName () const override final |
double | GetTmaxDiff () const |
return the difference in total dirft time between the two multilayers (ML1 - ML2) More... | |
bool | hasTmaxDiff () const |
void | SetTmaxDiff (const double d) |
set the difference in total drift time betwene the two multilayers (ML1 - ML2) More... | |
CalibFunc (const ParVec &vec) | |
unsigned int | nPar () const |
const ParVec & | parameters () const |
double | par (unsigned int index) const |
Static Protected Attributes | |
static constexpr double | s_tBinWidth = 1.e-3 |
Private Attributes | |
std::optional< double > | m_tmax_diff {std::nullopt} |
ParVec | m_parameters {} |
This class contains the implementation of an r(t) relationship parametrized by a linear combination of Chebyshev polyonomials.
Convention:
\[ r(t) = \sum_{k=0}^{K} p_k*T_k(2*(t-0.5*(tupper+tlower))/(tupper-tlower) \]
where T_k is the Chebyshev polynomial of k-th order, tupper and tlower are upper and lower drift-time bounds.
Units: [t] = ns, [r] = mm, [v] = mm/ns.
Definition at line 29 of file RtChebyshev.h.
|
inherited |
Definition at line 35 of file CalibFunc.h.
initialization constructor,
size of ParVec - 2 = order of the r(t) polynomial,
ParVec[0] = t_low (smallest allowed drift time), ParVec[1] = t_up (largest allowed drift time). ParVec[2...] = parameters of the Chebyshev polynomial
Definition at line 9 of file RtChebyshev.cxx.
|
inlineexplicitinherited |
Definition at line 36 of file CalibFunc.h.
|
finaloverridevirtual |
Returns the acceleration of the r-t relation.
Implements MuonCalib::IRtRelation.
Definition at line 63 of file RtChebyshev.cxx.
|
finaloverridevirtual |
get the drift acceleration
Implements MuonCalib::IRtRelation.
Definition at line 47 of file RtChebyshev.cxx.
double RtChebyshev::getReducedTime | ( | const double | t | ) | const |
|
inlineinherited |
return the difference in total dirft time between the two multilayers (ML1 - ML2)
Definition at line 34 of file IRtRelation.h.
|
inlineinherited |
Definition at line 36 of file IRtRelation.h.
|
finaloverridevirtual |
get the class name
get the radius corresponding to the drift time t; if t is not within [t_low, t_up] an unphysical radius of 99999 is returned
Implements MuonCalib::CalibFunc.
Definition at line 20 of file RtChebyshev.cxx.
|
inlineinherited |
Definition at line 39 of file CalibFunc.h.
unsigned int RtChebyshev::numberOfRtParameters | ( | ) | const |
|
inlineinherited |
Definition at line 41 of file CalibFunc.h.
Definition at line 40 of file CalibFunc.h.
|
finaloverridevirtual |
get the drift velocity
Implements MuonCalib::IRtRelation.
Definition at line 23 of file RtChebyshev.cxx.
std::vector< double > RtChebyshev::rtParameters | ( | ) | const |
get the reduced time which is the argument of the Chebyshev polynomial
Definition at line 77 of file RtChebyshev.cxx.
|
inlineinherited |
set the difference in total drift time betwene the two multilayers (ML1 - ML2)
Definition at line 39 of file IRtRelation.h.
|
finaloverridevirtual |
get the number of parameters used to describe the r(t) relationship
Implements MuonCalib::IRtRelation.
Definition at line 21 of file RtChebyshev.cxx.
|
finaloverridevirtual |
< get the lower drift-time bound
get the upper drift-time bound
Implements MuonCalib::IRtRelation.
Definition at line 73 of file RtChebyshev.cxx.
|
finaloverridevirtual |
Returns the upper time covered by the r-t.
Implements MuonCalib::IRtRelation.
Definition at line 74 of file RtChebyshev.cxx.
|
inlinefinaloverridevirtualinherited |
Implements MuonCalib::CalibFunc.
Definition at line 19 of file IRtRelation.h.
|
privateinherited |
Definition at line 51 of file CalibFunc.h.
|
privateinherited |
Definition at line 41 of file IRtRelation.h.
|
staticconstexprprotectedinherited |
Definition at line 43 of file IRtRelation.h.