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  EcalUncalibratedRecHit& uncalibRecHit,
27  float& errOnTime,
28  const float targetTimePrecision,
29  const bool correctForOOT = true) const;
30 
31 private:
32  const float startTime_;
33  const float stopTime_;
34 
35  static constexpr int TIME_WHEN_NOT_CONVERGING = 100;
36  static constexpr int MAX_NUM_OF_ITERATIONS = 60;
37  static constexpr int MIN_NUM_OF_ITERATIONS = 2;
38  static constexpr float GLOBAL_TIME_SHIFT = 100;
39  static constexpr float GOLDEN_RATIO = 0.61803399;
40  static constexpr float ONE_MINUS_GOLDEN_RATIO = 1.0 - GOLDEN_RATIO;
41 
42  FullSampleVector interpolatePulse(const FullSampleVector& fullpulse, const float t = 0) const;
43  float computeCC(const std::vector<float>& samples, const FullSampleVector& sigmalTemplate, const float t) const;
44 };
45 
46 #endif
Eigen::Matrix< double, FullSampleVectorSize, 1 > FullSampleVector
float computeCC(const std::vector< float > &samples, const FullSampleVector &sigmalTemplate, const float t) const
EcalUncalibRecHitTimingCCAlgo(const float startTime, const float stopTime)
double computeTimeCC(const EcalDataFrame &dataFrame, const std::vector< double > &amplitudes, const EcalPedestals::Item *aped, const EcalMGPAGainRatio *aGain, const FullSampleVector &fullpulse, EcalUncalibratedRecHit &uncalibRecHit, float &errOnTime, const float targetTimePrecision, const bool correctForOOT=true) const
FullSampleVector interpolatePulse(const FullSampleVector &fullpulse, const float t=0) const