-
Notifications
You must be signed in to change notification settings - Fork 446
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
fix: +1 for L1 latency and trigger class check improved #13682
Conversation
REQUEST FOR PRODUCTION RELEASES:
This will add The following labels are available |
async--pbpb- |
Hi @shahor02 , for the labels this is needed for all PbPb reco. |
Hi @lietava , could you please provide more details? Is this only for the pbpb24 or also for pp and pbpb23?
Is it ok? |
Hi @shahor02 , thanks for question. Please, read description - I updated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for explanation, will merge after CI
Error while checking build/O2/fullCI for 0de363f at 2024-11-22 09:16:
Full log here. |
HI @shahor02 , I think this went through ? |
Hi @shahor02 , I did changes. |
@shahor02 : ok I see your answer on jira - going to change |
What you can do is: leave and use these changes but leave also the old L0_L1 data member. |
To load it from the CCDB you should do the same as in the entropy decoders, i.e. add to your raw decoder
and read the input with mTrigOffsBinding="trigoffset" as in
That's all. |
@shahor02 : can you, please, if I understood you correctly ? |
@@ -89,7 +89,7 @@ int RawDataDecoder::addCTPDigit(uint32_t linkCRU, uint32_t orbit, gbtword80_t& d | |||
} | |||
} else if (linkCRU == o2::ctp::GBTLinkIDClassRec) { | |||
int32_t BCShiftCorrection = -o2::ctp::TriggerOffsetsParam::Instance().customOffset[o2::detectors::DetID::CTP]; | |||
int32_t offset = BCShiftCorrection + o2::ctp::TriggerOffsetsParam::Instance().LM_L0 + o2::ctp::TriggerOffsetsParam::Instance().L0_L1 - 1; | |||
int32_t offset = BCShiftCorrection + o2::ctp::TriggerOffsetsParam::Instance().LM_L0 + o2::ctp::TriggerOffsetsParam::Instance().L0_L1_classes - 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You have already L0_L1_classes
as 280, do you need to subtract 1?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was like that before: there was '-1' with 280 always for classes. So I keep it backward compatible.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lietava what about this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sorry, what do you mean - I commented above:
It was like that before: there was '-1' with 280 always for classes. So I keep it backward compatible.
And as L0_L1_classes is not in old database onjects - it will be 280 in that case as before (default in old TriggerOffsetParams). For new CCDB we should put also 280. Or we actually do not need new entry as with the current
L0_L1 classes is default of class and L0_L1 inputs is 281.
Or let me know if something not correct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
HI @shahor02 ,
I did validation 559672 and 559243.
Validation means that o2-ctp-reco-workflow --no-lumi --ctpinputs-decoding
gives that same digits as CTF decoder
and both are consistent wirh filling scheme.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lietava yes, you have ignored the comment above, could you please check?
if (mDecodeinputs) { | ||
const auto ctpcfg = inputs.get<o2::ctp::CTPConfiguration*>("ctpconfig"); | ||
if (ctpcfg != nullptr) { | ||
mDecoder.setCTPConfig(*ctpcfg); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be done only once in the beginning of the run processing, right? Why don't you do thin in after https://github.com/AliceO2Group/AliceO2/pull/13682/files#diff-730222aede43b6dd828e45b24b01ba97b3d88fc8c073a79837364b2fb9408b65R237 ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done, also for EntropyDecoderSpec
HI @shahor02 , I did modification for updating ctpconfig only if run changes in both ctp and ctf decoders. |
HI @shahor02 , please, let me know if I missed something or you have more comments. |
@@ -135,6 +137,11 @@ void RawDecoderSpec::run(framework::ProcessingContext& ctx) | |||
if (fatal_flag) { | |||
ret = mDecoder.decodeRawFatal(inputs, filter); | |||
} else { | |||
if (mDecodeinputs) { | |||
const auto ctpcfg = inputs.get<o2::ctp::CTPConfiguration*>("ctpconfig"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what will happen if ctpcfg will not be found ?
nullptr is returned ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fatal
@@ -89,7 +89,7 @@ int RawDataDecoder::addCTPDigit(uint32_t linkCRU, uint32_t orbit, gbtword80_t& d | |||
} | |||
} else if (linkCRU == o2::ctp::GBTLinkIDClassRec) { | |||
int32_t BCShiftCorrection = -o2::ctp::TriggerOffsetsParam::Instance().customOffset[o2::detectors::DetID::CTP]; | |||
int32_t offset = BCShiftCorrection + o2::ctp::TriggerOffsetsParam::Instance().LM_L0 + o2::ctp::TriggerOffsetsParam::Instance().L0_L1 - 1; | |||
int32_t offset = BCShiftCorrection + o2::ctp::TriggerOffsetsParam::Instance().LM_L0 + o2::ctp::TriggerOffsetsParam::Instance().L0_L1_classes - 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was like that before: there was '-1' with 280 always for classes. So I keep it backward compatible.
if (mDecodeinputs) { | ||
const auto ctpcfg = inputs.get<o2::ctp::CTPConfiguration*>("ctpconfig"); | ||
if (ctpcfg != nullptr) { | ||
mDecoder.setCTPConfig(*ctpcfg); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done, also for EntropyDecoderSpec
@@ -89,7 +89,7 @@ int RawDataDecoder::addCTPDigit(uint32_t linkCRU, uint32_t orbit, gbtword80_t& d | |||
} | |||
} else if (linkCRU == o2::ctp::GBTLinkIDClassRec) { | |||
int32_t BCShiftCorrection = -o2::ctp::TriggerOffsetsParam::Instance().customOffset[o2::detectors::DetID::CTP]; | |||
int32_t offset = BCShiftCorrection + o2::ctp::TriggerOffsetsParam::Instance().LM_L0 + o2::ctp::TriggerOffsetsParam::Instance().L0_L1 - 1; | |||
int32_t offset = BCShiftCorrection + o2::ctp::TriggerOffsetsParam::Instance().LM_L0 + o2::ctp::TriggerOffsetsParam::Instance().L0_L1_classes - 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sorry, what do you mean - I commented above:
It was like that before: there was '-1' with 280 always for classes. So I keep it backward compatible.
And as L0_L1_classes is not in old database onjects - it will be 280 in that case as before (default in old TriggerOffsetParams). For new CCDB we should put also 280. Or we actually do not need new entry as with the current
L0_L1 classes is default of class and L0_L1 inputs is 281.
Or let me know if something not correct.
@@ -89,7 +89,7 @@ int RawDataDecoder::addCTPDigit(uint32_t linkCRU, uint32_t orbit, gbtword80_t& d | |||
} | |||
} else if (linkCRU == o2::ctp::GBTLinkIDClassRec) { | |||
int32_t BCShiftCorrection = -o2::ctp::TriggerOffsetsParam::Instance().customOffset[o2::detectors::DetID::CTP]; | |||
int32_t offset = BCShiftCorrection + o2::ctp::TriggerOffsetsParam::Instance().LM_L0 + o2::ctp::TriggerOffsetsParam::Instance().L0_L1 - 1; | |||
int32_t offset = BCShiftCorrection + o2::ctp::TriggerOffsetsParam::Instance().LM_L0 + o2::ctp::TriggerOffsetsParam::Instance().L0_L1_classes - 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
HI @shahor02 ,
I did validation 559672 and 559243.
Validation means that o2-ctp-reco-workflow --no-lumi --ctpinputs-decoding
gives that same digits as CTF decoder
and both are consistent wirh filling scheme.
Would not it be now 279? |
ON te current version, i.e. like in branch dev:
This was used for classes in ctprawdecoder:
as there was no CCDB reading In CTF decoder classes are never done. There in:
281 was used in:
because CCDB was read |
I believe my new code is doing exactly the same and it also does correct ctpinputs decodong when done |
Two issues:
1.)
+1 for L1 input latency.
L1 latency for Trigger Class and Trigger input differs by 1. It is constant
2.) check if class has non zero inputs
if parallel runs then this check produce errors. Therefore class mask for trigger classes for a given run is checked only