Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Types | Public Member Functions | Private Attributes | List of all members
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, More...
 
virtual std::string name () const override final
 Initialization from a
More...
 
virtual double resolution (double t, double bgRate=0.0) const override final
 get the number of parameters used to describe the resolution More...
 
virtual unsigned int nDoF () const override final
 get the coefficients of the r(t) polynomial More...
 
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} {}

Member Function Documentation

◆ CalibFunc()

MuonCalib::CalibFunc::CalibFunc
inlineexplicitinherited

Definition at line 36 of file CalibFunc.h.

36  :
37  m_parameters{vec} {}

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

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

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

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

◆ m_r_max

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

Definition at line 55 of file RadiusResolutionChebyshev.h.

◆ m_r_min

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

Definition at line 56 of file RadiusResolutionChebyshev.h.

◆ m_rtRel

IRtRelationPtr MuonCalib::RadiusResolutionChebyshev::m_rtRel {}
private

Definition at line 54 of file RadiusResolutionChebyshev.h.


The documentation for this class was generated from the following files:
beamspotman.r
def r
Definition: beamspotman.py:676
index
Definition: index.py:1
MuonCalib::RadiusResolutionChebyshev::m_r_max
double m_r_max
Definition: RadiusResolutionChebyshev.h:55
MuonCalib::RadiusResolutionChebyshev::m_r_min
double m_r_min
Definition: RadiusResolutionChebyshev.h:56
MuonCalib::RadiusResolutionChebyshev::nDoF
virtual unsigned int nDoF() const override final
get the coefficients of the r(t) polynomial
Definition: RadiusResolutionChebyshev.cxx:24
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:9
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
x
#define x
MuonCalib::CalibFunc::par
double par(unsigned int index) const
Definition: CalibFunc.h:41
MuonCalib::chebyshevPoly1st
constexpr double chebyshevPoly1st(const unsigned int order, const double x)
Returns the n-th Chebyshev polynomial of first kind evaluated at x (c.f.
Definition: ChebychevPoly.h:13
MuonCalib::RadiusResolutionChebyshev::m_rtRel
IRtRelationPtr m_rtRel
Definition: RadiusResolutionChebyshev.h:54
DeMoScan.index
string index
Definition: DeMoScan.py:364
MuonCalib::CalibFunc::parameters
const ParVec & parameters() const
Definition: CalibFunc.h:40
MuonCalib::CalibFunc::m_parameters
ParVec m_parameters
Definition: CalibFunc.h:48
MuonCalib::CalibFunc::nPar
unsigned int nPar() const
Definition: CalibFunc.h:39
MuonCalib::mapToUnitInterval
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
fitman.k
k
Definition: fitman.py:528