ATLAS Offline Software
ICscCalibTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONCALIBTOOLS_ICSCCALIBTOOL
6 #define MUONCALIBTOOLS_ICSCCALIBTOOL
7 
8 /*********************************************************************************
9  Name : ICscCalibTool.h
10  Package : offline/MuonSpectrometer/MuonCalib/CscCalib/CscCalibTools
11  Author : Ketevi A. Assamagan
12  Created : March 2005
13 
14  DESCRIPTION:
15  Abstract interface for run CSC calibration tools. Theses need the conditions
16  data. The Tools to write and read the conditions data are elsewhere
17 *********************************************************************************/
18 
19 #include "GaudiKernel/IAlgTool.h"
20 #include <inttypes.h>
21 
22 #include <vector>
23 
24 class ICscCalibTool : virtual public IAlgTool {
25 
26 public:
27 
29 
34  virtual int femtoCoulombToADCCount (uint32_t stripHashId, const double femtoCoulombs) const = 0;
35 
38  virtual int numberOfElectronsToADCCount(uint32_t stripHashId, const int numberOfElecEquiv) const = 0;
39 
41  virtual double adcCountToFemtoCoulomb (const float adcValue, const float slope) const = 0;
42  virtual double adcCountToFemtoCoulomb (uint32_t stripHashId, const float adcValue) const = 0;
43 
45  virtual double adcCountToNumberOfElectrons (const float adcValue, const float slope) const = 0;
46  virtual double adcCountToNumberOfElectrons (uint32_t stripHashId, const float adcValue) const = 0;
47 
50  virtual bool adcToCharge(const std::vector<uint16_t>& samples, uint32_t stripHashId,
51  std::vector<float>& charges) const = 0;
52 
56  virtual bool findCharge(const float samplingTime, const unsigned int samplingPhase,
57  const std::vector<float>& samples, double & charge, double & time) const = 0;
58 
61  virtual double stripNoise ( uint32_t stripHashId, const bool convert=true ) const = 0;
62 
65  virtual double stripRMS ( uint32_t stripHashId, const bool convert=true ) const = 0;
66 
69  virtual double stripF001 ( uint32_t stripHashId, const bool convert=true ) const = 0;
70 
73  virtual double stripPedestal ( uint32_t stripHashId, const bool convert=true ) const = 0;
74 
77  virtual bool isGood ( uint32_t stripHashId ) const = 0;
78  virtual int stripStatusBit ( uint32_t stripHashId ) const =0;
79 
82  virtual double func (const double x, const float slope) const = 0;
83  virtual double func_prime (const double x, const float slope) const = 0;
84 
85  virtual double signal (const double z) const=0;
86  virtual double signal_amplitude (const double driftTime, const double samplingTime) const=0;
87  virtual double getZ0() const=0;
88  virtual double getSamplingTime() const=0;
89  virtual double getSignalWidth() const=0;
90  virtual double getTimeOffset() const=0;
91  virtual double getNumberOfIntegration() const=0;
92  virtual double getNumberOfIntegration2() const=0;
93 
94  virtual bool stripT0phase ( uint32_t stripHashId ) const =0;
95  virtual double stripT0base ( uint32_t stripHashId ) const =0;
96 
97 
98  virtual std::pair<double,double> addBipfunc(const double driftTime0, const double stripCharge0,
99  const double driftTime1, const double stripCharge1) const =0;
100 
101  virtual std::vector<float> getSamplesFromBipolarFunc(const double driftTime0, const double stripCharge0) const =0;
102  virtual double getLatency() const =0;
103 
104 protected:
105 
106 };
107 
108 #endif // MUONCALIBTOOLS_ICSCCALIBTOOL
ICscCalibTool::getLatency
virtual double getLatency() const =0
ICscCalibTool::stripPedestal
virtual double stripPedestal(uint32_t stripHashId, const bool convert=true) const =0
return the pedestal on the readout strip in ADC counts or Number of Electrons
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
ICscCalibTool::signal
virtual double signal(const double z) const =0
ICscCalibTool::getTimeOffset
virtual double getTimeOffset() const =0
ICscCalibTool::stripStatusBit
virtual int stripStatusBit(uint32_t stripHashId) const =0
ICscCalibTool::func_prime
virtual double func_prime(const double x, const float slope) const =0
ICscCalibTool::adcCountToNumberOfElectrons
virtual double adcCountToNumberOfElectrons(const float adcValue, const float slope) const =0
given one CSC ADC sample value, convert that to charge in number of equivalent electrons
ICscCalibTool::stripRMS
virtual double stripRMS(uint32_t stripHashId, const bool convert=true) const =0
return the RMS on the readout strip in ADC counts or Number of Electrons
ICscCalibTool::getNumberOfIntegration2
virtual double getNumberOfIntegration2() const =0
ICscCalibTool::numberOfElectronsToADCCount
virtual int numberOfElectronsToADCCount(uint32_t stripHashId, const int numberOfElecEquiv) const =0
Here the charge on the CSC strip is given in number of equivalent electrons; conversion to ADC counts...
ICscCalibTool::func
virtual double func(const double x, const float slope) const =0
these function used in the AOD <-> conversion; may not be needed once we integrate the calibration se...
x
#define x
ICscCalibTool::isGood
virtual bool isGood(uint32_t stripHashId) const =0
return the status of this strip, good channel, dead channel, noisy channel - it will return true for ...
ICscCalibTool::getSamplingTime
virtual double getSamplingTime() const =0
ICscCalibTool::signal_amplitude
virtual double signal_amplitude(const double driftTime, const double samplingTime) const =0
ICscCalibTool::getSignalWidth
virtual double getSignalWidth() const =0
TRT::Hit::driftTime
@ driftTime
Definition: HitInfo.h:43
ICscCalibTool::stripF001
virtual double stripF001(uint32_t stripHashId, const bool convert=true) const =0
return the F001 on the readout strip in ADC counts or Number of Electrons
z
#define z
01SubmitToGrid.samples
samples
Definition: 01SubmitToGrid.py:58
ICscCalibTool::stripT0phase
virtual bool stripT0phase(uint32_t stripHashId) const =0
ICscCalibTool
Definition: ICscCalibTool.h:24
ICscCalibTool::stripNoise
virtual double stripNoise(uint32_t stripHashId, const bool convert=true) const =0
return the noise (sigma) on the readout strip in ADC counts or Number of Electrons
ICscCalibTool::adcCountToFemtoCoulomb
virtual double adcCountToFemtoCoulomb(const float adcValue, const float slope) const =0
given one CSC ADC sample value, convert that to charge in femtoCoulomb
ICscCalibTool::adcToCharge
virtual bool adcToCharge(const std::vector< uint16_t > &samples, uint32_t stripHashId, std::vector< float > &charges) const =0
Conversion of ADC value to charge - Here the charges is returned in numbers of equivalent electrons.
ICscCalibTool::femtoCoulombToADCCount
virtual int femtoCoulombToADCCount(uint32_t stripHashId, const double femtoCoulombs) const =0
given a charge on the CSC strip, convert that to ADC counts this is needed in the digitization for ex...
ICscCalibTool::getNumberOfIntegration
virtual double getNumberOfIntegration() const =0
charge
double charge(const T &p)
Definition: AtlasPID.h:494
ICscCalibTool::stripT0base
virtual double stripT0base(uint32_t stripHashId) const =0
ICscCalibTool::addBipfunc
virtual std::pair< double, double > addBipfunc(const double driftTime0, const double stripCharge0, const double driftTime1, const double stripCharge1) const =0
TMVAToMVAUtils::convert
std::unique_ptr< MVAUtils::BDT > convert(TMVA::MethodBDT *bdt, bool isRegression=true, bool useYesNoLeaf=false)
Definition: TMVAToMVAUtils.h:114
ICscCalibTool::findCharge
virtual bool findCharge(const float samplingTime, const unsigned int samplingPhase, const std::vector< float > &samples, double &charge, double &time) const =0
Given sampling values for a CSC strip, find the corresponding charge by fitting the time samples.
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ICscCalibTool::getSamplesFromBipolarFunc
virtual std::vector< float > getSamplesFromBipolarFunc(const double driftTime0, const double stripCharge0) const =0
ICscCalibTool::DeclareInterfaceID
DeclareInterfaceID(ICscCalibTool, 1, 0)
ICscCalibTool::getZ0
virtual double getZ0() const =0