ATLAS Offline Software
Loading...
Searching...
No Matches
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
24class ICscCalibTool : virtual public IAlgTool {
25
26public:
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
104protected:
105
106};
107
108#endif // MUONCALIBTOOLS_ICSCCALIBTOOL
double charge(const T &p)
Definition AtlasPID.h:997
#define x
#define z
virtual double adcCountToFemtoCoulomb(uint32_t stripHashId, const float adcValue) const =0
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.
virtual std::vector< float > getSamplesFromBipolarFunc(const double driftTime0, const double stripCharge0) const =0
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
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 ...
virtual double stripT0base(uint32_t stripHashId) const =0
virtual double func_prime(const double x, const float slope) const =0
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.
virtual double getNumberOfIntegration2() const =0
virtual double getNumberOfIntegration() const =0
virtual double adcCountToFemtoCoulomb(const float adcValue, const float slope) const =0
given one CSC ADC sample value, convert that to charge in femtoCoulomb
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...
virtual double signal_amplitude(const double driftTime, const double samplingTime) const =0
virtual std::pair< double, double > addBipfunc(const double driftTime0, const double stripCharge0, const double driftTime1, const double stripCharge1) const =0
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
virtual double adcCountToNumberOfElectrons(uint32_t stripHashId, const float adcValue) const =0
virtual int stripStatusBit(uint32_t stripHashId) const =0
virtual double getSignalWidth() const =0
virtual double getZ0() const =0
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...
DeclareInterfaceID(ICscCalibTool, 1, 0)
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
virtual double getSamplingTime() const =0
virtual bool stripT0phase(uint32_t stripHashId) const =0
virtual double getTimeOffset() const =0
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...
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
virtual double signal(const double z) const =0
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
virtual double getLatency() const =0