File indexing completed on 2023-03-17 10:47:04
0001
0002
0003
0004
0005
0006 #ifndef FACTORIZED_JET_CORRECTOR_H
0007 #define FACTORIZED_JET_CORRECTOR_H
0008
0009 #include "CondFormats/Serialization/interface/Serializable.h"
0010
0011 #include <vector>
0012 #include <string>
0013 #include "TLorentzVector.h"
0014 #include "CondFormats/JetMETObjects/interface/FactorizedJetCorrectorCalculator.h"
0015
0016 class SimpleJetCorrector;
0017 class JetCorrectorParameters;
0018
0019 class FactorizedJetCorrector {
0020 public:
0021 enum VarTypes {
0022 kJetPt,
0023 kJetEta,
0024 kJetPhi,
0025 kJetE,
0026 kJetEMF,
0027 kRelLepPt,
0028 kPtRel,
0029 kNPV,
0030 kJetA,
0031 kRho,
0032 kJPTrawE,
0033 kJPTrawEt,
0034 kJPTrawPt,
0035 kJPTrawEta,
0036 kJPTrawOff
0037 };
0038 enum LevelTypes { kL1, kL2, kL3, kL4, kL5, kL6, kL7, kL1fj, kL1JPT };
0039 FactorizedJetCorrector();
0040 FactorizedJetCorrector(const std::string& fLevels, const std::string& fTags, const std::string& fOptions = "");
0041 FactorizedJetCorrector(const std::vector<JetCorrectorParameters>& fParameters);
0042 FactorizedJetCorrector(const FactorizedJetCorrector&) = delete;
0043 FactorizedJetCorrector& operator=(const FactorizedJetCorrector&) = delete;
0044
0045 void setNPV(int fNPV);
0046 void setJetEta(float fEta);
0047 void setJetPt(float fPt);
0048 void setJetE(float fE);
0049 void setJetPhi(float fE);
0050 void setJetEMF(float fEMF);
0051 void setJetA(float fA);
0052 void setRho(float fRho);
0053 void setJPTrawP4(const TLorentzVector& fJPTrawP4);
0054 void setJPTrawOff(float fJPTrawOff);
0055 void setLepPx(float fLepPx);
0056 void setLepPy(float fLepPy);
0057 void setLepPz(float fLepPz);
0058 void setAddLepToJet(bool fAddLepToJet);
0059
0060 float getCorrection();
0061 std::vector<float> getSubCorrections();
0062
0063 private:
0064
0065
0066 FactorizedJetCorrectorCalculator::VariableValues mValues;
0067 FactorizedJetCorrectorCalculator mCalc;
0068 };
0069 #endif