50 return StatusCode::SUCCESS;
59 if (not externalCacheRDO) {
72 ATH_CHECK(bsIDCErrContainer.
record( std::make_unique<IDCInDetBSErrContainer>(
m_sctID->wafer_hash_max(), std::numeric_limits<IDCInDetBSErrContainer::ErrorCode>::min() )));
73 ATH_MSG_DEBUG(
"Created IDCInDetBSErrContainer w/o using external cache");
77 ATH_CHECK(bsIDCErrContainer.
record( std::make_unique<IDCInDetBSErrContainer>(cacheHandle.
ptr())) );
78 ATH_MSG_DEBUG(
"Created SCT IDCInDetBSErrContainer using external cache");
82 std::vector<const ROBFragment*> vecROBFrags;
83 std::vector<IdentifierHash> hashIDs;
85 std::vector<uint32_t> rodList;
92 std::vector<uint32_t> listOfROBs;
96 superRoI.
reserve(roiCollection->size());
110 ATH_MSG_DEBUG(
"Number of ROB fragments " << vecROBFrags.size());
118 ATH_CHECK(lvl1Collection.
record(std::make_unique<InDetTimeCollection>()));
119 ATH_CHECK(bcIDCollection.
record(std::make_unique<InDetTimeCollection>()));
121 lvl1Collection->reserve(vecROBFrags.size());
122 bcIDCollection->reserve(vecROBFrags.size());
128 uint32_t robID{(robFrag)->rod_source_id()};
130 unsigned int lvl1ID{(robFrag)->rod_lvl1_id()};
131 lvl1Collection->emplace_back(robID, lvl1ID);
133 unsigned int bcID{(robFrag)->rod_bc_id()};
134 bcIDCollection->emplace_back(robID, bcID);
136 ATH_MSG_DEBUG(
"Stored LVL1ID " << lvl1ID <<
" and BCID " << bcID <<
" in InDetTimeCollections");
140 if ( not hashIDs.empty() ) {
143 if ( not rdoContainer->tryAddFromCache( hash ) ) missingCount++;
144 bsIDCErrContainer->tryAddFromCache( hash );
146 ATH_MSG_DEBUG(
"Out of: " << hashIDs.size() <<
"Hash IDs missing: " << missingCount );
147 if ( missingCount == 0 ) {
148 return StatusCode::SUCCESS;
152 std::unique_ptr<DataPool<SCT3_RawData>> dataItemsPool =
nullptr;
153 if(!externalCacheRDO){
154 dataItemsPool = std::make_unique<DataPool<SCT3_RawData>>(ctx);
155 dataItemsPool->reserve(10000);
157 dataItemsPool = std::make_unique<DataPool<SCT3_RawData>>(ctx);
163 *(rdoContainer.
ptr()),
168 if (statConv.isFailure() && statConv != StatusCode::RECOVERABLE) {
172 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
This is an Identifier helper class for the SCT subdetector.
const ServiceHandle< StoreGateSvc > & detStore() const
SG::WriteHandleKey< InDetTimeCollection > m_lvl1CollectionKey
Write handle for LVL 1 Inner Detector time collection.
SG::WriteHandleKey< IDCInDetBSErrContainer > m_bsIDCErrContainerKey
Write handle for Inner Detector ByteStream error container.
SG::WriteHandleKey< InDetTimeCollection > m_bcIDCollectionKey
Write handle for BC ID Inner Detector time collection.
SG::UpdateHandleKey< SCT_RDO_Cache > m_rdoContainerCacheKey
Update handle for SCT RDO and Erorrs Cache.
ToolHandle< IITkStripCablingTool > m_cabling
Providing mappings of online and offline identifiers and also serial numbers.
ToolHandle< IRegSelTool > m_regionSelector
Region Selector tool for Athena.
Gaudi::Property< bool > m_useDataPoolWithCache
Boolean to Use DataPool with IDC online Cache.
SG::WriteHandleKey< SCT_RDO_Container > m_rdoContainerKey
Write handle for SCT RDO container.
virtual StatusCode execute(const EventContext &ctx) const override
Execute.
SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roiCollectionKey
Read handle for Trigger ROI descriptor collection.
BooleanProperty m_roiSeeded
Boolean to determine if SCT Raw Data Provider should be run in RoI seeded mode.
ToolHandle< IITkStripRawDataProviderTool > m_rawDataTool
Tool to fill Collections of SCT RDO Containers.
const SCT_ID * m_sctID
Identifier helper class for the SCT subdetector that creates compact Identifier objects and Identifie...
SG::UpdateHandleKey< IDCInDetBSErrContainer_Cache > m_bsErrContainerCacheKey
virtual StatusCode initialize() override
Initialize.
Gaudi::Property< bool > m_storeInDetTimeColls
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
ROB Data Provider for accessing ROB data.
This is a "hash" representation of an Identifier.
void push_back(const IRoiDescriptor *roi)
add a RoiDescriptor
bool manageConstituents() const
always manage constituents ???
void reserve(size_t s)
reserve elements in vector
void setComposite(bool b=true)
virtual bool isValid() override final
Can the handle be successfully dereferenced?
virtual bool isValid() override final
Can the handle be successfully dereferenced?
pointer_type ptr()
Dereference the pointer.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
pointer_type ptr()
Dereference the pointer.
nope - should be used for standalone also, perhaps need to protect the class def bits ifndef XAOD_ANA...
eformat::ROBFragment< PointerType > ROBFragment
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())