ATLAS Offline Software
CaloClusterStoreHelper.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //Dear emacs, this is -*-c++-*-
6 #ifndef CALOUTILS_CALOCLUSTERSTOREHELPER_H
7 #define CALOUTILS_CALOCLUSTERSTOREHELPER_H
8 
9 #include "GaudiKernel/MsgStream.h"
10 #include "GaudiKernel/StatusCode.h"
13 #include "StoreGate/WriteHandle.h"
14 #include "AthLinks/DataLink.h"
15 #include <memory>
16 
17 class CaloCellContainer;
18 class StoreGateSvc;
19 
21 public:
22 
24  // Make Cluster //
26 
32  static std::unique_ptr<xAOD::CaloCluster> makeCluster(const CaloCellContainer* cellCont);
33 
39  static std::unique_ptr<xAOD::CaloCluster> makeCluster(const DataLink<CaloCellContainer>& cellCont);
40 
50  static std::unique_ptr<xAOD::CaloCluster> makeCluster(const CaloCellContainer* cellCont,
51  const double eta0, const double phi0,
52  const xAOD::CaloCluster_v1::ClusterSize clusterSize);
53 
54 
63  const CaloCellContainer* cellCont);
64 
65 
74  const DataLink<CaloCellContainer>& cellCont);
75 
76 
83 
86  xAOD::CaloClusterContainer* pClusterColl);
87 
88  static void finalizeClusters(
89  const EventContext& ctx,
91  SG::WriteHandle<CaloClusterCellLinkContainer>& outClusterContainerCellLink);
92 
98  //Moved to here from CaloRunClusterCorrection
99  static void copyContainer (const xAOD::CaloClusterContainer* oldColl, xAOD::CaloClusterContainer* newColl);
100 };
101 
102 #endif
CaloClusterStoreHelper::makeCluster
static std::unique_ptr< xAOD::CaloCluster > makeCluster(const CaloCellContainer *cellCont)
Creates a valid CaloCluster with a private Aux-Store and CellLink container.
Definition: CaloClusterStoreHelper.cxx:13
xAOD::CaloCluster_v1::ClusterSize
ClusterSize
Enumeration to identify different cluster sizes.
Definition: CaloCluster_v1.h:86
CaloClusterStoreHelper::finalizeClusters
static StatusCode finalizeClusters(SG::WriteHandle< CaloClusterCellLinkContainer > &h, xAOD::CaloClusterContainer *pClusterColl)
Finalize clusters (move CaloClusterCellLink to a separate container).
Definition: CaloClusterStoreHelper.cxx:64
CaloClusterStoreHelper::AddContainerWriteHandle
static StatusCode AddContainerWriteHandle(SG::WriteHandle< xAOD::CaloClusterContainer > &clusColl)
Creates a new xAOD::CaloClusterContainer in the given WriteHandle + CaloClusterAuxContainer and recor...
Definition: CaloClusterStoreHelper.cxx:53
InDetAccessor::phi0
@ phi0
Definition: InDetAccessor.h:33
WriteHandle.h
Handle class for recording to StoreGate.
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CaloClusterStoreHelper::copyContainer
static void copyContainer(const xAOD::CaloClusterContainer *oldColl, xAOD::CaloClusterContainer *newColl)
Deep copy of a cluster container.
Definition: CaloClusterStoreHelper.cxx:91
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
h
CaloClusterContainer.h
CaloClusterStoreHelper
Definition: CaloClusterStoreHelper.h:20