ATLAS Offline Software
Loading...
Searching...
No Matches
METRecoTool.h
Go to the documentation of this file.
1
2
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"
28
29
30// METRecoInterface includes
33
34// EDM includes
36
37// Timing
38#include "TStopwatch.h"
39
40// Forward declaration
41
42namespace 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
90 StatusCode buildMET(xAOD::MissingETContainer* metCont, xAOD::MissingETComponentMap* metMap) const;
91
92 // Data members
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
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
defines an "iterator" over instances of a given type in StoreGateSvc
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:98
ToolHandleArray< IMETToolBase > m_metrefiners
Definition METRecoTool.h:99
virtual StatusCode finalize()
METRecoTool()
Default constructor:
SG::WriteHandleKey< xAOD::MissingETComponentMap > m_mapname
Definition METRecoTool.h:96
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:95
std::string m_metfinalname
Definition METRecoTool.h:97
MissingETComponentMap_v1 MissingETComponentMap
Version control by type definition.