ATLAS Offline Software
Loading...
Searching...
No Matches
MdtSlewCorFuncHardcoded.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
4 MDT Timeslew correction for AMT digitization chip.
5 Timeslew correction parmeterized as function of ADC: timeslew = 109/q(ADC) [ns]
6 where q = integrated charge of MDT signal, derived from AMT parameters, see ATL-MUON-2002-003
7 constant 109 determined by empirical fit of data, see
8 https://indico.cern.ch/event/115774/contributions/69612/attachments/2260534/3836764/110912_rauscher_timeslewing.pdf
9
10 Note: Timeslew correction should be updated for Run4 when AMT is replaced by a new MDT digitization chip
11 Author: Felix Rauscher (2011)
12 Revision: Edward Diehl (2021)
13 1. Move initialization of LUT from correction function to an initialize function for AthenaMT compatibility.
14 2. Change to LUT from a map to vector which is more accurate and has lower access time.
15*/
16
18
19#include <cmath>
20
21namespace MuonCalib {
22
23 double MdtSlewCorFuncHardcoded::correction(double /*t*/, double adc) const {
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 }
35
36} // namespace MuonCalib
virtual double correction(double t, double adc) const override
Return time correction (ns).
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
hold the test vectors and ease the comparison