Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:02:17

0001 // This is the header file "FactorizedJetCorrector.h". This is the interface for the
0002 // class FactorizedJetCorrector.
0003 // Author: Konstantinos Kousouris, Philipp Schieferdecker
0004 // Email:  kkousour@fnal.gov, philipp.schieferdecker@cern.ch
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   //---- Member Functions ----
0065   //---- Member Data ---------
0066   FactorizedJetCorrectorCalculator::VariableValues mValues;
0067   FactorizedJetCorrectorCalculator mCalc;
0068 };
0069 #endif