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 &vecvec)
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 ParVec & parameters () 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: