16#include "GaudiKernel/IInterface.h"
17#include "GaudiKernel/MsgStream.h"
18#include "GaudiKernel/StatusCode.h"
22#include "CaloDetDescr/CaloDetDescrElement.h"
27#include "Identifier/Identifier.h"
72 sc =
detStore()->retrieve(lvl1_id,
"CaloLVL1_ID");
73 if (
sc.isFailure() || !lvl1_id) {
82 const unsigned int maxCaloCells = 188080;
97 double grans[
s_nregions] = { 0.1, 0.2, 0.1, 0.425 };
98 double etaOffset[
s_nregions] = { 0., 2.5, 3.1, 3.2 };
109 int shift = binsPhi[
r] - 1;
114 for (
int i = 0; i < binsEta[
r]; ++i) {
115 double eta = etaOffset[
r] + (i+0.5)*grans[
r];
124 return StatusCode::SUCCESS;
132 return StatusCode::SUCCESS;
148 const EventContext& ctx = Gaudi::Hive::currentContext();
149 int eventNumber = ctx.eventID().event_number();
150 int runNumber = ctx.eventID().run_number();
152 return StatusCode::SUCCESS;
161 if(!
sc.isSuccess() || !caloCellContainer) {
163 return StatusCode::SUCCESS;
174 unsigned int cellIdsIndex = 0;
178 for (; CaloCellIterator != CaloCellIteratorEnd; ++CaloCellIterator) {
180 const CaloCell* caloCell(*CaloCellIterator);
192 m_cellMatch->matchCell2Tower(**cabling, caloCell, ttId1, ttId2);
197 m_ttIdx[cellIdsIndex++] = index1;
200 m_ttIdx[cellIdsIndex++] = index2;
205 index1 =
m_ttIdx[cellIdsIndex++];
208 m_cellMatch->matchCell2Tower(**cabling, caloCell, ttId1, ttId2);
217 const float energy = caloCell->
energy();
220 const float energy2 = energy*0.5;
224 if (tileCell && (tileCell->
provenance() & 0x8080)) {
225 const float qual = energy2 * std::max(tileCell->
qual1(), tileCell->
qual2());
237 if (tileCell && (tileCell->
provenance() & 0x8080)) {
267 return StatusCode::SUCCESS;
Scalar eta() const
pseudorapidity method
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ServiceHandle< StoreGateSvc > & evtStore()
const ServiceHandle< StoreGateSvc > & detStore() const
bool msgLvl(const MSG::Level lvl) const
Container class for CaloCell.
Data object for each calorimeter readout cell.
double energy() const
get energy (data member)
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
uint16_t provenance() const
get provenance (data member)
uint16_t quality() const
get quality (data member)
Identifier ID() const
get ID (from cached data member) non-virtual and inline for fast access
This class groups all DetDescr information related to a CaloCell.
float sinTh() const
for algorithm working in transverse Energy
bool is_tile() const
cell belongs to Tile
bool is_lar_fcal() const
cell belongs to FCAL
Helper class for offline TT identifiers.
DataModel_detail::const_iterator< DataVector > const_iterator
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
value_type get_compact() const
Get the compact id.
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
uint8_t qual1(void) const
get quality of first PMT (data member)
uint8_t qual2(void) const
get quality of second PMT (data member)
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...