00001
00002 #ifndef TAURECTOOLS_DITAUDISRIMINANTTOOL_H
00003 #define TAURECTOOLS_DITAUDISRIMINANTTOOL_H
00004
00012
00013 #include "AsgTools/AsgTool.h"
00014
00015
00016
00017
00018 #include "xAODTau/DiTauJetContainer.h"
00019
00020
00021 #include "tauRecTools/IDiTauDiscriminantTool.h"
00022
00023
00024 #include "TMVA/Reader.h"
00025
00026 #include <string>
00027 #include <map>
00028
00029
00030 namespace tauRecTools
00031 {
00032
00033
00034 class DiTauDiscriminantTool
00035 : public tauRecTools::IDiTauDiscriminantTool
00036 , public asg::AsgTool
00037 {
00039 ASG_TOOL_CLASS( DiTauDiscriminantTool,
00040 tauRecTools::IDiTauDiscriminantTool )
00041
00042 public:
00043
00044 DiTauDiscriminantTool( const std::string& name );
00045
00046 virtual ~DiTauDiscriminantTool();
00047
00048
00049 virtual StatusCode initialize();
00050
00051
00052 virtual StatusCode initializeEvent();
00053
00054
00055 virtual double getJetBDTScore(const xAOD::DiTauJet& xDiTau);
00056
00057 private:
00058
00059 void parseWeightsFile();
00060
00061 void setIDVariables(const xAOD::DiTauJet& xDiTau);
00062
00063 const xAOD::DiTauJetContainer* m_xDiTauContainer;
00064
00065
00066
00067 std::string m_sWeightsFile;
00068
00069 TMVA::Reader* m_rReader;
00070
00071 std::map<std::string, float> m_mIDVariables;
00072 std::map<std::string, float> m_mIDSpectators;
00073
00074
00075 std::vector<std::string> m_vVarNames;
00076 private:
00077 double GeV = 1000.;
00078
00079 };
00080
00081 }
00082 #endif // TAURECTOOLS_DITAUDISRIMINANTTOOL_H