[QEE] QEE_TrkEff_Z lines: add RawBanks and Sprucing Lines
[Shifters: please ignore].
cc: @jiuzhao, @hyin re: Z_trkeff lines.
Aiming for Coll23 Sprucing (https://gitlab.cern.ch/lhcb-dpa/project/-/issues/243).
The Hlt2 Raw Bank issue caused delays here that prevented the Coll23 Sprucing.
This adds 3 Sprucing lines, SpruceQEE_ZToMuMu_TrkEff_{trkeff_method}
for trkeff_method=[Downstream, VeloMuon, UTMuon], to access the events selected by the FULL-stream lines Hlt2QEE_TrkEff_ZToMuMu_{trkeff_method}_{probe_charge}_{decision_type}
in lines.qee.high_mass_dimuon_tracking_efficiency. [probe_charge = mup, mum] [decision_type = Tag, Match].
The Hlt2-Taglines definitions now have the raw_banks=Moore.streams_hlt2.DETECTOR_RAW_BANK_TYPES
option, to persist the raw-banks allowing construction of muon_probes at the Sprucing stage. (Raw Banks are not included by default via persistreco=True.)
A new hlt2-filtering for input to the spruce tests will be needed before the Spruce lines can be included in global running (#661 (closed)). So these new Spruce lines are included but are 'turned off', i.e. aren't included in qee's sprucing_line dictionary.
There's also some minor changes to the code for the Hlt2 lines, where there were some slightly incorrect naming and function definitions, now cleared up. This is purely a clarity change, and has no effect on the physics of the line.
More details
Each SpruceQEE_ZToMuMu_TrackEff_{trkeff_method}
line rebuilds the the Tag&Probe method, integrated over charge, with an Hlt2Filter requiring that the event passes the appropriate Tag
lines.
To do this, we require the Hlt2 output to have selectively persisted the raw banks for the different tracking subdetectors (they aren't, by default, included in Persistreco=True
). Chose to do this only on the Tag Lines as the output of the Hlt2-Tag lines are by definition a superset of the Hlt2-Match lines.
e.g., SpruceQEE_ZToMuMu_TrackEff_Downstream
selects any Z combination from [make_ismuon_long_muon, make_downstream_muons]
for either probe-charge, as long as it passes Any(Hlt2QEE_TrackEff_ZToMuMu_Downstream_mup_Tag, Hlt2QEE_TrackEff_ZToMuMu_Downstream_mum_Tag
) and the necessary kinematic cuts (Cuts replicated from the Hlt2 lines).
So in many cases, will select two different candidates of the same real underlying Z, one with (Tag, Probe)=(mu+, mu-) and another with (mu-, mu+).
This was discussed as okay for our ew-analyses trkeff evaluations due to some Hlt2Decision that allows the generation of charge-dependent trkeff evaluation.
While here, also added myself to the CodeOwners for lines.qee directory, removed @olupton and @yqiu who have left the collaboration.
ToDo:
-
Add Raw_Bank extra outputs for the Hlt2 ZTrkEff lines, see: https://mattermost.web.cern.ch/lhcb/pl/xr7xuqj7a3f4jxyizk3zfsas8w -
Investigate the strange errors even when the Sprucing lines aren't firing, but just are included in the make_lines() call. !2530 (comment 7170783) We guess this is resolved by an updated sprucing test input sample? -
Opened #661 (closed) to remind us to "Turn-On" the sprucing lines.