CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
EcalUncalibRecHitWorkerGlobal.h
Go to the documentation of this file.
1 #ifndef RecoLocalCalo_EcalRecProducers_EcalUncalibRecHitRecWorkerGlobal_hh
2 #define RecoLocalCalo_EcalRecProducers_EcalUncalibRecHitRecWorkerGlobal_hh
3 
36 
37 namespace edm {
38  class Event;
39  class EventSetup;
40  class ParameterSet;
42 } // namespace edm
43 
45 public:
47  EcalUncalibRecHitWorkerGlobal() = default; // for EcalUncalibRecHitFillDescriptionWorkerFactory
49 
50  void set(const edm::EventSetup& es) override;
51  bool run(const edm::Event& evt,
54 
56 
57 protected:
58  double pedVec[3];
59  double pedRMSVec[3];
60  double gainRatios[3];
61 
66 
67  template <class C>
68  int isSaturated(const C& digi);
69 
70  double timeCorrection(float ampli, const std::vector<float>& amplitudeBins, const std::vector<float>& shiftBins);
71 
72  // weights method
81  EEShape testbeamEEShape; // used in the chi2
82  EBShape testbeamEBShape; // can be replaced by simple shape arrays of float in the future
83 
84  // determie which of the samples must actually be used by ECAL local reco
87 
88  // ratio method
89  std::vector<double> EBtimeFitParameters_;
90  std::vector<double> EEtimeFitParameters_;
91  std::vector<double> EBamplitudeFitParameters_;
92  std::vector<double> EEamplitudeFitParameters_;
93  std::pair<double, double> EBtimeFitLimits_;
94  std::pair<double, double> EEtimeFitLimits_;
95 
98 
114 
117 
122  std::vector<double> ebPulseShape_;
123  std::vector<double> eePulseShape_;
124 
125  // chi2 method
130  std::vector<double> EBchi2Parameters_;
131  std::vector<double> EEchi2Parameters_;
132 };
133 
134 #endif
std::pair< double, double > EEtimeFitLimits_
edm::ESHandle< EcalTimeOffsetConstant > offtime_
edm::ESGetToken< EcalTBWeights, EcalTBWeightsRcd > tokenWgts_
edm::ESHandle< EcalTimeBiasCorrections > timeCorrBias_
edm::ESGetToken< EcalTimeCalibConstants, EcalTimeCalibConstantsRcd > tokenItime_
const edm::EventSetup & c
edm::ESHandle< EcalWeightXtalGroups > grps_
double timeCorrection(float ampli, const std::vector< float > &amplitudeBins, const std::vector< float > &shiftBins)
EcalUncalibRecHitRecWeightsAlgo< EBDataFrame > weightsMethod_barrel_
math::Matrix< 10, 10 >::type EcalChi2WeightMatrix
Definition: EcalWeightSet.h:20
math::Matrix< 3, 10 >::type EcalWeightMatrix
Definition: EcalWeightSet.h:19
void set(const edm::EventSetup &es) override
edm::ESGetToken< EcalSampleMask, EcalSampleMaskRcd > tokenSampleMask_
EcalUncalibRecHitRatioMethodAlgo< EEDataFrame > ratioMethod_endcap_
tuple result
Definition: mps_fire.py:311
edm::ESGetToken< EcalGainRatios, EcalGainRatiosRcd > tokenGains_
EcalUncalibRecHitRatioMethodAlgo< EBDataFrame > ratioMethod_barrel_
edm::ESGetToken< EcalTimeBiasCorrections, EcalTimeBiasCorrectionsRcd > tokenTimeCorrBias_
bool run(const edm::Event &evt, const EcalDigiCollection::const_iterator &digi, EcalUncalibratedRecHitCollection &result) override
edm::ESHandle< EcalGainRatios > gains_
Definition: EBShape.h:7
edm::ESHandle< EcalPedestals > peds_
edm::ESHandle< EcalTBWeights > wgts_
std::pair< double, double > EBtimeFitLimits_
const EcalWeightSet::EcalChi2WeightMatrix * chi2mat[2]
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
const EcalWeightSet::EcalWeightMatrix * weights[2]
EcalUncalibRecHitRecWeightsAlgo< EEDataFrame > weightsMethod_endcap_
edm::ParameterSetDescription getAlgoDescription() override
edm::ESHandle< EcalSampleMask > sampleMaskHand_
edm::ESGetToken< EcalWeightXtalGroups, EcalWeightXtalGroupsRcd > tokenGrps_
edm::ESGetToken< EcalTimeOffsetConstant, EcalTimeOffsetConstantRcd > tokenOfftime_
edm::ESHandle< EcalTimeCalibConstants > itime_
edm::ESGetToken< EcalPedestals, EcalPedestalsRcd > tokenPeds_
Definition: EEShape.h:7