PrChecker functional
Major refactoring of the PrChecker to make it fully functional and thread safe. Current state is the following :
- PrChecker2 has been dropped, replaced with a new PrChecker
- the new PrChecker only deals with one type of tracks
- so the configuration of the different types to be checked has moved to configuration
- and this includes in particular the cuts to be applied
- new Prchecker is functional
- thread safety has not yet been tested
This merge request does not change the physics output but does change the ref files, as indentation and checker names have changed. I did check (using RegexpReplacer in LHCbExclusions.py) that everything is consistent. For the record, here is what I added to it :
RegexpReplacer(
orig=r'^VeloPrChecker.Velo *',
repl=r'SomePrChecker ') +
RegexpReplacer(
orig=r'^PrChecker[^ ]* *',
repl=r'SomePrChecker ') +
RegexpReplacer(
orig=r' *',
repl=r' ') +
RegexpReplacer(
orig=r'^[^ ]*MCCheck *',
repl=r'SomePrChecker ') +
RegexpReplacer(
orig=r'^[^ ]*MC\.\.\. INFO',
repl=r'SomePrChecker INFO') +
For practical purposes, I've added these lines to BrunelExclusion in Brunel!710 (closed) so that it's easier to validate the changes.
Merge request reports
Activity
mentioned in merge request Brunel!691 (merged)
I understand correctly that the syntax for handling the PrChecker cuts and histograms in options scripts will change, right? So for example the nightly histograms script will have to be updated: https://gitlab.cern.ch/lhcb-datapkg/PRConfig/blob/master/options/Brunel/MiniBrunel/PrCheckerEfficiencyPlots.py
Yes indeed. I did modify all usages in lhcb repos, but did not expect it to be used in data-pkg. There was supposed to be a single place where the checkers were defined (now 2 with the new configuration of course) and this was in PrUpgradeChecking.py in the Rec project.
Do we have any clue why this is not using PrUpgradeChecking ? I see the set of cuts is not the same (or at least not named the same), any good reason ?
The reason why the cuts are not the same is that we want to check the velo track effiency also outside of the 2 < eta < 5 cut. In particular backward tracks are not included with this cut.
Another reason is that the handler in PrConfig creating the efficiency histograms depends on the naming scheme to find the correct histograms (matched tracks and total reconstructible tracks). By providing the options script with these specifics names I ensure that the histograms will be found.
We can think about changing the latter part. For example adding the cuts that are not yet included in PrUpgradeChecking.py and then use that script when creating the efficiency histograms (and adopting the names in the handler accordingly).
- Resolved by Marco Cattaneo
added 1 commit
- 38b6b12d - Fixed PrKernelDict.xml after removal of IPrCounter
added 1 commit
- cd9e7952 - Fixed handling of double eta25 entries in PrChecker cuts and title size of TTCounters
added 1 commit
- 76027953 - Fixed handling of double eta25 entries in PrChecker cuts and title size of TTCounters
@dovombru PRConfig!75 converts the options files. There were 2 actually (also PrCheckerEfficiencyPlots_HLT2.py).
Now, I've translated the code as it should be. But that "fixes bugs" and thus the output is now different. What I call "bugs" here (and it would be nice you can confirm they are not features) are extra cuts and extra checkers that were/were not running although you did not ask for/suppress them. They were there because the existing checkers were only half overwritten and thus still half used.
For example, in PrCheckerEfficiencyPlots ouput :
- cuts starting with numbers in the Velo, Forward and UpStream output disappeared
- the dedicated VeloPrChecker is not there anymore
- lines in TT efficiencies were duplicated, adding a version with extra ">3TT" for each one
Basic idea is that now the output is clean and corresponds to the config file. Just tell me whether it is ok or whether some things need to be put back as they were (maybe the extra VeloChecker ?)
Thanks for the pointer to the second script. FYI @mengzhen this script is being adopted to the refactoring of the PrChecker.
Concerning the features: I only care about the histograms being created with the specific categories I define in PrCheckerEfficiencyPlots.py. If by "cuts starting with numbers" you refer to the name, I do not care. I believe these appear in the default categories? Similarly for the text output: it is not relevant for creating the efficiency histograms.
What do you mean by the extra VeloChecker? The many categories @rquaglia added including electrons and the region outside 2 < eta < 5? I believe we should be able to run this checker still.
@sponce, this will run in
lhcb-tdr-test
, but presumably many Brunel tests will fail due to the changes described in yourRegexpReplacer
s above. Could you please make also a MR to Brunel, adding the above toRec/Brunel/python/Brunel/QMTest/BrunelExclusions.py
, so we can spot any real diffs?mentioned in merge request Brunel!710 (closed)