17#include "CaloEvent/CaloTower.h"
18#include "CaloEvent/CaloTowerContainer.h"
27 const std::string&
type,
28 const IInterface* parent)
50 ATH_MSG_INFO(
"CaloTowerBuilder for the FCal initiated" );
52 return StatusCode::SUCCESS;
72 for (; firstC != lastC; ++firstC) {
74 unsigned int ci = firstC->first;
75 double weightC = firstC->second;
76 int cndx = cells->findIndex(ci);
79 cellPtr = (*cells)[cndx];
82 wsumE += weightC * cellPtr->
e();
95 size_t sz = towers->size();
99 for (
unsigned int t = 0; t <
sz; ++t, ++tower_it) {
101 addTower (tower_it, cellsEL, aTower);
112 size_t sz = towers->size();
113 assert(subseg->
size() ==
sz);
116 for (
unsigned int t = 0; t <
sz; ++t, ++tower_it) {
118 addTower (tower_it, cellsEL, aTower);
130 if( thisNC->rebuildLookup(ctx)!=StatusCode::SUCCESS )
131 throw std::runtime_error(
"LArFCalTowerBuilderTool::runTimeInit rebuildLookup table failed");
147 return StatusCode::FAILURE;
154 return StatusCode::SUCCESS;
160 ATH_MSG_DEBUG(
"no FCal cells in CaloCellContainer, skip tool!" );
161 return StatusCode::SUCCESS;
177 return StatusCode::SUCCESS;
197 return execute (ctx, theContainer,
nullptr,
nullptr);
216 return StatusCode::SUCCESS;
218 return StatusCode::FAILURE;
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition of CaloDetDescrManager.
#define ATLAS_THREAD_SAFE
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
const ServiceHandle< StoreGateSvc > & detStore() const
Container class for CaloCell.
int nCellsCalo(const CaloCell_ID::SUBCALO caloNum) const
get number of cels of given calorimeter
CaloCell_Base_ID::SUBCALO SUBCALO
Data object for each calorimeter readout cell.
virtual double e() const override final
get energy (data member) (synonym to method energy()
This class provides the client interface for accessing the detector description information common to...
void addUniqueCellNoKine(const CaloCellContainer *theContainer, index_type theIndex, double weight, size_t size_hint=0)
Add a cell (very fast)
Storable container class for CaloTower.
void setCalo(const CaloCell_ID::SUBCALO &nCalo)
Adds a calorimeter index to the tower.
const CaloTowerSeg & towerseg() const
Return a copy of the attached CaloTowerSeg.
size_t itower() const
The tower index to which the iterator is referring.
A rectangular window within the segmentation.
size_t size() const
The number of towers in this window.
Data class for calorimeter cell towers.
virtual double getBasicEnergy() const override
Basic signal getter.
ElementLink implementation for ROOT usage.
const_pointer getDataPtr() const
Return a pointer to the currently-referenced container object.
CaloTowerSeg::SubSegIterator< tower_iterator > tower_subseg_iterator
tower_data_t::const_iterator cell_iterator
virtual void setE(double theE)
set energy data member