File indexing completed on 2023-03-17 11:21:39
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef RecoPPS_Local_TotemTimingConversions
0013 #define RecoPPS_Local_TotemTimingConversions
0014
0015 #include "CommonTools/Utils/interface/FormulaEvaluator.h"
0016
0017 #include "DataFormats/CTPPSDigi/interface/TotemTimingDigi.h"
0018 #include "CondFormats/PPSObjects/interface/PPSTimingCalibration.h"
0019
0020 #include <string>
0021 #include <vector>
0022
0023 class TotemTimingConversions {
0024 public:
0025 TotemTimingConversions(double sampicSamplingPeriodNs, bool mergeTimePeaks, const PPSTimingCalibration& calibration);
0026
0027 float timeOfFirstSample(const TotemTimingDigi& digi) const;
0028 float triggerTime(const TotemTimingDigi& digi) const;
0029 float timePrecision(const TotemTimingDigi& digi) const;
0030 std::vector<float> timeSamples(const TotemTimingDigi& digi) const;
0031 std::vector<float> voltSamples(const TotemTimingDigi& digi) const;
0032
0033 private:
0034 static constexpr float SAMPIC_ADC_V = 1. / 256;
0035 static constexpr int SAMPIC_MAX_NUMBER_OF_SAMPLES = 64;
0036 static constexpr int ACCEPTED_TIME_RADIUS = 4;
0037 static constexpr unsigned long CELL0_MASK = 0xfffffff000;
0038
0039 PPSTimingCalibration calibration_;
0040 double sampicSamplingPeriodNs_;
0041 bool mergeTimePeaks_;
0042 reco::FormulaEvaluator calibrationFunction_;
0043 };
0044
0045 #endif