|
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);
152 if( thisNC->rebuildLookup(ctx)!=StatusCode::SUCCESS )
153 throw std::runtime_error(
"LArFCalTowerBuilderTool::runTimeInit rebuildLookup table failed");
188 return StatusCode::SUCCESS;
216 return StatusCode::SUCCESS;
236 return execute (ctx, theContainer,
nullptr,
nullptr);
251 for (
unsigned int iCalos = 0; iCalos <
m_includedCalos.size(); iCalos++) {
260 return StatusCode::FAILURE;
262 return StatusCode::SUCCESS;
269 if (
rebuildLookup(Gaudi::Hive::currentContext()).isFailure()) {
282 std::vector<CaloCell_ID::SUBCALO>
284 (
const std::vector<std::string>& includedCalos)
const
287 std::vector<CaloCell_ID::SUBCALO>
indices;
289 for (
const std::string&
s : includedCalos) {
292 }
else if (
s ==
"LARHEC") {
294 }
else if (
s ==
"LARFCAL") {
296 }
else if (
s ==
"TILE") {
314 return StatusCode::SUCCESS;
317 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.