|
ATLAS Offline Software
|
Go to the documentation of this file.
6 #include "CLHEP/Units/SystemOfUnits.h"
8 #include "GaudiKernel/MsgStream.h"
9 #include "Gaudi/Property.h"
10 #include "GaudiKernel/Service.h"
11 #include "GaudiKernel/IToolSvc.h"
20 #include "CaloEvent/CaloTower.h"
21 #include "CaloEvent/CaloTowerContainer.h"
29 const std::string&
type,
34 declareInterface<ICaloTowerBuilderToolBase>(
this);
73 for (; firstC != lastC; ++firstC) {
75 unsigned int ci = firstC.
hash();
76 double weightC = firstC.
weight();
77 int cndx =
cells->findIndex(ci);
80 cellPtr = (*cells)[cndx];
83 wsumE += weightC * cellPtr->
e();
105 for (
unsigned int t = 0;
t <
sz; ++
t, ++tower_it) {
107 addTower (tower_it, cellsEL, aTower);
119 assert(subseg->
size() ==
sz);
123 for (
unsigned int t = 0;
t <
sz; ++
t, ++tower_it) {
125 addTower (tower_it, cellsEL, aTower);
136 addTower (tower_it, cellsEL, aTower);
187 return StatusCode::SUCCESS;
215 return StatusCode::SUCCESS;
235 return execute (ctx, theContainer,
nullptr,
nullptr);
250 for (
unsigned int iCalos = 0; iCalos <
m_includedCalos.size(); iCalos++) {
259 return StatusCode::FAILURE;
261 return StatusCode::SUCCESS;
268 if (
rebuildLookup(Gaudi::Hive::currentContext()).isFailure()) {
281 std::vector<CaloCell_ID::SUBCALO>
283 (
const std::vector<std::string>& includedCalos)
const
286 std::vector<CaloCell_ID::SUBCALO>
indices;
288 for (
const std::string&
s : includedCalos) {
291 }
else if (
s ==
"LARHEC") {
293 }
else if (
s ==
"LARFCAL") {
295 }
else if (
s ==
"TILE") {
313 return StatusCode::SUCCESS;
316 return StatusCode::FAILURE;
Iterator over a rectangular window of towers.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
std::pair< long int, long int > indices
const_pointer getDataPtr() const
Return a pointer to the currently-referenced container object.
virtual double e() const override final
get energy (data member) (synonym to method energy()
void addUniqueCellNoKine(const CaloCellContainer *theContainer, index_type theIndex, double weight, size_t size_hint=0)
Add a cell (very fast)
Definition of CaloDetDescrManager.
cell_iterator firstCell() const
A rectangular window within the segmentation.
Storable container class for CaloTower.
::StatusCode StatusCode
StatusCode definition for legacy code.
size_t itower() const
The tower index to which the iterator is referring.
CaloPhiRange class declaration.
Data class for calorimeter cell towers.
cell_iterator lastCell() const
const CaloTowerSeg & towerseg() const
Return a copy of the attached CaloTowerSeg.
Container class for CaloCell.
This class provides the client interface for accessing the detector description information common to...
Data object for each calorimeter readout cell.
virtual void setE(double theE)
set energy data member
tower_iterator towers() const
size_t size() const
The number of towers in this window.
#define ATLAS_THREAD_SAFE
bool buildLookUp(const CaloDetDescrManager &theManager, const CaloTowerSeg &theTowerSeg, const std::vector< CaloCell_ID::SUBCALO > &theCalos)
setup trigger
void setCalo(const CaloCell_ID::SUBCALO &nCalo)
Adds a calorimeter index to the tower.
size_type size() const noexcept
Returns the number of elements in the collection.
virtual double getBasicEnergy() const override
Basic signal getter.