CMS 3D CMS Logo

EcalUncalibRecHitWorkerMultiFit.h
Go to the documentation of this file.
1 #ifndef RecoLocalCalo_EcalRecProducers_EcalUncalibRecHitRecWorkerGlobal_hh
2 #define RecoLocalCalo_EcalRecProducers_EcalUncalibRecHitRecWorkerGlobal_hh
3 
31 
32 namespace edm {
33  class Event;
34  class EventSetup;
35  class ParameterSet;
37 } // namespace edm
38 
40 public:
44 
45 private:
46  void set(const edm::EventSetup& es) override;
47  void set(const edm::Event& evt) override;
48  void run(const edm::Event& evt, const EcalDigiCollection& digis, EcalUncalibratedRecHitCollection& result) override;
49 
50 public:
51  edm::ParameterSetDescription getAlgoDescription() override;
52 
53 private:
59 
60  double timeCorrection(float ampli, const std::vector<float>& amplitudeBins, const std::vector<float>& shiftBins);
61 
62  const SampleMatrix& noisecor(bool barrel, int gain) const { return noisecors_[barrel ? 1 : 0][gain]; }
63  const SampleMatrixGainArray& noisecor(bool barrel) const { return noisecors_[barrel ? 1 : 0]; }
64 
65  // multifit method
66  std::array<SampleMatrixGainArray, 2> noisecors_;
71 
74 
75  // determine which of the samples must actually be used by ECAL local reco
77 
78  // time algorithm to be used to set the jitter and its uncertainty
79  enum TimeAlgo { noMethod, ratioMethod, weightsMethod };
80  TimeAlgo timealgo_ = noMethod;
81 
82  // time weights method
103 
104  // ratio method
105  std::vector<double> EBtimeFitParameters_;
106  std::vector<double> EEtimeFitParameters_;
107  std::vector<double> EBamplitudeFitParameters_;
108  std::vector<double> EEamplitudeFitParameters_;
109  std::pair<double, double> EBtimeFitLimits_;
110  std::pair<double, double> EEtimeFitLimits_;
111 
114 
130 
132 
135  std::vector<double> ebPulseShape_;
136  std::vector<double> eePulseShape_;
137 
138  // chi2 thresholds for flags settings
143 };
144 
145 #endif
std::array< SampleMatrixGainArray, 2 > noisecors_
EcalUncalibRecHitMultiFitAlgo multiFitMethod_
std::array< SampleMatrix, NGains > SampleMatrixGainArray
EcalUncalibRecHitTimeWeightsAlgo< EEDataFrame > weightsMethod_endcap_
edm::ESHandle< EcalWeightXtalGroups > grps
math::Matrix< 3, 10 >::type EcalWeightMatrix
Definition: EcalWeightSet.h:20
edm::EDGetTokenT< unsigned int > bunchSpacing_
EcalUncalibRecHitRatioMethodAlgo< EBDataFrame > ratioMethod_barrel_
EcalUncalibRecHitRatioMethodAlgo< EEDataFrame > ratioMethod_endcap_
edm::ESHandle< EcalPulseShapes > pulseshapes
edm::ESHandle< EcalTimeCalibConstants > itime
edm::ESHandle< EcalTimeBiasCorrections > timeCorrBias_
edm::ESHandle< EcalPulseCovariances > pulsecovariances
Eigen::Matrix< double, SampleVectorSize, SampleVectorSize > SampleMatrix
EcalUncalibRecHitTimeWeightsAlgo< EBDataFrame > weightsMethod_barrel_
edm::ESHandle< EcalTimeOffsetConstant > offtime
HLT enums.
const SampleMatrix & noisecor(bool barrel, int gain) const
edm::ESHandle< EcalSampleMask > sampleMaskHand_
const SampleMatrixGainArray & noisecor(bool barrel) const
edm::ESHandle< EcalSamplesCorrelation > noisecovariances