ATLAS Offline Software
Loading...
Searching...
No Matches
METAssociationTool.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// METAssociationTool.h
8// Header file for class METAssociationTool
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_METASSOCIATIONTOOL_H
18#define METRECONSTRUCTION_METASSOCIATIONTOOL_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
37
38// Timing
39#include "TStopwatch.h"
40
41// Forward declaration
42
43namespace met{
44 /* @brief Top-level class scheduling MET reconstruction tools
45 *
46 * @author Peter Loch <loch_AT_physics.arizona.edu>
47 * @author Silvia Resconi <Silvia.Resconi_AT_cern.ch>
48 * @author Teng Jian Khoo <Teng.Jian.Khoo_AT_cern.ch>
49 *
50 * @date Nov. 21, 2013
51 * @version v1.0
52 *
53 * The METAssociationTool can be called within an Athena algorithm or a ROOT programme
54 * to carry out the reconstruction of a MET configuration, and will produce a
55 * MissingETContainer, the contents of which will be the MissingET objects produced
56 * by the various tools scheduled by METAssociationTool.
57 *
58 */
60 // ^ the (optional) use of TStopwatch makes this not thread-safe
61 : public asg::AsgTool,
62 virtual public IMETRecoTool
63 {
64 // This macro defines the constructor with the interface declaration
66
67
68
69 // Public methods:
71 public:
72
73 // Constructor with name (does this have to be a non-const
74 // std::string and not a const reference?)
75 METAssociationTool(const std::string& name);
76
77 // AsgTool Hooks
78 virtual StatusCode initialize() override;
79 virtual StatusCode execute() const override;
80 virtual StatusCode finalize() override;
81
83 // Private data:
85 private:
86
89
90 // Run the MET tools here
91 StatusCode buildMET(xAOD::MissingETContainer* metCont, xAOD::MissingETAssociationMap* metMap) const;
92
93 // Data members
94 Gaudi::Property<std::string> m_metSuffix{this, "METSuffix", "AntiKt4LCTopo", "MET suffix"};
96 SG::WriteHandleKey<xAOD::MissingETAssociationMap> m_mapKey{this, "AssociationOutputKey", "", ""};
97
98 ToolHandleArray<IMETAssocToolBase> m_metAssociators{this, "METAssociators", {}, ""};
99
100 mutable std::atomic<unsigned int> m_nevt{};
101 };
102
103}
104
105#endif //> !METRECONSTRUCTION_METASSOCIATIONTOOL_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
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
SG::WriteHandleKey< xAOD::MissingETContainer > m_coreKey
virtual StatusCode execute() const override
METAssociationTool()
Default constructor:
METAssociationTool(const std::string &name)
ToolHandleArray< IMETAssocToolBase > m_metAssociators
virtual StatusCode finalize() override
std::atomic< unsigned int > m_nevt
SG::WriteHandleKey< xAOD::MissingETAssociationMap > m_mapKey
Gaudi::Property< std::string > m_metSuffix
StatusCode buildMET(xAOD::MissingETContainer *metCont, xAOD::MissingETAssociationMap *metMap) const
MissingETAssociationMap_v1 MissingETAssociationMap
Version control by type defintion.