5#ifndef INDET_CALOCLUSTERROIPHIRZCOLLECTIONMAKER_H
6#define INDET_CALOCLUSTERROIPHIRZCOLLECTIONMAKER_H
42 StatusCode
execute(
const EventContext& ctx)
const override;
53 return m_calosurf->CreateUserSurface(CaloCell_ID::EMB2, 0., cluster.
eta(), &caloDDMgr);
55 return m_calosurf->CreateUserSurface(CaloCell_ID::EME2, 0., cluster.
eta(), &caloDDMgr);
65 std::vector<uint_fast8_t> &max_output,
66 std::vector<unsigned int> &n_rois)
const;
70 {
this,
"InputClusterContainerName",
"egammaTopoCluster",
"Input cluster for egamma objects"};
74 {
this,
"OutputROIContainerName", {},
"Output collection of eta ordered ROIs"};
80 {
this,
"CaloDetDescrManager",
"CaloDetDescrManager",
"SG Key for CaloDetDescrManager in the Condition Store" };
84 {
this,
"CaloSurfaceBuilder",
"CaloSurfaceBuilder",
"Tool to build calorimeter layer surfaces"};
88 {
this,
"egammaCaloClusterSelector",
"egammaCaloClusterSelector",
"Tool that makes the cluster selection"};
91 {
this,
"EMEnergyOnly",
false,
"Only use EM energy as the ROI energy" };
94 {
this,
"phiWidth", {} };
97 {
this,
"minPt", {},
"Minimum pt of cluster ROIs (EMFraction corrected if EMEnerygOnly is set)."};
Definition of CaloDetDescrManager.
An algorithm that can be simultaneously executed in multiple threads.
This class provides the client interface for accessing the detector description information common to...
static Trk::LocalParameters getClusterLocalParameters(const xAOD::CaloCluster &cluster, const Trk::Surface &surf)
StatusCode execute(const EventContext &ctx) const override
std::atomic_uint m_duplicateROI
std::vector< unsigned int > m_outputSorted
SG::WriteHandleKeyArray< ROIPhiRZContainer > m_outputClusterContainerName
Name of the ROI output collection.
std::vector< unsigned int > m_outputIndex
const Trk::Surface * getCaloSurface(const xAOD::CaloCluster &cluster, const CaloDetDescrManager &caloDDMgr) const
Gaudi::Property< bool > m_EMEnergyOnly
std::atomic_uint m_maxNROIs
Gaudi::Property< std::vector< float > > m_minPtEm
StatusCode initialize() override
StatusCode finalize() override
CaloClusterROIPhiRZContainerMaker(const std::string &name, ISvcLocator *pSvcLocator)
std::atomic_uint m_selectedClusters
ToolHandle< ICaloSurfaceBuilder > m_calosurf
Tool to build calorimeter layer surfaces.
std::atomic_uint m_allClusters
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_inputClusterContainerName
Name of the cluster intput collection.
std::vector< float > m_sortedMinPtEm
Gaudi::Property< std::vector< float > > m_phiWidth
std::vector< unsigned int > m_outputUnsorted
~CaloClusterROIPhiRZContainerMaker()
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Name of the CaloDetDescrManager condition object.
void addROI(const xAOD::CaloCluster &cluster, const CaloDetDescrManager &caloDDMgr, ROIPhiRZContainer &output_rois, std::vector< uint_fast8_t > &max_output, std::vector< unsigned int > &n_rois) const
ToolHandle< IegammaCaloClusterSelector > m_egammaCaloClusterSelector
Tool to filter the calo clusters.
container for phi sorted ROIs defined by phi, r and z.
Property holding a SG store/key/clid from which a ReadHandle is made.
Abstract Base Class for tracking surfaces.
virtual double eta() const
The pseudorapidity ( ) of the particle.
HandleKeyArray< WriteHandle< T >, WriteHandleKey< T >, Gaudi::DataHandle::Writer > WriteHandleKeyArray
bool isBarrel(const xAOD::Egamma *eg)
return true if the cluster is in the barrel
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.