ATLAS Offline Software
Loading...
Searching...
No Matches
EventCleaningTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef JETSELECTORTOOLS_EVENTCLEANINGTOOL_H
6#define JETSELECTORTOOLS_EVENTCLEANINGTOOL_H
7
15
16// Stdlib includes
17#include <string>
18#include <vector>
19#include <unordered_map>
20
21// Base classes
22#include "AsgTools/AsgTool.h"
26
27// Local includes
28#include "IEventCleaningTool.h"
29#include "xAODJet/Jet.h"
33
34namespace ECUtils
35{
36
37class EventCleaningTool : public virtual IEventCleaningTool,
38 public asg::AsgTool
39{
40
43
44 public:
45
47 EventCleaningTool(const std::string& name="EventCleaningTool");
48
50 virtual ~EventCleaningTool();
51
53 virtual StatusCode initialize() override;
54
55 virtual bool acceptEvent(const xAOD::JetContainer* jets) const override;
56
57 virtual int keepJet(const xAOD::Jet& jet) const override;
58
59 private:
60 Gaudi::Property<double> m_pt {this, "PtCut" , 20000., "Jet pt cut"};
61 Gaudi::Property<double> m_eta {this, "EtaCut" , 4.5, "Jet eta cut"};
62 Gaudi::Property<std::string> m_prefix {this, "JetCleanPrefix", "", "Jet cleaning decoration prefix"};
63 Gaudi::Property<bool> m_decorate {this, "DoDecorations", true, "Decorate jets with cleaning decision?"};
64 Gaudi::Property<bool> m_useDecorations {this, "UseDecorations", false, "Use decorations in cleaning tool?"};
65 Gaudi::Property<std::string> m_cleaningLevel {this, "CleaningLevel", "LooseBad", "Jet cleaning level"};
66 Gaudi::Property<bool> m_suppressInputDeps{this, "SuppressInputDependence", false, "Will passOR be created in the same algorithm that uses this tool?"};
67 Gaudi::Property<bool> m_suppressOutputDeps{this, "SuppressOutputDependence", false, "Create output dependencies?"};
69
70 Gaudi::Property<std::string> m_jetContainerName {this, "JetContainer", "", "Input jet container key"};
71 SG::ReadDecorHandleKey<xAOD::JetContainer> m_passJvtKey {this, "JvtDecorator", "passJvt", "JVT decision decoration key"};
72 SG::ReadDecorHandleKey<xAOD::JetContainer> m_passORKey {this, "OrDecorator" , "passOR", "Overlap removal decision decoration key"};
73 SG::WriteDecorHandleKey<xAOD::JetContainer> m_jetCleanKey{this, "JetCleanKey" , "", "Jet-level cleaning decoration key (autoconfigured)"};
74
75}; // End: class definition
76}//ECUtils
77
78#endif
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
SG::WriteDecorHandleKey< xAOD::JetContainer > m_jetCleanKey
EventCleaningTool(const std::string &name="EventCleaningTool")
Create a proper constructor for Athena.
asg::AnaToolHandle< IJetSelector > m_jetCleaningTool
virtual ~EventCleaningTool()
Standard destructor.
SG::ReadDecorHandleKey< xAOD::JetContainer > m_passJvtKey
virtual bool acceptEvent(const xAOD::JetContainer *jets) const override
Declare the interface.
virtual int keepJet(const xAOD::Jet &jet) const override
Gaudi::Property< double > m_pt
Gaudi::Property< bool > m_suppressOutputDeps
Gaudi::Property< std::string > m_prefix
Gaudi::Property< bool > m_useDecorations
Gaudi::Property< std::string > m_jetContainerName
Gaudi::Property< std::string > m_cleaningLevel
virtual StatusCode initialize() override
Initialize method.
Gaudi::Property< bool > m_decorate
Gaudi::Property< double > m_eta
SG::ReadDecorHandleKey< xAOD::JetContainer > m_passORKey
Gaudi::Property< bool > m_suppressInputDeps
Interface for the event cleaning tool.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
a modified tool handle that allows its owner to configure new tools from the C++ side
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
Jet_v1 Jet
Definition of the current "jet version".
JetContainer_v1 JetContainer
Definition of the current "jet container version".