00001 #ifndef JetCorrectionUncertainty_h
00002 #define JetCorrectionUncertainty_h
00003
00004 #include <string>
00005 #include <vector>
00006 class SimpleJetCorrectionUncertainty;
00007 class JetCorrectorParameters;
00008
00009 class JetCorrectionUncertainty
00010 {
00011 public:
00012 JetCorrectionUncertainty();
00013 JetCorrectionUncertainty(const JetCorrectorParameters& fParameters);
00014 JetCorrectionUncertainty(const std::string& fDataFile);
00015 ~JetCorrectionUncertainty();
00016
00017 void setParameters (const std::string& fDataFile);
00018 void setJetEta (float fEta);
00019 void setJetPt (float fPt);
00020 void setJetE (float fE);
00021 void setJetPhi (float fE);
00022 void setJetEMF (float fEMF);
00023 void setLepPx (float fLepPx);
00024 void setLepPy (float fLepPy);
00025 void setLepPz (float fLepPz);
00026 void setAddLepToJet (bool fAddLepToJet) {mAddLepToJet = fAddLepToJet;}
00027 float getUncertainty(bool fDirection);
00028
00029 private:
00030 JetCorrectionUncertainty(const JetCorrectionUncertainty&);
00031 JetCorrectionUncertainty& operator= (const JetCorrectionUncertainty&);
00032 std::vector<float> fillVector(const std::vector<std::string>& fNames);
00033 float getPtRel();
00034
00035 float mJetE;
00036 float mJetEta;
00037 float mJetPt;
00038 float mJetPhi;
00039 float mJetEMF;
00040 float mLepPx;
00041 float mLepPy;
00042 float mLepPz;
00043 bool mAddLepToJet;
00044 bool mIsJetEset;
00045 bool mIsJetPtset;
00046 bool mIsJetPhiset;
00047 bool mIsJetEtaset;
00048 bool mIsJetEMFset;
00049 bool mIsLepPxset;
00050 bool mIsLepPyset;
00051 bool mIsLepPzset;
00052 SimpleJetCorrectionUncertainty* mUncertainty;
00053 };
00054
00055 #endif
00056