File indexing completed on 2023-03-17 10:59:10
0001 #ifndef PhotonEnergyCalibratorRun2_h
0002 #define PhotonEnergyCalibratorRun2_h
0003
0004 #include <TRandom.h>
0005 #include "EgammaAnalysis/ElectronTools/interface/EnergyScaleCorrection_class.h"
0006 #include "EgammaAnalysis/ElectronTools/interface/SimplePhoton.h"
0007 #include "FWCore/Utilities/interface/StreamID.h"
0008
0009 #include <vector>
0010
0011 class PhotonEnergyCalibratorRun2 {
0012 public:
0013
0014 PhotonEnergyCalibratorRun2() {}
0015
0016
0017 PhotonEnergyCalibratorRun2(bool isMC, bool synchronization, std::string correctionFile);
0018
0019 ~PhotonEnergyCalibratorRun2();
0020
0021
0022
0023 void initPrivateRng(TRandom *rnd);
0024
0025
0026
0027 void calibrate(SimplePhoton &photon, edm::StreamID const &id = edm::StreamID::invalidStreamID()) const;
0028
0029
0030
0031 void calibrate(reco::Photon &photon,
0032 unsigned int runNumber,
0033 edm::StreamID const &id = edm::StreamID::invalidStreamID()) const;
0034
0035 protected:
0036
0037 bool isMC_, synchronization_;
0038 TRandom *rng_;
0039 std::vector<double> smearings_;
0040 std::vector<double> scales_;
0041
0042
0043
0044
0045 double gauss(edm::StreamID const &id) const;
0046 EnergyScaleCorrection_class _correctionRetriever;
0047 };
0048
0049 #endif