CMS 3D CMS Logo

EcalUncalibRecHitTimingCCAlgo.h
Go to the documentation of this file.
1 #ifndef RecoLocalCalo_EcalRecAlgos_EcalUncalibRecHitTimingCCAlgo_HH
2 #define RecoLocalCalo_EcalRecAlgos_EcalUncalibRecHitTimingCCAlgo_HH
3 
12 
17 
19 public:
20  EcalUncalibRecHitTimingCCAlgo(const float startTime, const float stopTime);
21  double computeTimeCC(const EcalDataFrame& dataFrame,
22  const std::vector<double>& amplitudes,
23  const EcalPedestals::Item* aped,
24  const EcalMGPAGainRatio* aGain,
25  const FullSampleVector& fullpulse,
26  const float targetTimePrecision,
27  const bool correctForOOT = true) const;
28 
29 private:
30  const float startTime_;
31  const float stopTime_;
32 
33  static constexpr int TIME_WHEN_NOT_CONVERGING = 100;
34  static constexpr int MAX_NUM_OF_ITERATIONS = 60;
35  static constexpr int MIN_NUM_OF_ITERATIONS = 2;
36  static constexpr float GLOBAL_TIME_SHIFT = 100;
37  static constexpr float GOLDEN_RATIO = 0.61803399;
38  static constexpr float ONE_MINUS_GOLDEN_RATIO = 1.0 - GOLDEN_RATIO;
39 
40  FullSampleVector interpolatePulse(const FullSampleVector& fullpulse, const float t = 0) const;
41  float computeCC(const std::vector<float>& samples, const FullSampleVector& sigmalTemplate, const float t) const;
42 };
43 
44 #endif
Eigen::Matrix< double, FullSampleVectorSize, 1 > FullSampleVector
double computeTimeCC(const EcalDataFrame &dataFrame, const std::vector< double > &amplitudes, const EcalPedestals::Item *aped, const EcalMGPAGainRatio *aGain, const FullSampleVector &fullpulse, const float targetTimePrecision, const bool correctForOOT=true) const
float computeCC(const std::vector< float > &samples, const FullSampleVector &sigmalTemplate, const float t) const
EcalUncalibRecHitTimingCCAlgo(const float startTime, const float stopTime)
FullSampleVector interpolatePulse(const FullSampleVector &fullpulse, const float t=0) const