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 
33 namespace edm {
34  class Event;
35  class EventSetup;
36  class ParameterSet;
38 }
39 
41 
42  public:
46  private:
47  void set(const edm::EventSetup& es) override;
48  void set(const edm::Event& evt) override;
49  void run(const edm::Event& evt, const EcalDigiCollection & digis, EcalUncalibratedRecHitCollection & result) override;
50  public:
51  edm::ParameterSetDescription getAlgoDescription() override;
52  private:
53 
59 
60  double timeCorrection(float ampli,
61  const std::vector<float>& amplitudeBins, const std::vector<float>& shiftBins);
62 
63  const SampleMatrix & noisecor(bool barrel, int gain) const { return noisecors_[barrel?1:0][gain];}
64  const SampleMatrixGainArray &noisecor(bool barrel) const { return noisecors_[barrel?1:0]; }
65 
66  // multifit method
67  std::array<SampleMatrixGainArray, 2> noisecors_;
72 
75 
76  // determine which of the samples must actually be used by ECAL local reco
78 
79  // time algorithm to be used to set the jitter and its uncertainty
80  enum TimeAlgo {noMethod, ratioMethod, weightsMethod};
81  TimeAlgo timealgo_=noMethod;
82 
83  // time weights method
104 
105  // ratio method
106  std::vector<double> EBtimeFitParameters_;
107  std::vector<double> EEtimeFitParameters_;
108  std::vector<double> EBamplitudeFitParameters_;
109  std::vector<double> EEamplitudeFitParameters_;
110  std::pair<double,double> EBtimeFitLimits_;
111  std::pair<double,double> EEtimeFitLimits_;
112 
115 
131 
133 
136  std::vector<double> ebPulseShape_;
137  std::vector<double> eePulseShape_;
138 
139 
140  // chi2 thresholds for flags settings
145 
146 
147 };
148 
149 #endif
std::array< SampleMatrixGainArray, 2 > noisecors_
std::array< SampleMatrix, NGains > SampleMatrixGainArray
EcalUncalibRecHitMultiFitAlgo multiFitMethod_
EcalUncalibRecHitTimeWeightsAlgo< EEDataFrame > weightsMethod_endcap_
edm::ESHandle< EcalWeightXtalGroups > grps
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.
math::Matrix< 3, 10 >::type EcalWeightMatrix
Definition: EcalWeightSet.h:22
const SampleMatrix & noisecor(bool barrel, int gain) const
edm::ESHandle< EcalSampleMask > sampleMaskHand_
const SampleMatrixGainArray & noisecor(bool barrel) const
edm::ESHandle< EcalSamplesCorrelation > noisecovariances