|
ATLAS Offline Software
|
Go to the documentation of this file.
31 return StatusCode::SUCCESS;
41 navInColl = readHandleTower.
cptr();
46 cellColl = readHandleCell.
cptr();
54 for(
const auto *towerItr : *navInColl)
68 towerItr->fillToken(cellToken,
double(1.));
73 if ( cellToken.
size() == 0 )
continue;
83 double cell_E_w=(*cellItr)->energy()*geoWeight;
87 cl->addCell(iCell,geoWeight);
90 eta_cl+=cell_E_w*(*cellItr)->eta();
91 phi_cl+=cell_E_w*(*cellItr)->phi();
92 E2_cl+=cell_E_w*cell_E_w;
93 time_cl+=cell_E_w*cell_E_w*(*cellItr)->time();
96 samplingPattern |= (0x1U<<
sample);
99 float eta0=towerItr->eta();
100 float phi0=towerItr->phi();
120 if(E2_cl < 1
e-8) time_cl=0.;
130 cl->setRawEta(eta_cl);
131 cl->setRawPhi(phi_cl);
135 cl->setAltEta(eta_cl);
136 cl->setAltPhi(phi_cl);
140 cl->setCalEta(eta_cl);
141 cl->setCalPhi(phi_cl);
145 cl->setTime(time_cl);
146 cl->setSamplingPattern(samplingPattern);
149 << std::setw(15) <<
cl->e()
150 << std::setw(15) <<
cl->eta()
151 << std::setw(15) <<
cl->phi() );
155 return StatusCode::SUCCESS;
160 return StatusCode::SUCCESS;
168 clusCollIter!= clusColl->
end(); ++clusCollIter)
180 ATH_MSG_ERROR(
"Can't get valid links to CaloCells (CaloClusterCellLink)!");
181 return StatusCode::FAILURE;
184 unsigned int ncells=0;
196 double cell_E_w=pCell->
energy();
199 eta_cl+=cell_E_w*pCell->
eta();
200 phi_cl+=cell_E_w*pCell->
phi();
210 << std::setw(15) <<
cl->e()
211 << std::setw(15) <<
cl->eta()
212 << std::setw(15) <<
cl->phi()
213 << std::setw(15) << E_cl
214 << std::setw(15) << eta_cl
215 << std::setw(15) << phi_cl
216 << std::setw(15) << ncells
217 << std::setw(15) <<
sumw );
219 return StatusCode::SUCCESS;
static std::unique_ptr< xAOD::CaloCluster > makeCluster(const CaloCellContainer *cellCont)
Creates a valid CaloCluster with a private Aux-Store and CellLink container.
StatusCode dumpClusters(xAOD::CaloClusterContainer *clusColl)
virtual StatusCode finalize()
virtual double phi() const override final
get phi (through CaloDetDescrElement)
static StatusCode AddContainerWriteHandle(SG::WriteHandle< xAOD::CaloClusterContainer > &clusColl)
Creates a new xAOD::CaloClusterContainer in the given WriteHandle + CaloClusterAuxContainer and recor...
const_pointer_type cptr()
Dereference the pointer.
SG::ReadHandleKey< INavigable4MomentumCollection > m_towerContainerKey
Name of input CaloTowerContainer, e.g CmbTower.
bool inTowerBoundary(float eta0, float phi0, float eta, float phi)
virtual StatusCode initialize()
#define ATH_MSG_VERBOSE(x)
__HOSTDEV__ double Phi_mpi_pi(double)
SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outputKey
Name of output CaloClusterContainer, e.g. HIClusters.
double energy() const
get energy (data member)
An algorithm that can be simultaneously executed in multiple threads.
SG::ReadHandleKey< CaloCellContainer > m_cellContainerKey
Name of input CaloCellContainer, e.g. AllCalo.
Bookkeeping of cells that make up a cluster Simplified replacement for CaloCellLink,...
Handle class for recording to StoreGate.
Description of a calorimeter cluster.
(Non-const) Iterator class for DataVector/DataList.
::StatusCode StatusCode
StatusCode definition for legacy code.
HIClusterMaker(const std::string &name, ISvcLocator *pSvcLocator)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
void prefetchNext(Iter iter, Iter endIter)
Prefetch next object in sequence.
const_iterator begin() const
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Container class for CaloCell.
const_iterator end() const
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
Gaudi::Property< float > m_EminMoment
For clusters w/ E less than this, set their eta/phi to tower eta/phi.
Data object for each calorimeter readout cell.
int findIndex(const IdentifierHash theHash) const
Return index of the cell with a given hash.
CHILDPAR getParameter(const_child_ptr data) const
Handle class for reading from StoreGate.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
virtual StatusCode execute(const EventContext &ctx) const
virtual double eta() const override final
get eta (through CaloDetDescrElement)
Functions to prefetch blocks of memory.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.