23 return StatusCode::SUCCESS;
37 ATH_CHECK(xaoda.
record (std::make_unique<xAOD::TrackParticleClusterAssociationContainer>(),
38 std::make_unique<xAOD::TrackParticleClusterAssociationAuxContainer>()));
42 unsigned int ntracks = 0;
43 for(
unsigned int i=0;i<trackParticles->size();++i ){
51 std::unique_ptr<const Rec::ParticleCellAssociation> association
54 ATH_MSG_DEBUG(
"failed to obtain the ParticleCellAssociation");
59 if( !association->container() ){
60 ATH_MSG_WARNING(
"Failed to obtain CaloCellContainer from ParticleCellAssociation");
66 *association->container(),
69 ATH_MSG_WARNING(
"Failed to create cluster from ParticleCellAssociation");
72 ATH_MSG_DEBUG(
" New cluster: eta " << cluster->
eta() <<
" phi " << cluster->
phi() <<
" cells " << cluster->
size() <<
" nclusters " << clusColl->size() );
82 xaoda->push_back(trackAssociation);
84 std::vector< ElementLink< xAOD::CaloClusterContainer > > caloClusterLinks;
85 caloClusterLinks.push_back( clusterLink );
95 ATH_MSG_DEBUG(
" Total number of selected tracks: " << ntracks );
100 return StatusCode::SUCCESS;
106 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
static StatusCode AddContainerWriteHandle(SG::WriteHandle< xAOD::CaloClusterContainer > &clusColl)
Creates a new xAOD::CaloClusterContainer in the given WriteHandle + CaloClusterAuxContainer and recor...
static StatusCode finalizeClusters(SG::WriteHandle< CaloClusterCellLinkContainer > &h, xAOD::CaloClusterContainer *pClusterColl)
Finalize clusters (move CaloClusterCellLink to a separate container).
bool isValid() const
Check if the element can be found.
static xAOD::CaloCluster * crossedCells(const Rec::ParticleCellAssociation &association, const CaloCellContainer &cellContainer, xAOD::CaloClusterContainer &clusterContainer)
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
pointer_type ptr()
Dereference the pointer.
Gaudi::Property< double > m_ptCut
StatusCode initialize() override
StatusCode execute(const EventContext &ctx) const override
SG::WriteHandleKey< xAOD::TrackParticleClusterAssociationContainer > m_associationContainerName
SG::WriteHandleKey< xAOD::CaloClusterContainer > m_clusterContainerName
SG::WriteHandleKey< CaloClusterCellLinkContainer > m_clusterCellLinkName
ToolHandle< Rec::IParticleCaloCellAssociationTool > m_caloCellAssociationTool
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_trkLinkKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackParticleCollectionName
StatusCode finalize() override
~TrackParticleCellAssociationAlg()
virtual double eta() const
The pseudorapidity ( ) of the particle.
size_t size() const
size method (forwarded from CaloClusterCellLink obj)
virtual double phi() const
The azimuthal angle ( ) of the particle.
void setTrackParticleLink(const ElementLink< TrackParticleContainer > &trackParticleLink)
Sets.
void setCaloClusterLinks(const std::vector< ElementLink< CaloClusterContainer > > &caloClusterLinks)
Sets.
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .).
virtual double pt() const override final
The transverse momentum ( ) of the particle.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
TrackParticleClusterAssociation_v1 TrackParticleClusterAssociation
Reference the current persistent version:
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent version: