PanTauProcessor.h 3.56 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/

///////////////////////////////////////////////////////////////////
// PanTauProcessor.h, (c) ATLAS Detector software
///////////////////////////////////////////////////////////////////

#ifndef PANTAU_PANTAUPROCESSOR_H
#define PANTAU_PANTAUPROCESSOR_H

// Gaudi includes
#include "AsgTools/AsgTool.h"
#include "AsgTools/ToolHandle.h"
#include "tauRecTools/TauRecToolBase.h"

// C++ includes
#include <string>
#include <map>
#include <vector>

// PanTau includes
#include "PanTauAlgs/ITool_InformationStore.h"
#include "PanTauAlgs/ITool_TauConstituentGetter.h"
#include "PanTauAlgs/ITool_TauConstituentSelector.h"
#include "PanTauAlgs/ITool_PanTauTools.h"

//#include "PanTauAlgs/PanTauSeedContainer.h"

//class StoreGateSvc;



namespace PanTau 
{

  /** @class PanTauProcessor

      @author  Peter Wienemann <peter.wienemann@cern.ch>
      @author  Sebastian Fleischmann <Sebastian.Fleischmann@cern.ch>
      @author  Robindra Prabhu <robindra.prabhu@cern.ch>
      @author  Christian Limbach <limbach@physik.uni-bonn.de>
      @author  Peter Wagner <peter.wagner@cern.ch>
      @author  Lara Schildgen <schildgen@physik.uni-bonn.de>
  */  

  class PanTauProcessor : virtual public TauRecToolBase
    {
    public:

      // as in https://svnweb.cern.ch/trac/atlasoff/browser/Reconstruction/tauRecTools/trunk/tauRecTools/TauCalibrateLC.h
       ASG_TOOL_CLASS2( PanTauProcessor, TauRecToolBase, ITauToolBase )

       PanTauProcessor(const std::string& name);
       ~PanTauProcessor();

       virtual StatusCode          initialize();
       virtual StatusCode          finalize();
       virtual StatusCode          execute(xAOD::TauJet& pTau);

       virtual StatusCode eventInitialize();
       virtual StatusCode eventFinalize() { return StatusCode::SUCCESS; }
       
       virtual void print() const { }

    private:
        
       //mutable MsgStream                                   m_log;
       //StoreGateSvc*                                       m_sgSvc;
        
        std::string                                         m_Name_InputAlg;
        
        //Tools used in seed building
        ToolHandle<PanTau::ITool_InformationStore>          m_Tool_InformationStore;
        ToolHandle<PanTau::ITool_TauConstituentGetter>      m_Tool_TauConstituentGetter;
        ToolHandle<PanTau::ITool_TauConstituentSelector>    m_Tool_TauConstituentSelector;
        ToolHandle<PanTau::ITool_PanTauTools>               m_Tool_FeatureExtractor;
        
        //Tools used in seed finalizing
        ToolHandle<PanTau::ITool_PanTauTools>               m_Tool_DecayModeDeterminator;
        ToolHandle<PanTau::ITool_PanTauTools>               m_Tool_DetailsArranger;
82
83
84
85
86
87
88
89
90
91
92
93

        //Tools used in seed building
        std::string          m_Tool_InformationStoreName;
        std::string          m_Tool_TauConstituentGetterName;
        std::string          m_Tool_TauConstituentSelectorName;
        std::string          m_Tool_FeatureExtractorName;
        
        //Tools used in seed finalizing
        std::string               m_Tool_DecayModeDeterminatorName;
        std::string               m_Tool_DetailsArrangerName;

	
94
95
96
97
98
99
100
101
102
103
104
105
        
        std::vector<double>                                 m_Config_PtBins;
        double                                              m_Config_MinPt;
        double                                              m_Config_MaxPt;
        
        void                                                fillDefaultValuesToTau(xAOD::TauJet* tauJet);
        
        
    }; //end class
} // end of namespace

#endif