CPAlgorithms: small improvements to Event Selection
Use ROOT::Math::PtEtaPhiEVector
instead of TLorentzVector
(legacy) in a couple of algorithms, and explicitly cast selections to char
so that they can be properly printed to file if requested (in the debugging mode)
Merge request reports
Activity
CI Result FAILURE (hash 41923532)Athena AnalysisBase AthAnalysis externals cmake make tests Full details available on this CI monitor view. Check the JIRA CI status board for known problems
Athena: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 0, warnings 0
AthAnalysis: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-EL9 9348] (remote access info)- Resolved by Baptiste Ravina
Hi @krumnack maybe I'm missing something obvious here... What this EventSelection business is doing, is chaining together a number of very simple algorithms (e.g. count the number of jets and compare to some threshold). Each algorithm writes its decision onto the EventInfo via a
CP::SysWriteSelectionHandle
. The next algorithm in the chain then looks it up viaCP::SysReadSelectionHandle
. This is all completely fine.Now, I have this
debugMode
option, which if True will save every single selection decision as a branch in the output ntuple. This is essentially a per-event cutflow. What I find is that these branches are currently broken (they all contain the same value, some very large int), and the fix is to append,as_char
to the name of theCP::SysWriteSelectionHandle
. This works, as long as there is no further algorithm in the chain. That's what the CI test (only in Athena...) complains about:Failure to parse expression: 'SUBcommon_NBJET_1_NOSYS': SG::ExcAuxTypeMismatch: Type mismatch for aux variable `::SUBcommon_NBJET_1_NOSYS' (305); old type is char new type is unsigned int
This comes from the second algorithm in the chain trying to read the decision from the previous one, but now that decision has
,as_char
in it. I can't seem to find a way to get around it.The only alternative I see at the moment, is to rewrite all these algorithms to have two outputs, one
CP::SysWriteSelectionHandle
and oneCP::SysWriteDecorHandle
, and only use the latter to create output branches. Do you have a better suggestion?
added review-user-action-required label and removed review-pending-level-1 label
added review-pending-level-1 label and removed review-user-action-required label
CI Result SUCCESS (hash cb57005a)Athena AnalysisBase AthAnalysis externals cmake make tests Full details available on this CI monitor view. Check the JIRA CI status board for known problems
Athena: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 0, warnings 0
AthAnalysis: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-EL9 9549] (remote access info)added analysis-review-approved label and removed analysis-review-required label
removed review-pending-level-1 label
added review-approved label
mentioned in commit 9edc4d43
mentioned in merge request !71447 (merged)