ATLAS Offline Software
egammaCaloClusterSelector.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef EGAMMACALOTOOLS_EGAMMACALOCLUSTERSELECTOR_H
5 #define EGAMMACALOTOOLS_EGAMMACALOCLUSTERSELECTOR_H
6 
7 // Package includes
13 // Framework includes
15 
16 // STL includes
17 #include <string>
18 
47 class egammaCaloClusterSelector : public extends<AthAlgTool, IegammaCaloClusterSelector> {
48 public:
49  egammaCaloClusterSelector(const std::string& type, const std::string& name, const IInterface* parent);
50 
51  virtual StatusCode initialize() override final;
52  virtual StatusCode finalize() override final;
53 
55  bool passSelection(const xAOD::CaloCluster* cluster,
56  const CaloDetDescrManager& cmgr) const override final;
57 
58 private:
61  "CellContainerName", "AllCalo",
62  "Names of containers which contain cells"};
63 
65  ToolHandle<IegammaCheckEnergyDepositTool> m_egammaCheckEnergyDepositTool {this,
66  "egammaCheckEnergyDepositTool", "",
67  "Optional tool that performs basic checks of viability of cluster"};
68 
70  ToolHandle<IegammaIso> m_HadronicLeakageTool {this,
71  "HadronicLeakageTool", "egammaIso",
72  "Handle of the EMCaloIsolationTool for Hadronic leakage"};
73 
74  Gaudi::Property<double> m_ClusterEtCut {this,
75  "ClusterEtCut", 0.0, "Cut on cluster EM+Had Et"};
76 
77  Gaudi::Property<double> m_EMEtCut {this,
78  "EMEtCut", 0.0, "EM Et cut"};
79 
80  Gaudi::Property<double> m_EMEtSplittingFraction {this,
81  "EMEtSplittingFraction", 1.0, "Apply only fraction of EMEt cut for crack region"};
82 
83  Gaudi::Property<double> m_EMFCut {this,
84  "EMFCut", 0.0, "Cut on cluster EM fraction"};
85 
86  static constexpr double RETA_DEFAULT_NO_CUT = 0.0;
87  Gaudi::Property<double> m_RetaCut {this,
88  "RetaCut", RETA_DEFAULT_NO_CUT, "Cut on cluster Reta"};
89 
90  static constexpr double HAD_LEAK_DEFAULT_NO_CUT = 999.;
91  Gaudi::Property<double> m_HadLeakCut {this,
92  "HadLeakCut", HAD_LEAK_DEFAULT_NO_CUT, "Cut on cluster Hadronic Leakage"};
93 
94  // these variables are set at initialize based on the configuration
95  bool m_doReta{false};
96  bool m_doHadLeak{false};
97 };
98 
99 #endif // RECONSTRUCTION/EGAMMA/EGAMMACALOTOOLS_EGAMMACALOCLUSTERSELECTOR_H
egammaCaloClusterSelector::m_HadLeakCut
Gaudi::Property< double > m_HadLeakCut
Definition: egammaCaloClusterSelector.h:91
egammaCaloClusterSelector::passSelection
bool passSelection(const xAOD::CaloCluster *cluster, const CaloDetDescrManager &cmgr) const override final
pass the selection described in the class egammaCaloClusterSelector
Definition: egammaCaloClusterSelector.cxx:50
egammaCaloClusterSelector::initialize
virtual StatusCode initialize() override final
Definition: egammaCaloClusterSelector.cxx:22
IegammaCaloClusterSelector.h
egammaCaloClusterSelector::m_cellsKey
SG::ReadHandleKey< CaloCellContainer > m_cellsKey
Name of the cluster intput collection.
Definition: egammaCaloClusterSelector.h:60
egammaCaloClusterSelector::m_doReta
bool m_doReta
Definition: egammaCaloClusterSelector.h:95
egammaCaloClusterSelector::m_ClusterEtCut
Gaudi::Property< double > m_ClusterEtCut
Definition: egammaCaloClusterSelector.h:74
SG::ReadHandleKey< CaloCellContainer >
IegammaCheckEnergyDepositTool.h
egammaCaloClusterSelector::m_RetaCut
Gaudi::Property< double > m_RetaCut
Definition: egammaCaloClusterSelector.h:87
egammaCaloClusterSelector::m_EMEtCut
Gaudi::Property< double > m_EMEtCut
Definition: egammaCaloClusterSelector.h:77
egammaCaloClusterSelector::finalize
virtual StatusCode finalize() override final
Definition: egammaCaloClusterSelector.cxx:45
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
egammaCaloClusterSelector
A tool which specifies whether a cluster passes a selection.
Definition: egammaCaloClusterSelector.h:47
egammaCaloClusterSelector::HAD_LEAK_DEFAULT_NO_CUT
static constexpr double HAD_LEAK_DEFAULT_NO_CUT
Definition: egammaCaloClusterSelector.h:90
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
egammaCaloClusterSelector::m_HadronicLeakageTool
ToolHandle< IegammaIso > m_HadronicLeakageTool
Tool for hadronic leakage calculation; onlud used if cuts needing are defined.
Definition: egammaCaloClusterSelector.h:70
egammaMiddleShape.h
egammaCaloClusterSelector::m_EMEtSplittingFraction
Gaudi::Property< double > m_EMEtSplittingFraction
Definition: egammaCaloClusterSelector.h:80
egammaCaloClusterSelector::egammaCaloClusterSelector
egammaCaloClusterSelector(const std::string &type, const std::string &name, const IInterface *parent)
Definition: egammaCaloClusterSelector.cxx:15
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
CaloCellContainer.h
egammaCaloClusterSelector::RETA_DEFAULT_NO_CUT
static constexpr double RETA_DEFAULT_NO_CUT
Definition: egammaCaloClusterSelector.h:86
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
egammaCaloClusterSelector::m_EMFCut
Gaudi::Property< double > m_EMFCut
Definition: egammaCaloClusterSelector.h:83
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
egammaCaloClusterSelector::m_doHadLeak
bool m_doHadLeak
Definition: egammaCaloClusterSelector.h:96
IegammaIso.h
egammaCaloClusterSelector::m_egammaCheckEnergyDepositTool
ToolHandle< IegammaCheckEnergyDepositTool > m_egammaCheckEnergyDepositTool
Pointer to the egammaCheckEnergyDepositTool.
Definition: egammaCaloClusterSelector.h:65