Tool_ModeDiscriminator.h 2.77 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/

///////////////////////////////////////////////////////////////////
//  Header file for class Tool_ModeDiscriminator
///////////////////////////////////////////////////////////////////
// (c) ATLAS Detector software
///////////////////////////////////////////////////////////////////
// Tool for PID of TauSeeds
///////////////////////////////////////////////////////////////////
// sebastian.fleischmann@cern.ch
///////////////////////////////////////////////////////////////////

#ifndef PANTAUALGS_TOOL_MODEDISCRIMINATOR_H
#define PANTAUALGS_TOOL_MODEDISCRIMINATOR_H

18
19
20
//! ASG
#include "AsgTools/AsgTool.h"
#include "AsgTools/ToolHandle.h"
21
22

//! PanTau
23
24
25
#include "PanTauAlgs/HelperFunctions.h"
#include "PanTauAlgs/ITool_ModeDiscriminator.h"
#include "PanTauAlgs/ITool_InformationStore.h"
26
27
28
29
30

//! C++
#include <vector>
#include <string>

31
#include "MVAUtils/BDT.h"
32
33

namespace PanTau {
34
    class PanTauSeed2;
35
36
37
38
39
40
41
42
43
44
45
}



namespace PanTau {

    /** @class Tool_ModeDiscriminator
        Tool for PID of Tau Seeds
        @author Sebastian Fleischmann
        @author Christian Limbach <limbach@physik.uni-bonn.de>
    */
46
47
48
    class Tool_ModeDiscriminator : public asg::AsgTool, virtual public PanTau::ITool_ModeDiscriminator {

    ASG_TOOL_CLASS1(Tool_ModeDiscriminator, PanTau::ITool_ModeDiscriminator)
49
50
51

    public:
        
52
        Tool_ModeDiscriminator(const std::string &name);
53
54
55
56
57
58
        virtual ~Tool_ModeDiscriminator ();
        
        virtual StatusCode initialize();
        virtual StatusCode finalize  ();


59
        virtual double getResponse(PanTau::PanTauSeed2* inSeed, bool& isOK);
60
61
62
        
    private:
        
63
        void                                        updateReaderVariables(PanTau::PanTauSeed2* inSeed);
64
65
66
67
        
        std::string                                 m_Name_InputAlg;
        std::string                                 m_Name_ModeCase;
        ToolHandle<PanTau::ITool_InformationStore>  m_Tool_InformationStore;
68
	std::string                                 m_Tool_InformationStoreName;
69
        PanTau::HelperFunctions   m_HelperFunctions;
70
        std::vector<MVAUtils::BDT*>                  m_MVABDT_List;
71
72
73
74
75
        
        std::vector<double>                         m_BinEdges_Pt;
        std::string                                 m_ReaderOption;
        std::string                                 m_MethodName;
        std::vector<std::string>                    m_List_BDTVariableNames;
76
        std::vector<float*>                         m_List_BDTVariableValues;
77
        std::vector<double>                         m_List_BDTVariableDefaultValues;
78
79
80
81

	bool m_init=false;
  public:
	inline bool isInitialized(){return m_init;}
82
83
84
85
        
    };
} // end of namespace PanTau
#endif // PANTAUALGS_TAUDISCRIMINANTTOOL_H