 |
ATLAS Offline Software
|
Athena Algorithm to decode the ITkStrip Byte Stream.
More...
#include <ITkStripRawDataProvider.h>
|
virtual | ~ITkStripRawDataProvider ()=default |
| Destructor. More...
|
|
virtual StatusCode | initialize () override |
| Initialize. More...
|
|
virtual StatusCode | execute (const EventContext &ctx) const override |
| Execute. More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
virtual bool | filterPassed (const EventContext &ctx) const |
|
virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
ServiceHandle< IROBDataProviderSvc > | m_robDataProvider |
| ROB Data Provider for accessing ROB data. More...
|
|
ToolHandle< IRegSelTool > | m_regionSelector |
| Region Selector tool for Athena. More...
|
|
ToolHandle< IITkStripRawDataProviderTool > | m_rawDataTool |
| Tool to fill Collections of SCT RDO Containers. More...
|
|
ToolHandle< IITkStripCablingTool > | m_cabling |
| Providing mappings of online and offline identifiers and also serial numbers. More...
|
|
const SCT_ID * | m_sctID {nullptr} |
| Identifier helper class for the SCT subdetector that creates compact Identifier objects and IdentifierHash or hash IDs. More...
|
|
BooleanProperty | m_roiSeeded {this, "isRoI_Seeded", false, "Use RoI"} |
| Boolean to determine if SCT Raw Data Provider should be run in RoI seeded mode. More...
|
|
Gaudi::Property< bool > | m_useDataPoolWithCache |
| Boolean to Use DataPool with IDC online Cache. More...
|
|
SG::ReadHandleKey< TrigRoiDescriptorCollection > | m_roiCollectionKey |
| Read handle for Trigger ROI descriptor collection. More...
|
|
SG::WriteHandleKey< SCT_RDO_Container > | m_rdoContainerKey |
| Write handle for SCT RDO container. More...
|
|
SG::WriteHandleKey< InDetTimeCollection > | m_lvl1CollectionKey |
| Write handle for LVL 1 Inner Detector time collection. More...
|
|
SG::WriteHandleKey< InDetTimeCollection > | m_bcIDCollectionKey |
| Write handle for BC ID Inner Detector time collection. More...
|
|
SG::WriteHandleKey< IDCInDetBSErrContainer > | m_bsIDCErrContainerKey |
| Write handle for Inner Detector ByteStream error container. More...
|
|
SG::UpdateHandleKey< SCT_RDO_Cache > | m_rdoContainerCacheKey {this, "RDOCacheKey", ""} |
| Update handle for SCT RDO and Erorrs Cache. More...
|
|
SG::UpdateHandleKey< IDCInDetBSErrContainer_Cache > | m_bsErrContainerCacheKey {this, "BSErrCacheKey", ""} |
|
Gaudi::Property< bool > | m_storeInDetTimeColls {this, "StoreInDetTimeCollections", true, "Store LVL1ID and BCID"} |
|
DataObjIDColl | m_extendedExtraObjects |
| Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
|
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Athena Algorithm to decode the ITkStrip Byte Stream.
Definition at line 35 of file ITkStripRawDataProvider.h.
◆ StoreGateSvc_t
◆ ~ITkStripRawDataProvider()
virtual ITkStripRawDataProvider::~ITkStripRawDataProvider |
( |
| ) |
|
|
virtualdefault |
◆ cardinality()
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode ITkStripRawDataProvider::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
Execute.
Definition at line 55 of file ITkStripRawDataProvider.cxx.
59 if (not externalCacheRDO) {
66 ATH_CHECK(rdoContainer.record (std::make_unique<SCT_RDO_Container>(rdoCache.ptr())));
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;
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ extraOutputDeps()
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.
◆ filterPassed()
◆ initialize()
StatusCode ITkStripRawDataProvider::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ isClonable()
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
◆ renounceArray()
◆ setFilterPassed()
◆ sysExecute()
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.
◆ sysInitialize()
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.
110 if (
sc.isFailure()) {
118 if ( cs.retrieve().isFailure() ) {
120 return StatusCode::SUCCESS;
122 if (cs->regHandle(
this,*
h).isFailure()) {
123 sc = StatusCode::FAILURE;
124 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_bcIDCollectionKey
Initial value:{this,
"BCIDKey",
"SCT_BCID",
"SCT BCID key"}
Write handle for BC ID Inner Detector time collection.
Definition at line 104 of file ITkStripRawDataProvider.h.
◆ m_bsErrContainerCacheKey
◆ m_bsIDCErrContainerKey
Initial value:{this,
"IDCByteStreamErrContainer",
"SCT_ByteStreamErrs",
"SCT BS error key for IDC variant"}
Write handle for Inner Detector ByteStream error container.
Definition at line 110 of file ITkStripRawDataProvider.h.
◆ m_cabling
Initial value:{this,
"ITkStripCablingTool",
"ITkStripCablingTool",
"Tool to retrieve ITk Cabling"}
Providing mappings of online and offline identifiers and also serial numbers.
Definition at line 69 of file ITkStripRawDataProvider.h.
◆ m_detStore
◆ m_evtStore
◆ m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 114 of file AthCommonReentrantAlgorithm.h.
◆ m_lvl1CollectionKey
Initial value:{this,
"LVL1IDKey",
"SCT_LVL1ID",
"SCT LVL1ID key"}
Write handle for LVL 1 Inner Detector time collection.
Definition at line 98 of file ITkStripRawDataProvider.h.
◆ m_rawDataTool
Initial value:{this,
"ProviderTool",
"ITkStripRawDataProviderTool",
"ITkStrips Raw Data Provider Tool"}
Tool to fill Collections of SCT RDO Containers.
Definition at line 63 of file ITkStripRawDataProvider.h.
◆ m_rdoContainerCacheKey
◆ m_rdoContainerKey
Initial value:{this,
"RDOKey",
"SCT_RDOs",
"SCT RDO key"}
Write handle for SCT RDO container.
Definition at line 92 of file ITkStripRawDataProvider.h.
◆ m_regionSelector
ToolHandle<IRegSelTool> ITkStripRawDataProvider::m_regionSelector |
|
private |
◆ m_robDataProvider
Initial value:{this,
"ROBDataProviderSvc",
"ROBDataProviderSvc"}
ROB Data Provider for accessing ROB data.
Definition at line 53 of file ITkStripRawDataProvider.h.
◆ m_roiCollectionKey
Initial value:{this,
"RoIs",
"",
"RoIs to read in"}
Read handle for Trigger ROI descriptor collection.
Definition at line 86 of file ITkStripRawDataProvider.h.
◆ m_roiSeeded
BooleanProperty ITkStripRawDataProvider::m_roiSeeded {this, "isRoI_Seeded", false, "Use RoI"} |
|
private |
◆ m_sctID
const SCT_ID* ITkStripRawDataProvider::m_sctID {nullptr} |
|
private |
◆ m_storeInDetTimeColls
Gaudi::Property<bool> ITkStripRawDataProvider::m_storeInDetTimeColls {this, "StoreInDetTimeCollections", true, "Store LVL1ID and BCID"} |
|
private |
◆ m_useDataPoolWithCache
Gaudi::Property<bool> ITkStripRawDataProvider::m_useDataPoolWithCache |
|
private |
Initial value:{
this, "useDataPoolWithCache", false, "use DataPool With Cache"}
Boolean to Use DataPool with IDC online Cache.
Definition at line 82 of file ITkStripRawDataProvider.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
SG::UpdateHandleKey< SCT_RDO_Cache > m_rdoContainerCacheKey
Update handle for SCT RDO and Erorrs Cache.
def retrieve(aClass, aKey=None)
SG::UpdateHandleKey< IDCInDetBSErrContainer_Cache > m_bsErrContainerCacheKey
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roiCollectionKey
Read handle for Trigger ROI descriptor collection.
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
SG::WriteHandleKey< SCT_RDO_Container > m_rdoContainerKey
Write handle for SCT RDO container.
SG::WriteHandleKey< InDetTimeCollection > m_lvl1CollectionKey
Write handle for LVL 1 Inner Detector time collection.
Gaudi::Property< bool > m_useDataPoolWithCache
Boolean to Use DataPool with IDC online Cache.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
ToolHandle< IITkStripRawDataProviderTool > m_rawDataTool
Tool to fill Collections of SCT RDO Containers.
virtual void setOwner(IDataHandleHolder *o)=0
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
void push_back(const IRoiDescriptor *roi)
add a RoiDescriptor
size_type wafer_hash_max() const
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
void reserve(size_t s)
reserve elements in vector
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
ROB Data Provider for accessing ROB data.
ToolHandle< IITkStripCablingTool > m_cabling
Providing mappings of online and offline identifiers and also serial numbers.
Gaudi::Property< bool > m_storeInDetTimeColls
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
const SCT_ID * m_sctID
Identifier helper class for the SCT subdetector that creates compact Identifier objects and Identifie...
SG::WriteHandleKey< IDCInDetBSErrContainer > m_bsIDCErrContainerKey
Write handle for Inner Detector ByteStream error container.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual StatusCode sysInitialize() override
Override sysInitialize.
void setComposite(bool b=true)
bool manageConstituents() const
always manage constituents ???
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
SG::WriteHandleKey< InDetTimeCollection > m_bcIDCollectionKey
Write handle for BC ID Inner Detector time collection.
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
BooleanProperty m_roiSeeded
Boolean to determine if SCT Raw Data Provider should be run in RoI seeded mode.
ToolHandle< IRegSelTool > m_regionSelector
Region Selector tool for Athena.