00001 #ifndef TAUREC_TAUPI0SCORECALCULATOR_H
00002 #define TAUREC_TAUPI0SCORECALCULATOR_H
00003
00004 #include <string>
00005 #include "tauRecTools/TauRecToolBase.h"
00006 #include "xAODPFlow/PFO.h"
00007
00008 namespace TMVA{
00009 class Reader;
00010 }
00011
00021 class TauPi0ScoreCalculator : virtual public TauRecToolBase {
00022 public:
00023 TauPi0ScoreCalculator(const std::string& name);
00024 ASG_TOOL_CLASS2(TauPi0ScoreCalculator, TauRecToolBase, ITauToolBase);
00025 virtual ~TauPi0ScoreCalculator();
00026
00027 virtual StatusCode initialize();
00028 virtual StatusCode finalize();
00029 virtual StatusCode execute(xAOD::TauJet& pTau);
00030
00031 virtual StatusCode eventInitialize() { return StatusCode::SUCCESS; }
00032 virtual StatusCode eventFinalize() { return StatusCode::SUCCESS; }
00033
00034 virtual void print() const { }
00035
00036 private:
00037
00038 std::string m_readerOption;
00039 TMVA::Reader *m_tmvaReader;
00040
00041 std::string m_weightfile;
00042
00043 float m_Abs_FIRST_ETA;
00044 float m_SECOND_R;
00045 float m_SECOND_LAMBDA;
00046 float m_Abs_DELTA_PHI;
00047 float m_Abs_DELTA_THETA;
00048 float m_CENTER_LAMBDA_helped;
00049 float m_LATERAL;
00050 float m_LONGITUDINAL;
00051 float m_ENG_FRAC_EM;
00052 float m_ENG_FRAC_MAX;
00053 float m_ENG_FRAC_CORE;
00054 float m_log_SECOND_ENG_DENS;
00055 float m_EcoreOverEEM1;
00056 float m_NHitsInEM1;
00057 float m_NPosCells_PS;
00058 float m_NPosCells_EM1;
00059 float m_NPosCells_EM2;
00060 float m_firstEtaWRTCluster_EM1;
00061 float m_firstEtaWRTCluster_EM2;
00062 float m_secondEtaWRTCluster_EM1;
00063 float m_secondEtaWRTCluster_EM2;
00064 float m_energy_EM1;
00065 float m_energy_EM2;
00066
00068 float calculateScore(const xAOD::PFO* neutralPFO);
00069
00071 StatusCode bookMethod(TMVA::Reader *reader, const std::string &methodName) const;
00072
00073 };
00074
00075 #endif
00076