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

An implementation of a time slew correction function for AMT digitization chip. More...

#include <MdtSlewCorFuncHardcoded.h>

Inheritance diagram for MuonCalib::MdtSlewCorFuncHardcoded:
Collaboration diagram for MuonCalib::MdtSlewCorFuncHardcoded:

Public Types

using ParVec = std::vector<double>

Public Member Functions

 MdtSlewCorFuncHardcoded (const CalibFunc::ParVec &vec)
virtual std::string name () const override
virtual double correction (double t, double adc) const override
 Return time correction (ns).
virtual std::string typeName () const
unsigned int nPar () const
const ParVecparameters () const
double par (unsigned int index) const

Static Public Member Functions

static unsigned int nUsedPar ()

Private Attributes

ParVec m_parameters {}

Detailed Description

An implementation of a time slew correction function for AMT digitization chip.

Definition at line 15 of file MdtSlewCorFuncHardcoded.h.

Member Typedef Documentation

◆ ParVec

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

Definition at line 35 of file CalibFunc.h.

Constructor & Destructor Documentation

◆ MdtSlewCorFuncHardcoded()

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

Definition at line 17 of file MdtSlewCorFuncHardcoded.h.

std::vector< size_t > vec
IMdtSlewCorFunc(const CalibFunc::ParVec &vec)

Member Function Documentation

◆ correction()

double MuonCalib::MdtSlewCorFuncHardcoded::correction ( double t,
double adc ) const
overridevirtual

Return time correction (ns).

Input: t = drift-time [ns], adc = ADC count after ADC-calibration correction

Implements MuonCalib::IMdtSlewCorFunc.

Definition at line 23 of file MdtSlewCorFuncHardcoded.cxx.

23 {
24 // Timeslew correction is negligible (<0.05 ns) for ADC>400 so do not bother computing it.
25 // In addition there are very few hits with ADC>400
26 // Constant 109 is from an optimization of the timeslew correction
27 // calibrated_p(i) is the integrated charge as a function of ADC
28 if (adc > 400. || adc < 0.) return 0.;
29 static const double A = 109. * std::exp(-1.11925e+00);
30 constexpr double adc_chan_conversion = 25. / 32.;
31 constexpr double Lambda = -2.08708e-02 * adc_chan_conversion; // ADC to ns
32 // Convert ADC to integrated charge for AMT chip, see ATL-MUON-2002-003
33 return A * std::exp(adc * Lambda);
34 }

◆ name()

virtual std::string MuonCalib::MdtSlewCorFuncHardcoded::name ( ) const
inlineoverridevirtual

Implements MuonCalib::CalibFunc.

Definition at line 18 of file MdtSlewCorFuncHardcoded.h.

18{ return "MdtSlewCorFuncHardCoded"; }

◆ nPar()

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

Definition at line 39 of file CalibFunc.h.

39{ return m_parameters.size(); }

◆ nUsedPar()

unsigned int MuonCalib::MdtSlewCorFuncHardcoded::nUsedPar ( )
inlinestatic

Definition at line 19 of file MdtSlewCorFuncHardcoded.h.

19{ return 0; }

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

◆ typeName()

virtual std::string MuonCalib::IMdtSlewCorFunc::typeName ( ) const
inlinevirtualinherited

Implements MuonCalib::CalibFunc.

Definition at line 18 of file IMdtSlewCorFunc.h.

18{ return "IMdtSlewCorFunc"; }

Member Data Documentation

◆ m_parameters

ParVec MuonCalib::CalibFunc::m_parameters {}
privateinherited

Definition at line 48 of file CalibFunc.h.

48{};

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