ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCalib::IRtRelation Class Referenceabstract

generic interface for a rt-relation More...

#include <IRtRelation.h>

Inheritance diagram for MuonCalib::IRtRelation:
Collaboration diagram for MuonCalib::IRtRelation:

Public Types

using ParVec = std::vector<double>

Public Member Functions

virtual ~IRtRelation ()=default
virtual std::string typeName () const override final
virtual double radius (double t) const =0
 returns drift radius for a given time
virtual double driftVelocity (double t) const =0
 Returns the drift velocity for a given time.
virtual double driftAcceleration (double t) const =0
 Returns the acceleration of the r-t relation.
virtual double tLower () const =0
 Returns the lower time covered by the r-t.
virtual double tUpper () const =0
 Returns the upper time covered by the r-t.
virtual double tBinWidth () const =0
 Returns the step-size for the sampling.
virtual unsigned nDoF () const =0
 Returns the number of degrees of freedom of the relation function.
double GetTmaxDiff () const
 return the difference in total dirft time between the two multilayers (ML1 - ML2)
bool hasTmaxDiff () const
void SetTmaxDiff (const double d)
 set the difference in total drift time betwene the two multilayers (ML1 - ML2)
double getReducedTime (const double t) const
 map the in the interval [tLower;tUpper] onto the interval [-1.;1.
double dReducedTimeDt () const
 CalibFunc (const ParVec &vec)
unsigned int nPar () const
const ParVecparameters () const
double par (unsigned int index) const
virtual std::string name () const =0

Static Protected Attributes

static constexpr double s_tBinWidth = 1.e-3

Private Attributes

std::optional< double > m_tmax_diff {std::nullopt}
ParVec m_parameters {}

Detailed Description

generic interface for a rt-relation

Definition at line 19 of file IRtRelation.h.

Member Typedef Documentation

◆ ParVec

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

Definition at line 35 of file CalibFunc.h.

Constructor & Destructor Documentation

◆ ~IRtRelation()

virtual MuonCalib::IRtRelation::~IRtRelation ( )
virtualdefault

Member Function Documentation

◆ CalibFunc()

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

Definition at line 36 of file CalibFunc.h.

36 :
std::vector< size_t > vec

◆ dReducedTimeDt()

double MuonCalib::IRtRelation::dReducedTimeDt ( ) const
inline

Definition at line 53 of file IRtRelation.h.

53 {
54 return unitIntervalPrime(tLower(), tUpper());
55 }
virtual double tLower() const =0
Returns the lower time covered by the r-t.
virtual double tUpper() const =0
Returns the upper time covered by the r-t.
double unitIntervalPrime(const double lowerEdge, const double upperEdge)
Definition UtilFunc.h:15

◆ driftAcceleration()

virtual double MuonCalib::IRtRelation::driftAcceleration ( double t) const
pure virtual

◆ driftVelocity()

virtual double MuonCalib::IRtRelation::driftVelocity ( double t) const
pure virtual

◆ getReducedTime()

double MuonCalib::IRtRelation::getReducedTime ( const double t) const
inline

map the in the interval [tLower;tUpper] onto the interval [-1.;1.

] where tLower is mapped to -1. & tUpper to 1.;

Definition at line 49 of file IRtRelation.h.

49 {
50 return mapToUnitInterval(t, tLower(), tUpper());
51 }
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

◆ GetTmaxDiff()

double MuonCalib::IRtRelation::GetTmaxDiff ( ) const
inline

return the difference in total dirft time between the two multilayers (ML1 - ML2)

Definition at line 40 of file IRtRelation.h.

40{ return m_tmax_diff.value_or(0.); }
std::optional< double > m_tmax_diff
Definition IRtRelation.h:58

◆ hasTmaxDiff()

bool MuonCalib::IRtRelation::hasTmaxDiff ( ) const
inline

Definition at line 42 of file IRtRelation.h.

42{ return m_tmax_diff.has_value(); }

◆ name()

◆ nDoF()

virtual unsigned MuonCalib::IRtRelation::nDoF ( ) const
pure virtual

Returns the number of degrees of freedom of the relation function.

Implemented in MuonCalib::RtChebyshev, MuonCalib::RtLegendre, MuonCalib::RtRelationLookUp, MuonCalib::RtSimplePolynomial, and MuonCalib::RtSpline.

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

◆ radius()

virtual double MuonCalib::IRtRelation::radius ( double t) const
pure virtual

◆ SetTmaxDiff()

void MuonCalib::IRtRelation::SetTmaxDiff ( const double d)
inline

set the difference in total drift time betwene the two multilayers (ML1 - ML2)

Definition at line 45 of file IRtRelation.h.

◆ tBinWidth()

virtual double MuonCalib::IRtRelation::tBinWidth ( ) const
pure virtual

◆ tLower()

virtual double MuonCalib::IRtRelation::tLower ( ) const
pure virtual

◆ tUpper()

virtual double MuonCalib::IRtRelation::tUpper ( ) const
pure virtual

◆ typeName()

virtual std::string MuonCalib::IRtRelation::typeName ( ) const
inlinefinaloverridevirtual

Implements MuonCalib::CalibFunc.

Definition at line 23 of file IRtRelation.h.

23{ return "IRtRelation"; }

Member Data Documentation

◆ m_parameters

ParVec MuonCalib::CalibFunc::m_parameters {}
privateinherited

Definition at line 48 of file CalibFunc.h.

48{};

◆ m_tmax_diff

std::optional<double> MuonCalib::IRtRelation::m_tmax_diff {std::nullopt}
private

Definition at line 58 of file IRtRelation.h.

58{std::nullopt};

◆ s_tBinWidth

double MuonCalib::IRtRelation::s_tBinWidth = 1.e-3
staticconstexprprotected

Definition at line 60 of file IRtRelation.h.


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