ATLAS Offline Software
Loading...
Searching...
No Matches
HIEventShapeFillerTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef HIGLOBAL_HIEVENTSHAPEFILLERTOOL_H
6#define HIGLOBAL_HIEVENTSHAPEFILLERTOOL_H
7
8#include "AsgTools/AsgTool.h"
9#include "GaudiKernel/ToolHandle.h"
17
20
23
25
27{
29
30public:
31 HIEventShapeFillerTool(const std::string& myname);
32
33 virtual StatusCode initialize() override;
34 virtual StatusCode initializeIndex() override;
35 virtual StatusCode initializeEventShapeContainer(std::unique_ptr<xAOD::HIEventShapeContainer>& evtShape) const override;
36 virtual StatusCode fillCollectionFromTowers(std::unique_ptr<xAOD::HIEventShapeContainer>& evtShape, const SG::ReadHandleKey<xAOD::CaloClusterContainer>& tower_container_key, const SG::ReadHandleKey<INavigable4MomentumCollection>& navi_container_key, const EventContext& ctx) const override;
37 virtual StatusCode fillCollectionFromCells(std::unique_ptr<xAOD::HIEventShapeContainer>& evtShape, const SG::ReadHandleKey<CaloCellContainer>& cell_container_key, const EventContext& ctx) const override;
38
39 virtual StatusCode fillCollectionFromTowerContainer(std::unique_ptr<xAOD::HIEventShapeContainer>& evtShape, const INavigable4MomentumCollection* navInColl) const;
40 virtual StatusCode fillCollectionFromCellContainer(std::unique_ptr<xAOD::HIEventShapeContainer>& evtShape, const CaloCellContainer* CellContainer) const;
41 virtual StatusCode fillCollectionFromClusterContainer(std::unique_ptr<xAOD::HIEventShapeContainer>& evtShape, const xAOD::CaloClusterContainer* theClusters, const EventContext& ctx) const;
42
43private:
45 const CaloCell_ID * m_calo_id {nullptr};
46
47 void updateShape(std::unique_ptr<xAOD::HIEventShapeContainer>& shape, const HIEventShapeIndex* index, const CaloCell* theCell, float geoWeight, float eta0, float phi0, bool isNeg = false) const;
48
49 std::unique_ptr<const CaloCell> getMirroredCell(const CaloCell* pCell, const CaloCellContainer* ccc) const;
50
51 ToolHandle<IHITowerWeightTool> m_towerWeightTool{ this, "TowerWeightTool", "", "Handle to Tower Weight Tool" };
52 ToolHandle<IHIEventShapeMapTool> m_eventShapeMapTool{ this, "EventShapeMapTool", "HIEventShapeMapTool", "Handle to Event Shape Map Tool" };
53
54 SG::ReadHandleKey<CaloCellContainer> m_caloCellKey{this, "CaloCellContainerKey","","cell container for mirror"};
55
56 Gaudi::Property< bool > m_useClusters{ this, "UseClusters", false, "use Clusters boolean switch" };
57 Gaudi::Property< int > m_numOrders{ this, "OrderOfFlowHarmonics", 7, "The number of Orders of harmonic flow to store in the EventShape" };
58
59};
60
61#endif
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
DataVector< INavigable4Momentum > INavigable4MomentumCollection
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Container class for CaloCell.
Helper class for offline cell identifiers.
Definition CaloCell_ID.h:34
Data object for each calorimeter readout cell.
Definition CaloCell.h:57
HIEventShapeFillerTool(const std::string &myname)
const HIEventShapeIndex * m_index
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
ToolHandle< IHITowerWeightTool > m_towerWeightTool
virtual StatusCode fillCollectionFromCellContainer(std::unique_ptr< xAOD::HIEventShapeContainer > &evtShape, const CaloCellContainer *CellContainer) const
ToolHandle< IHIEventShapeMapTool > m_eventShapeMapTool
virtual StatusCode fillCollectionFromTowers(std::unique_ptr< xAOD::HIEventShapeContainer > &evtShape, const SG::ReadHandleKey< xAOD::CaloClusterContainer > &tower_container_key, const SG::ReadHandleKey< INavigable4MomentumCollection > &navi_container_key, const EventContext &ctx) const override
Gaudi::Property< bool > m_useClusters
std::unique_ptr< const CaloCell > getMirroredCell(const CaloCell *pCell, const CaloCellContainer *ccc) const
virtual StatusCode initializeIndex() override
void updateShape(std::unique_ptr< xAOD::HIEventShapeContainer > &shape, const HIEventShapeIndex *index, const CaloCell *theCell, float geoWeight, float eta0, float phi0, bool isNeg=false) const
virtual StatusCode fillCollectionFromClusterContainer(std::unique_ptr< xAOD::HIEventShapeContainer > &evtShape, const xAOD::CaloClusterContainer *theClusters, const EventContext &ctx) const
virtual StatusCode fillCollectionFromTowerContainer(std::unique_ptr< xAOD::HIEventShapeContainer > &evtShape, const INavigable4MomentumCollection *navInColl) const
SG::ReadHandleKey< CaloCellContainer > m_caloCellKey
Gaudi::Property< int > m_numOrders
virtual StatusCode initializeEventShapeContainer(std::unique_ptr< xAOD::HIEventShapeContainer > &evtShape) const override
const CaloCell_ID * m_calo_id
virtual StatusCode fillCollectionFromCells(std::unique_ptr< xAOD::HIEventShapeContainer > &evtShape, const SG::ReadHandleKey< CaloCellContainer > &cell_container_key, const EventContext &ctx) const override
Property holding a SG store/key/clid from which a ReadHandle is made.
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
Definition index.py:1
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.