Loading [MathJax]/jax/output/SVG/config.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
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). More...
 
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.

17 : IMdtSlewCorFunc(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()

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

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


The documentation for this class was generated from the following files:
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
index
Definition: index.py:1
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:9
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
A
MuonCalib::IMdtSlewCorFunc::IMdtSlewCorFunc
IMdtSlewCorFunc(const CalibFunc::ParVec &vec)
Definition: IMdtSlewCorFunc.h:16
DeMoScan.index
string index
Definition: DeMoScan.py:364
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
MuonCalib::CalibFunc::m_parameters
ParVec m_parameters
Definition: CalibFunc.h:48
MuonCalib::CalibFunc::nPar
unsigned int nPar() const
Definition: CalibFunc.h:39
FlavorTagDiscriminants::TruthDecoratorHelpers::TruthType::Lambda
@ Lambda
Definition: TruthDecoratorHelpers.h:21