ATLAS Offline Software
Loading...
Searching...
No Matches
METRecoTool.h
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2026 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
28
29// METRecoInterface includes
32
33// EDM includes
35
36// Timing
37#include "TStopwatch.h"
38
39// Forward declaration
40
41namespace met{
42 /* @brief Top-level class scheduling MET reconstruction tools
43 *
44 * @author Peter Loch <loch_AT_physics.arizona.edu>
45 * @author Silvia Resconi <Silvia.Resconi_AT_cern.ch>
46 * @author Teng Jian Khoo <Teng.Jian.Khoo_AT_cern.ch>
47 *
48 * @date Nov. 21, 2013
49 * @version v1.0
50 *
51 * The METRecoTool can be called within an Athena algorithm or a ROOT programme
52 * to carry out the reconstruction of a MET configuration, and will produce a
53 * MissingETContainer, the contents of which will be the MissingET objects produced
54 * by the various tools scheduled by METRecoTool.
55 *
56 */
58 // ^ the (optional) use of TStopwatch makes this not thread-safe
59 : public asg::AsgTool,
60 virtual public IMETRecoTool
61 {
62 // This macro defines the constructor with the interface declaration
64
65
66
67 // Public methods:
69 public:
70
71 // Constructor with name (does this have to be a non-const
72 // std::string and not a const reference?)
73 METRecoTool(const std::string& name);
74
75 // AsgTool Hooks
76 virtual StatusCode initialize();
77 virtual StatusCode execute() const;
78 virtual StatusCode finalize();
79
81 // Private data:
83 private:
84
87
88 // Run the MET tools here
89 StatusCode buildMET(xAOD::MissingETContainer* metCont, xAOD::MissingETComponentMap* metMap) const;
90
91 // Data members
96 std::string m_metfinalname;
97 ToolHandleArray<IMETToolBase> m_metbuilders;
98 ToolHandleArray<IMETToolBase> m_metrefiners;
99
100 mutable std::atomic<unsigned int> m_nevt;
101 };
102
103}
104
105#endif //> !METRECONSTRUCTION_METRECOTOOL_H
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Define macros for attributes used to control the static checker.
Property holding a SG store/key/clid from which a WriteHandle is made.
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
ToolHandleArray< IMETToolBase > m_metbuilders
Definition METRecoTool.h:97
ToolHandleArray< IMETToolBase > m_metrefiners
Definition METRecoTool.h:98
virtual StatusCode finalize()
METRecoTool()
Default constructor:
SG::WriteHandleKey< xAOD::MissingETComponentMap > m_mapname
Definition METRecoTool.h:95
StatusCode buildMET(xAOD::MissingETContainer *metCont, xAOD::MissingETComponentMap *metMap) const
METRecoTool(const std::string &name)
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
std::atomic< unsigned int > m_nevt
virtual StatusCode execute() const
SG::WriteHandleKey< xAOD::MissingETContainer > m_contname
Definition METRecoTool.h:94
std::string m_metfinalname
Definition METRecoTool.h:96
MissingETComponentMap_v1 MissingETComponentMap
Version control by type definition.