ATLAS Offline Software
METRecoTool.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // METRecoTool.h
8 // Header file for class METRecoTool
9 //
10 // This is a scheduler for the MET Reconstruction, and sets up
11 // the sequence in which the individual terms are constructed.
12 //
13 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
14 //
15 // Author: P Loch, S Resconi, TJ Khoo
17 #ifndef METRECONSTRUCTION_METRECOTOOL_H
18 #define METRECONSTRUCTION_METRECOTOOL_H 1
19 
20 // STL includes
21 #include <string>
22 
23 // FrameWork includes
24 #include "AsgTools/ToolHandle.h"
25 #include "AsgTools/AsgTool.h"
27 #include "StoreGate/DataHandle.h"
28 
29 
30 // METRecoInterface includes
33 
34 // EDM includes
36 
37 // Timing
38 #include "TStopwatch.h"
39 
40 // Forward declaration
41 
42 namespace met{
43  /* @brief Top-level class scheduling MET reconstruction tools
44  *
45  * @author Peter Loch <loch_AT_physics.arizona.edu>
46  * @author Silvia Resconi <Silvia.Resconi_AT_cern.ch>
47  * @author Teng Jian Khoo <Teng.Jian.Khoo_AT_cern.ch>
48  *
49  * @date Nov. 21, 2013
50  * @version v1.0
51  *
52  * The METRecoTool can be called within an Athena algorithm or a ROOT programme
53  * to carry out the reconstruction of a MET configuration, and will produce a
54  * MissingETContainer, the contents of which will be the MissingET objects produced
55  * by the various tools scheduled by METRecoTool.
56  *
57  */
59  // ^ the (optional) use of TStopwatch makes this not thread-safe
60  : public asg::AsgTool,
61  virtual public IMETRecoTool
62  {
63  // This macro defines the constructor with the interface declaration
65 
66 
67 
68  // Public methods:
70  public:
71 
72  // Constructor with name (does this have to be a non-const
73  // std::string and not a const reference?)
74  METRecoTool(const std::string& name);
75 
76  // AsgTool Hooks
77  virtual StatusCode initialize();
78  virtual StatusCode execute() const;
79  virtual StatusCode finalize();
80 
82  // Private data:
84  private:
85 
88 
89  // Run the MET tools here
91 
92  // Data members
93  bool m_doMetSum;
97  std::string m_metfinalname;
98  ToolHandleArray<IMETToolBase> m_metbuilders;
99  ToolHandleArray<IMETToolBase> m_metrefiners;
100 
101  mutable std::atomic<unsigned int> m_nevt;
102  };
103 
104 }
105 
106 #endif //> !METRECONSTRUCTION_METRECOTOOL_H
met::METRecoTool::m_warnOfDupes
bool m_warnOfDupes
Definition: METRecoTool.h:94
xAOD::MissingETComponentMap_v1
Definition: MissingETComponentMap_v1.h:25
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
met::METRecoTool::initialize
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: METRecoTool.cxx:65
met::METRecoTool::buildMET
StatusCode buildMET(xAOD::MissingETContainer *metCont, xAOD::MissingETComponentMap *metMap) const
Definition: METRecoTool.cxx:137
met::METRecoTool::m_metbuilders
ToolHandleArray< IMETToolBase > m_metbuilders
Definition: METRecoTool.h:98
DataHandle.h
met::METRecoTool
Definition: METRecoTool.h:62
met::METRecoTool::finalize
virtual StatusCode finalize()
Definition: METRecoTool.cxx:126
IMETRecoTool
Definition: IMETRecoTool.h:23
met::METRecoTool::m_mapname
SG::WriteHandleKey< xAOD::MissingETComponentMap > m_mapname
Definition: METRecoTool.h:96
met
Definition: IMETSignificance.h:24
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
met::METRecoTool::m_contname
SG::WriteHandleKey< xAOD::MissingETContainer > m_contname
Definition: METRecoTool.h:95
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAOD::MissingETContainer_v1
Container for xAOD::MissingET_v1 objects.
Definition: MissingETContainer_v1.h:21
met::METRecoTool::execute
virtual StatusCode execute() const
Definition: METRecoTool.cxx:99
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
met::METRecoTool::m_metfinalname
std::string m_metfinalname
Definition: METRecoTool.h:97
IMETRecoTool.h
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
met::METRecoTool::m_doMetSum
bool m_doMetSum
Definition: METRecoTool.h:93
met::METRecoTool::m_nevt
std::atomic< unsigned int > m_nevt
Definition: METRecoTool.h:101
met::METRecoTool::m_metrefiners
ToolHandleArray< IMETToolBase > m_metrefiners
Definition: METRecoTool.h:99
ToolHandle.h
IMETToolBase.h
AsgTool.h
checker_macros.h
Define macros for attributes used to control the static checker.
met::METRecoTool::METRecoTool
METRecoTool()
Default constructor:
MissingETContainer.h