|
| MdtDigitToMdtRDO (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual | ~MdtDigitToMdtRDO ()=default |
|
virtual StatusCode | initialize () override final |
|
virtual StatusCode | execute (const EventContext &ctx) const override final |
|
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 |
|
|
StatusCode | fillTagInfo () 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...
|
|
Definition at line 18 of file MdtDigitToMdtRDO.h.
StatusCode MdtDigitToMdtRDO::execute |
( |
const EventContext & |
ctx | ) |
const |
|
finaloverridevirtual |
Internal map to cache all the CSMs
Remove dead tubes from the container
Iterate on the digits of the collection
Get the online Id of the channel
Get the proper CSM hash and Csm multilayer Id
Copy the online information take the 0-th channel and the 0-th tdc
Find the proper csm card otherwise create a new one
Add the CSM to the CsmContainer
Definition at line 54 of file MdtDigitToMdtRDO.cxx.
58 ATH_CHECK(csmContainer.record(std::make_unique<MdtCsmContainer>()));
59 ATH_MSG_DEBUG(
"Recorded MdtCsmContainer called " << csmContainer.fullKey());
62 if (!container.isValid()) {
63 ATH_MSG_ERROR(
"Could not find MdtDigitContainer called " << container.fullKey());
64 return StatusCode::SUCCESS;
66 ATH_MSG_DEBUG(
"Found MdtDigitContainer called " << container.fullKey());
72 return StatusCode::FAILURE;
79 return StatusCode::FAILURE;
83 std::vector<std::unique_ptr<MdtCsm>> csm_cache{};
87 const Identifier chid1 = mdtCollection->identify();
89 if (!condtionsPtr->isGood(chid1))
continue;
94 return StatusCode::FAILURE;
98 for (
const MdtDigit* mdtDigit : *mdtCollection) {
111 if (!bmgWarningPrinted) {
112 ATH_MSG_WARNING(
"Apparently BMG chambers are disconnected to the cabling. "
113 <<
"This has been checked to only appear in mc16a-like setups as the chambers were installed in "
114 "the end-of-the-year shutdown 2016. "
115 <<
"In any other case, be despaired in facing the villian and check what has gone wrong");
116 bmgWarningPrinted =
true;
121 return StatusCode::FAILURE;
127 int tdc_counts = mdtDigit->tdc();
129 uint16_t coarse = (tdc_counts >> 5) & 0xfff;
133 amtHit->setValues(coarse, fine,
width);
136 ATH_MSG_DEBUG(
" Coarse time : " << coarse <<
" Fine time : " << fine <<
" Width : " <<
width);
142 if (!cabling_ptr->getMultiLayerCode(
cabling_data, csmId, csm_hash, msgStream())) {
144 return StatusCode::FAILURE;
148 std::unique_ptr<MdtCsm>& mdtCsm = csm_cache[csm_hash];
157 wrongCsm.mrod = mdtCsm->
MrodId();
158 wrongCsm.subdetectorId = mdtCsm->
SubDetId();
159 wrongCsm.channelId =0;
162 cabling_ptr->getOfflineId(wrongCsm, msgStream());
164 cabling_ptr->convert(wrongCsm,wrongId);
168 return StatusCode::FAILURE;
175 for (
unsigned int hash= 0;
hash < csm_cache.size(); ++
hash) {
176 if (!csm_cache[
hash])
continue;
179 return StatusCode::SUCCESS;
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()