![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
7 #include "AthLinks/ElementLink.h"
51 return StatusCode::SUCCESS;
65 cells = cellsHandle.ptr();
71 triggerTowers = triggerTowersHandle.ptr();
75 auto towers = std::make_unique<xAOD::JGTowerContainer>();
76 auto towersAux = std::make_unique<xAOD::JGTowerAuxContainer>();
77 towers->setStore(towersAux.get());
83 return StatusCode::FAILURE;
93 if (triggerTower->sampling() != towerHelper.sampling() && std::abs(towerHelper.Eta()) < 3.1)
95 if (!towerHelper.inBox(triggerTower->eta(), triggerTower->phi()))
97 tileEt += 500 * triggerTower->cpET();
103 for (
unsigned int scIdx : towerHelper.GetSCIndices())
107 const CaloCell *superCell = superCells->findCell(scHash);
111 float et = superCell->
et();
113 if (std::isnan(superCell->
et()))
115 ATH_MSG_ERROR(
"Supercell ET is nan. Likely due to BCID correction or something else upstream");
119 (
et < 10
e3 && std::abs(
time) > 8) ||
134 if (towerHelper.sampling() == 1)
137 for (
unsigned int tileIdx : towerHelper.GetTileIndices())
143 tileEt +=
cell->e() *
cell->sinTh();
147 if (std::abs(triggerTower->eta()) < 1.5) {
148 if (triggerTower->sampling() == 1 &&
149 towerHelper.inBox(triggerTower->eta(), triggerTower->phi()))
150 tileEt += 500 * triggerTower->cpET();
155 float towerEt = LArEt + tileEt;
160 tower->
initialize(
towers->size() - 1, towerHelper.Eta(), towerHelper.Phi());
161 tower->
setdEta(towerHelper.dEta());
162 tower->
setdPhi(towerHelper.dPhi());
163 tower->
setEt(towerEt);
164 tower->
setSCIndex(towerHelper.GetSCIndices());
167 decArea(*tower) = towerHelper.area();
169 decNextEtaIndex(*tower) = towerHelper.nextEtaIndex();
170 decPreviousEtaIndex(*tower) = towerHelper.previousEtaIndex();
171 decNextPhiIndex(*tower) = towerHelper.nextPhiIndex();
172 decPreviousPhiIndex(*tower) = towerHelper.previousPhiIndex();
173 decIndexInFront(*tower) = towerHelper.indexInFront();
174 decIndexBehind(*tower) = towerHelper.indexBehind();
177 ATH_CHECK(towerHandle.record(std::move(
towers), std::move(towersAux)));
178 return StatusCode::SUCCESS;
def retrieve(aClass, aKey=None)
Description of JGTower_v1.
SG::ReadHandleKey< xAOD::TriggerTowerContainer > m_triggerTowersKey
Extra patterns decribing particle interation process.
SG::ReadCondHandleKey< JGTowerMappingData > m_mappingKey
IdentifierHash calo_cell_hash(const Identifier cellId) const
create hash id from 'global' cell id
void setTileIndex(const std::vector< int > &)
set TileIndex
SG::WriteHandleKey< xAOD::JGTowerContainer > m_towersKey
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual ~JGTowerBuilder() override
uint16_t provenance() const
get provenance (data member)
float time() const
get time (data member)
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
SG::ReadHandleKey< CaloCellContainer > m_cellsKey
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
An algorithm that can be simultaneously executed in multiple threads.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
virtual StatusCode initialize() override
virtual StatusCode execute(const EventContext &ctx) const override
Helper class to provide type-safe access to aux data.
::StatusCode StatusCode
StatusCode definition for legacy code.
Description of TriggerTower_v2.
const CaloCell_SuperCell_ID * m_scid
virtual double et() const override final
get et
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
StatusCode initialize(bool used=true)
JGTower_v1 JGTower
Define the latest version of the JGTower class.
Container class for CaloCell.
Identifier cell_id(const int subCalo, const int barec_or_posneg, const int sampling_or_fcalmodule, const int region_or_dummy, const int eta, const int phi) const
Make a cell (== channel) ID from constituting fields and subCalo index; for (Mini)FCAL,...
void setSCIndex(const std::vector< int > &)
set SCIndex
SG::ReadHandleKey< CaloCellContainer > m_superCellsKey
Data object for each calorimeter readout cell.
def time(flags, cells_name, *args, **kw)
JGTowerBuilder(const std::string &name, ISvcLocator *pSvcLocator)
virtual void initialize(const int Id, const float Eta, const float Phi, const float Et)