ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCalib::RadiusResolutionChebyshev Class Reference

RadiusResolutionChebyshev parametrizes the uncertainty on the drift-radius as a function of the drift radius itself and not of the drift time. More...

#include <RadiusResolutionChebyshev.h>

Inheritance diagram for MuonCalib::RadiusResolutionChebyshev:
Collaboration diagram for MuonCalib::RadiusResolutionChebyshev:

Public Types

using ParVec = std::vector<double>

Public Member Functions

 RadiusResolutionChebyshev (const ParVec &vec, const IRtRelationPtr &rtRel)
 initialization constructor,
virtual std::string name () const override final
 Initialization from a.
virtual double resolution (double t, double bgRate=0.0) const override final
 get the number of parameters used to describe the resolution
virtual unsigned int nDoF () const override final
 get the coefficients of the r(t) polynomial
std::vector< double > resParameters () const
virtual std::string typeName () const override final
 CalibFunc (const ParVec &vec)
unsigned int nPar () const
const ParVecparameters () const
double par (unsigned int index) const

Private Attributes

IRtRelationPtr m_rtRel {}
double m_r_max {m_rtRel->radius(m_rtRel->tUpper())}
double m_r_min {m_rtRel->radius(m_rtRel->tLower())}
ParVec m_parameters {}

Detailed Description

RadiusResolutionChebyshev parametrizes the uncertainty on the drift-radius as a function of the drift radius itself and not of the drift time.

It has a pointer to the corresponding rt-relation which is used to translate the drift time into a radius before parsed through the parametrized chebyChev polynomial

Definition at line 24 of file RadiusResolutionChebyshev.h.

Member Typedef Documentation

◆ ParVec

using MuonCalib::CalibFunc::ParVec = std::vector<double>
inherited

Definition at line 35 of file CalibFunc.h.

Constructor & Destructor Documentation

◆ RadiusResolutionChebyshev()

MuonCalib::RadiusResolutionChebyshev::RadiusResolutionChebyshev ( const ParVec & vec,
const IRtRelationPtr & rtRel )

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 RadiusResolutionChebyshev.cxx.

9 :
10 IRtResolution{vec}, m_rtRel{rtRel} {}
std::vector< size_t > vec

Member Function Documentation

◆ CalibFunc()

MuonCalib::CalibFunc::CalibFunc ( const ParVec & vec)
inlineexplicitinherited

Definition at line 36 of file CalibFunc.h.

36 :

◆ name()

std::string MuonCalib::RadiusResolutionChebyshev::name ( ) const
finaloverridevirtual

Initialization from a.

get the class name get the resolution corresponding to the drift time t; if t is not within [t_low, t_up] an unphysical radius of 99999 is returned; the background rate is ignored in present implementation

Implements MuonCalib::CalibFunc.

Definition at line 12 of file RadiusResolutionChebyshev.cxx.

12 {
13 return "RadiusResolutionChebyshev";
14 }

◆ nDoF()

unsigned int MuonCalib::RadiusResolutionChebyshev::nDoF ( ) const
finaloverridevirtual

get the coefficients of the r(t) polynomial

Implements MuonCalib::IRtResolution.

Definition at line 24 of file RadiusResolutionChebyshev.cxx.

24 {
25 return parameters().size();
26 }
const ParVec & parameters() const
Definition CalibFunc.h:40

◆ nPar()

unsigned int MuonCalib::CalibFunc::nPar ( ) const
inlineinherited

Definition at line 39 of file CalibFunc.h.

39{ return m_parameters.size(); }

◆ par()

double MuonCalib::CalibFunc::par ( unsigned int index) const
inlineinherited

Definition at line 41 of file CalibFunc.h.

41 {
42 return index < nPar() ? m_parameters[index] : 0.;
43 }
unsigned int nPar() const
Definition CalibFunc.h:39
str index
Definition DeMoScan.py:362

◆ parameters()

const ParVec & MuonCalib::CalibFunc::parameters ( ) const
inlineinherited

Definition at line 40 of file CalibFunc.h.

40{ return m_parameters; }

◆ resolution()

double MuonCalib::RadiusResolutionChebyshev::resolution ( double t,
double bgRate = 0.0 ) const
finaloverridevirtual

get the number of parameters used to describe the resolution

Implements MuonCalib::IRtResolution.

Definition at line 15 of file RadiusResolutionChebyshev.cxx.

15 {
16 double reso{0.};
17 const double r = m_rtRel->radius(t);
18 const double x = mapToUnitInterval(r, m_r_min, m_r_max);
19 for (unsigned int k = 0; k < nDoF(); ++k) {
20 reso += par(k) * chebyshevPoly1st(k, x);
21 }
22 return reso;
23 }
#define x
double par(unsigned int index) const
Definition CalibFunc.h:41
virtual unsigned int nDoF() const override final
get the coefficients of the r(t) polynomial
int r
Definition globals.cxx:22
constexpr double chebyshevPoly1st(const unsigned int order, const double x)
Returns the n-th Chebyshev polynomial of first kind evaluated at x (c.f.
double mapToUnitInterval(const double x, const double lowerEdge, const double upperEdge)
Maps the number x which is in [lowEdge;upperEdge] to the interval [-1;1].
Definition UtilFunc.h:12

◆ resParameters()

std::vector< double > MuonCalib::RadiusResolutionChebyshev::resParameters ( ) const

Definition at line 27 of file RadiusResolutionChebyshev.cxx.

27 {
28 return parameters();
29 }

◆ typeName()

virtual std::string MuonCalib::IRtResolution::typeName ( ) const
inlinefinaloverridevirtualinherited

Implements MuonCalib::CalibFunc.

Definition at line 24 of file IRtResolution.h.

24{ return "IRtResolution"; }

Member Data Documentation

◆ m_parameters

ParVec MuonCalib::CalibFunc::m_parameters {}
privateinherited

Definition at line 48 of file CalibFunc.h.

48{};

◆ m_r_max

double MuonCalib::RadiusResolutionChebyshev::m_r_max {m_rtRel->radius(m_rtRel->tUpper())}
private

Definition at line 55 of file RadiusResolutionChebyshev.h.

55{m_rtRel->radius(m_rtRel->tUpper())};

◆ m_r_min

double MuonCalib::RadiusResolutionChebyshev::m_r_min {m_rtRel->radius(m_rtRel->tLower())}
private

Definition at line 56 of file RadiusResolutionChebyshev.h.

56{m_rtRel->radius(m_rtRel->tLower())};

◆ m_rtRel

IRtRelationPtr MuonCalib::RadiusResolutionChebyshev::m_rtRel {}
private

Definition at line 54 of file RadiusResolutionChebyshev.h.

54{};

The documentation for this class was generated from the following files: