|
ATLAS Offline Software
|
Athena Algorithm to decode the SCT Byte Stream.
More...
#include <SCTRawDataProvider.h>
|
| SCTRawDataProvider (const std::string &name, ISvcLocator *pSvcLocator) |
| Constructor. More...
|
|
virtual | ~SCTRawDataProvider ()=default |
| Destructor. More...
|
|
virtual StatusCode | initialize () override |
| Initialize. More...
|
|
virtual StatusCode | execute (const EventContext &ctx) const override |
| Execute. More...
|
|
virtual bool | isClonable () const override |
| Make this algorithm clonable. More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. 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 > &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 |
|
Athena Algorithm to decode the SCT Byte Stream.
Gets vector of ROBFragments from the ROBDataProviderSvc and uses AlgTools (SCTRawDataProviderTool and SCT_RodDecoder to read the ByteStream and make RDOs. Output is one RDO container (IDC) per event, which contains one Collection per link (8176 in total), each of which contains RDOs for hits (one RDO per strip in expanded mode, one per cluster in condensed mode).
Class based on TRT equivalent.
Definition at line 44 of file SCTRawDataProvider.h.
◆ StoreGateSvc_t
◆ SCTRawDataProvider()
SCTRawDataProvider::SCTRawDataProvider |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~SCTRawDataProvider()
virtual SCTRawDataProvider::~SCTRawDataProvider |
( |
| ) |
|
|
virtualdefault |
◆ cardinality()
unsigned int AthReentrantAlgorithm::cardinality |
( |
| ) |
const |
|
overridevirtualinherited |
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 55 of file AthReentrantAlgorithm.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 SCTRawDataProvider::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
Execute.
Definition at line 64 of file SCTRawDataProvider.cxx.
68 if (not externalCacheRDO) {
75 ATH_CHECK(rdoContainer.record (std::make_unique<SCT_RDO_Container>(rdoCache.ptr())));
82 ATH_MSG_DEBUG(
"Created IDCInDetBSErrContainer w/o using external cache");
86 ATH_CHECK(bsIDCErrContainer.record( std::make_unique<IDCInDetBSErrContainer>(cacheHandle.ptr())) );
87 ATH_MSG_DEBUG(
"Created SCT IDCInDetBSErrContainer using external cache");
91 std::vector<const ROBFragment*> vecROBFrags;
92 std::vector<IdentifierHash> hashIDs;
94 std::vector<uint32_t> rodList;
100 std::vector<uint32_t> listOfROBs;
104 superRoI.
reserve(roiCollection->size());
118 ATH_MSG_DEBUG(
"Number of ROB fragments " << vecROBFrags.size());
126 ATH_CHECK(lvl1Collection.
record(std::make_unique<InDetTimeCollection>()));
127 ATH_CHECK(bcIDCollection.
record(std::make_unique<InDetTimeCollection>()));
129 lvl1Collection->reserve(vecROBFrags.size());
130 bcIDCollection->reserve(vecROBFrags.size());
136 uint32_t robID{(robFrag)->rod_source_id()};
138 unsigned int lvl1ID{(robFrag)->rod_lvl1_id()};
139 lvl1Collection->emplace_back(robID, lvl1ID);
141 unsigned int bcID{(robFrag)->rod_bc_id()};
142 bcIDCollection->emplace_back(robID, bcID);
144 ATH_MSG_DEBUG(
"Stored LVL1ID " << lvl1ID <<
" and BCID " << bcID <<
" in InDetTimeCollections");
148 if ( not hashIDs.empty() ) {
151 if ( not rdoContainer->tryAddFromCache(
hash ) ) missingCount++;
152 bsIDCErrContainer->tryAddFromCache(
hash );
154 ATH_MSG_DEBUG(
"Out of: " << hashIDs.size() <<
"Hash IDs missing: " << missingCount );
155 if ( missingCount == 0 ) {
156 return StatusCode::SUCCESS;
160 std::unique_ptr<DataPool<SCT3_RawData>> dataItemsPool =
nullptr;
161 if(!externalCacheRDO){
162 dataItemsPool = std::make_unique<DataPool<SCT3_RawData>>(ctx);
163 dataItemsPool->reserve(10000);
165 dataItemsPool = std::make_unique<DataPool<SCT3_RawData>>(ctx);
171 *(rdoContainer.ptr()),
176 if (statConv.isFailure() && statConv != StatusCode::RECOVERABLE) {
180 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()
const DataObjIDColl & AthReentrantAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 79 of file AthReentrantAlgorithm.cxx.
86 return Algorithm::extraOutputDeps();
◆ filterPassed()
virtual bool AthReentrantAlgorithm::filterPassed |
( |
const EventContext & |
ctx | ) |
const |
|
inlinevirtualinherited |
◆ initialize()
StatusCode SCTRawDataProvider::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()
virtual bool SCTRawDataProvider::isClonable |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ 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()
virtual void AthReentrantAlgorithm::setFilterPassed |
( |
bool |
state, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
inlinevirtualinherited |
◆ sysExecute()
StatusCode AthReentrantAlgorithm::sysExecute |
( |
const EventContext & |
ctx | ) |
|
|
overridevirtualinherited |
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 67 of file AthReentrantAlgorithm.cxx.
69 return Gaudi::Algorithm::sysExecute (ctx);
◆ sysInitialize()
StatusCode AthReentrantAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
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 96 of file AthReentrantAlgorithm.cxx.
107 if ( cs.retrieve().isFailure() ) {
109 return StatusCode::SUCCESS;
111 if (cs->regHandle(
this,*
h).isFailure()) {
112 sc = StatusCode::FAILURE;
113 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 117 of file SCTRawDataProvider.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 123 of file SCTRawDataProvider.h.
◆ m_cabling
Initial value:{this,
"SCT_CablingTool",
"SCT_CablingTool",
"Tool to retrieve SCT Cabling"}
Providing mappings of online and offline identifiers and also serial numbers.
Definition at line 82 of file SCTRawDataProvider.h.
◆ m_detStore
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects |
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 153 of file AthReentrantAlgorithm.h.
◆ m_lvl1CollectionKey
Initial value:{this,
"LVL1IDKey",
"SCT_LVL1ID",
"SCT LVL1ID key"}
Write handle for LVL 1 Inner Detector time collection.
Definition at line 111 of file SCTRawDataProvider.h.
◆ m_rawDataTool
Initial value:{this,
"ProviderTool",
"SCTRawDataProviderTool",
"SCT Raw Data Provider Tool"}
Tool to fill Collections of SCT RDO Containers.
Definition at line 76 of file SCTRawDataProvider.h.
◆ m_rdoContainerCacheKey
◆ m_rdoContainerKey
Initial value:{this,
"RDOKey",
"SCT_RDOs",
"SCT RDO key"}
Write handle for SCT RDO container.
Definition at line 105 of file SCTRawDataProvider.h.
◆ m_regionSelector
ToolHandle<IRegSelTool> SCTRawDataProvider::m_regionSelector |
|
private |
Initial value:{this,
"RegSelTool",
"RegSelTool/RegSel_SCT"}
Region Selector tool for Athena.
Definition at line 71 of file SCTRawDataProvider.h.
◆ m_robDataProvider
Initial value:{this,
"ROBDataProviderSvc",
"ROBDataProviderSvc"}
ROB Data Provider for accessing ROB data.
Definition at line 66 of file SCTRawDataProvider.h.
◆ m_roiCollectionKey
Initial value:{this,
"RoIs",
"",
"RoIs to read in"}
Read handle for Trigger ROI descriptor collection.
Definition at line 99 of file SCTRawDataProvider.h.
◆ m_roiSeeded
BooleanProperty SCTRawDataProvider::m_roiSeeded {this, "isRoI_Seeded", false, "Use RoI"} |
|
private |
Boolean to determine if SCT Raw Data Provider should be run in RoI seeded mode.
Definition at line 92 of file SCTRawDataProvider.h.
◆ m_sctID
◆ m_storeInDetTimeColls
Gaudi::Property<bool> SCTRawDataProvider::m_storeInDetTimeColls {this, "StoreInDetTimeCollections", true, "Store LVL1ID and BCID"} |
|
private |
◆ m_useDataPoolWithCache
Gaudi::Property<bool> SCTRawDataProvider::m_useDataPoolWithCache |
|
private |
Initial value:{
this, "useDataPoolWithCache", false, "use DataPool With Cache"}
Boolean to Use DataPool with IDC online Cache.
Definition at line 95 of file SCTRawDataProvider.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
SG::UpdateHandleKey< IDCInDetBSErrContainer_Cache > m_bsErrContainerCacheKey
Gaudi::Property< bool > m_useDataPoolWithCache
Boolean to Use DataPool with IDC online Cache.
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
ROB Data Provider for accessing ROB data.
SG::WriteHandleKey< InDetTimeCollection > m_bcIDCollectionKey
Write handle for BC ID Inner Detector time collection.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
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
Gaudi::Property< bool > m_storeInDetTimeColls
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
AthReentrantAlgorithm()
Default constructor:
void push_back(const IRoiDescriptor *roi)
add a RoiDescriptor
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.
SG::UpdateHandleKey< SCT_RDO_Cache > m_rdoContainerCacheKey
Update handle for SCT RDO and Erorrs Cache.
ToolHandle< ISCT_CablingTool > m_cabling
Providing mappings of online and offline identifiers and also serial numbers.
SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roiCollectionKey
Read handle for Trigger ROI descriptor collection.
SG::WriteHandleKey< IDCInDetBSErrContainer > m_bsIDCErrContainerKey
Write handle for Inner Detector ByteStream error container.
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.
BooleanProperty m_roiSeeded
Boolean to determine if SCT Raw Data Provider should be run in RoI seeded mode.
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
size_type wafer_hash_max(void) const
virtual StatusCode sysInitialize() override
Override sysInitialize.
SG::WriteHandleKey< InDetTimeCollection > m_lvl1CollectionKey
Write handle for LVL 1 Inner Detector time collection.
SG::WriteHandleKey< SCT_RDO_Container > m_rdoContainerKey
Write handle for SCT RDO container.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
#define ATH_MSG_WARNING(x)
ToolHandle< ISCTRawDataProviderTool > m_rawDataTool
Tool to fill Collections of SCT RDO Containers.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
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...
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
ToolHandle< IRegSelTool > m_regionSelector
Region Selector tool for Athena.
const SCT_ID * m_sctID
Identifier helper class for the SCT subdetector that creates compact Identifier objects and Identifie...