Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:39

0001 /****************************************************************************
0002  *
0003  * This is a part of CTPPS offline software.
0004  * Authors:
0005  *   Laurent Forthomme (laurent.forthomme@cern.ch)
0006  *   Nicola Minafra (nicola.minafra@cern.ch)
0007  *   Filip Dej
0008  *   Christopher Misan (krzysztof.misan@cern.ch)
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