![]() |
![]() |
00001 #ifndef TauJetCorrector_h 00002 #define TauJetCorrector_h 00003 #include "JetMETCorrections/Objects/interface/JetCorrector.h" 00004 #include <map> 00005 #include <string> 00006 #include <vector> 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 00012 00013 class TauJetCorrector: public JetCorrector 00014 { 00015 public: 00016 00017 TauJetCorrector(const edm::ParameterSet& fParameters); 00018 virtual ~TauJetCorrector(); 00019 virtual double correction (const LorentzVector& fJet) const; 00020 virtual double correction(const reco::Jet&) const; 00021 00022 void setParameters(std::string, int); 00024 virtual bool eventRequired () const {return false;} 00025 00026 private: 00027 00028 class ParametrizationTauJet{ 00029 public: 00030 ParametrizationTauJet(int ptype, std::vector<double> x, double u) { 00031 type=ptype; 00032 theParam[type] = x; 00033 theEtabound[type] = u; 00034 //cout<<"ParametrizationTauJet "<<type<<" "<<u<<endl; 00035 }; 00036 00037 double value(double, double) const; 00038 00039 private: 00040 int type; 00041 std::map<int, std::vector<double> > theParam; 00042 std::map<int,double> theEtabound; 00043 }; 00044 00045 typedef std::map<double,ParametrizationTauJet *> ParametersMap; 00046 ParametersMap parametrization; 00047 int type; 00048 }; 00049 00050 #endif