File indexing completed on 2024-09-07 04:36:05
0001
0002
0003
0004
0005
0006
0007 #ifndef STANDALONE_ECALCORR
0008 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
0009 #include "DataFormats/EgammaCandidates/interface/Photon.h"
0010 #include "DataFormats/PatCandidates/interface/Electron.h"
0011 #include "DataFormats/PatCandidates/interface/Photon.h"
0012 #endif
0013
0014 #include <string>
0015 #include <iostream>
0016
0017 class EcalIsolationCorrector {
0018 public:
0019 enum RunRange { RunAB, RunC, RunD };
0020
0021 EcalIsolationCorrector(bool forElectrons);
0022 ~EcalIsolationCorrector() {}
0023
0024 #ifndef STANDALONE_ECALCORR
0025
0026 float correctForNoise(
0027 reco::GsfElectron e, bool isData = false, float intL_AB = 5.5, float intL_C = 6.7, float intL_D = 7.3);
0028
0029 float correctForNoise(reco::GsfElectron e, int runNumber, bool isData = false);
0030 float correctForNoise(reco::GsfElectron e, std::string runName, bool isData = false);
0031
0032
0033 float correctForHLTDefinition(
0034 reco::GsfElectron e, bool isData = false, float intL_AB = 5.5, float intL_C = 6.7, float intL_D = 7.3);
0035
0036 float correctForHLTDefinition(reco::GsfElectron e, int runNumber, bool isData = false);
0037 float correctForHLTDefinition(reco::GsfElectron e, std::string runName, bool isData = false);
0038
0039
0040 float correctForNoise(
0041 reco::Photon p, bool isData = false, float intL_AB = 5.5, float intL_C = 6.7, float intL_D = 7.3);
0042
0043 float correctForNoise(reco::Photon p, int runNumber, bool isData = false);
0044 float correctForNoise(reco::Photon p, std::string runName, bool isData = false);
0045
0046
0047 float correctForHLTDefinition(
0048 reco::Photon p, bool isData = false, float intL_AB = 5.5, float intL_C = 6.7, float intL_D = 7.3);
0049
0050 float correctForHLTDefinition(reco::Photon p, int runNumber, bool isData = false);
0051 float correctForHLTDefinition(reco::Photon p, std::string runName, bool isData = false);
0052
0053
0054 float correctForNoise(
0055 pat::Electron e, bool isData = false, float intL_AB = 5.5, float intL_C = 6.7, float intL_D = 7.3);
0056
0057 float correctForNoise(pat::Electron e, int runNumber, bool isData = false);
0058 float correctForNoise(pat::Electron e, std::string runName, bool isData = false);
0059
0060
0061 float correctForHLTDefinition(
0062 pat::Electron e, bool isData = false, float intL_AB = 5.5, float intL_C = 6.7, float intL_D = 7.3);
0063
0064 float correctForHLTDefinition(pat::Electron e, int runNumber, bool isData = false);
0065 float correctForHLTDefinition(pat::Electron e, std::string runName, bool isData = false);
0066
0067
0068 float correctForNoise(pat::Photon p, bool isData = false, float intL_AB = 5.5, float intL_C = 6.7, float intL_D = 7.3);
0069
0070 float correctForNoise(pat::Photon p, int runNumber, bool isData = false);
0071 float correctForNoise(pat::Photon p, std::string runName, bool isData = false);
0072
0073
0074 float correctForHLTDefinition(
0075 pat::Photon p, bool isData = false, float intL_AB = 5.5, float intL_C = 6.7, float intL_D = 7.3);
0076
0077 float correctForHLTDefinition(pat::Photon p, int runNumber, bool isData = false);
0078 float correctForHLTDefinition(pat::Photon p, std::string runName, bool isData = false);
0079 #else
0080
0081 float correctForNoise(
0082 float unCorrIso, bool isBarrel, bool isData = false, float intL_AB = 5.5, float intL_C = 6.7, float intL_D = 7.3);
0083
0084 float correctForNoise(float unCorrIso, bool isBarrel, int runNumber, bool isData = false);
0085 float correctForNoise(float unCorrIso, bool isBarrel, std::string runName, bool isData = false);
0086
0087
0088 float correctForHLTDefinition(float unCorrIso,
0089 bool isBarrrel,
0090 bool isData = false,
0091 float intL_AB = 5.5,
0092 float intL_C = 6.7,
0093 float intL_D = 7.3);
0094
0095 float correctForHLTDefinition(float unCorrIso, bool isBarrel, int runNumber, bool isData = false);
0096 float correctForHLTDefinition(float unCorrIso, bool isBarrel, std::string runName, bool isData = false);
0097 #endif
0098
0099 protected:
0100 RunRange checkRunRange(int runNumber);
0101 float correctForNoise(float iso, bool isBarrel, RunRange runRange, bool isData);
0102 float correctForHLTDefinition(float iso, bool isBarrel, RunRange runRange);
0103
0104 private:
0105 bool isElectron_;
0106 };