00001 #ifndef TAUREC_TAUCALIBRATEEM_H
00002 #define TAUREC_TAUCALIBRATEEM_H
00003
00004 #include <string>
00005 #include <tauRecTools/TauRecToolBase.h>
00006
00007 class TF1;
00008
00010 class TauCalibrateEM : virtual public TauRecToolBase {
00011 public:
00012 TauCalibrateEM(const std::string& name);
00013 ASG_TOOL_CLASS2(TauCalibrateEM, TauRecToolBase, ITauToolBase);
00014 ~TauCalibrateEM();
00015
00016 virtual StatusCode initialize();
00017 virtual StatusCode execute(xAOD::TauJet& pTau);
00018 virtual StatusCode finalize();
00019
00020 virtual void print() const { }
00021 virtual StatusCode eventInitialize() { return StatusCode::SUCCESS; }
00022 virtual StatusCode eventFinalize() { return StatusCode::SUCCESS; }
00023
00024 private:
00025
00026 double evaluate_new_pt(double pt, double eta, int ntrack, double emfrac);
00027
00028
00029 std::string m_response_functions_file;
00030
00031
00032 TF1* m_f1_1p_lem;
00033 TF1* m_f1_1p_hem_barrel;
00034 TF1* m_f1_1p_hem_crack;
00035 TF1* m_f1_1p_hem_endcap;
00036 TF1* m_f1_mp_barrel;
00037 TF1* m_f1_mp_crack;
00038 TF1* m_f1_mp_endcap;
00039
00040 std::pair<double, double> m_min_1p_lem;
00041 std::pair<double, double> m_min_1p_hem_barrel;
00042 std::pair<double, double> m_min_1p_hem_crack;
00043 std::pair<double, double> m_min_1p_hem_endcap;
00044 std::pair<double, double> m_min_mp_barrel;
00045 std::pair<double, double> m_min_mp_crack;
00046 std::pair<double, double> m_min_mp_endcap;
00047
00048 };
00049
00050 #endif
00051