Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FT0 LUT prepared as Singleton for DigitBlockFT0 usage #5192

Merged
merged 2 commits into from Jan 15, 2021

Conversation

afurs
Copy link
Collaborator

@afurs afurs commented Jan 15, 2021

Static member (o2::ft0::LookUpTable) in DigitBlockFT0 changed to simple Singleton(o2::ft0::SingleLUT)

@shahor02
Copy link
Collaborator

Hi @afurs
Thanks, but I still have a question: at the moment the processDigits is not called anywhere in the code, where is it supposed to be called first? I see that you are still reading from the CCDB at the time of LUT creation. The CCDB is supposed to be ready to take queries only from the DPL processing function (run(...)), when the TF with defined timestamp is processed.

Also, in general the CCDB-dependent core is supposed to re-query the CCDB for every TF, unless you know a priory that the object validity covers whole period. But if I understood @AllaMaevskaya correctly, this seems to be the case for this LUT?

@afurs
Copy link
Collaborator Author

afurs commented Jan 15, 2021

Hello @shahor02,
proccessDigits is called in DigitBlockBase::process()

static_cast<DigitBlock*>(this)->processDigits(dataBlock, linkID);

And DigitBlockBase::process() is in RawReader::processBinaryData()

digitIter->second.template process<DataBlockType>(dataBlock, linkID);

which is working within full data flow (run(...)), after initialization. So, first call of SingleLUT will be in first iteration.

"CCDB-dependence" could be easily changed to readings from config file if it is necessary. As I understand, LUT is expected to be a constant within several runs(definitely between two Technical Stops), or even period. And CCDB is just playing main holder role for FT0 LUT, in other words it doesn't depend on TFs. @AllaMaevskaya could you confirm or reject my statements, or to correct them?

So, in such cases, is it normal to use CCDB during initialization? Or CCDB usage before data flow is forbidden for all cases?

@shahor02
Copy link
Collaborator

@afurs OK, thanks. It is fine to load config from CCDB, why I meant is in that case one should check for eventual update when the TF changes. In this context, the initialization of the LUT or possible update is better to do not deep in the loop but in the beginning of the run(). Anyway, will merge this PR once the checks are passed, changes may be done later.

@shahor02 shahor02 merged commit 0a11c2c into AliceO2Group:dev Jan 15, 2021
@afurs afurs deleted the SingletonLUT_FT0 branch April 21, 2021 19:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants