Call Allen from Moore
Adds functionality to call Allen from Moore, one event at a time. The conditions and geometry information are passed to Allen through the AllenUpdater. Raw banks are dumped to the TES in the format expected by Allen. Output from Allen is saved in the HostBuffers struct, which is also written to the TES. Then various converters convert Allen objects to baseline LHCb objects, such as tracks and vertices. These are then used for physics checks.
The following checks are possible on all tracks of all events:
- Track efficiency (PrChecker) and PV efficiency & resolution check (PrimaryVertexChecker), using
Hlt/RecoConf/options/hlt1_reco_baseline_and_Allen_with_mcchecking.py
- Track resolution (TrackResChecker), using
Hlt/RecoConf/python/RecoConf/options/hlt1_reco_allen_trackresolution.py
- IP resolution (TrackIPResolutionCheckerNT), using
Hlt/RecoConf/options/hlt1_reco_allen_IPresolution.py
- Muon ID efficiency, using
Hlt/RecoConf/options/hlt1_reco_allen_muonid_efficiency.py
- PV efficiency & resolution will be added with !501 (closed)
Allen can also be called as a trigger. Similar to the run_moore
call, run_allen
is added for this purpose. The Allen updater is configured in run_allen
or run_allen_reconstruction
. Similarly, the HltANNSvc is configured in run_allen
based on the line names stored in the Allen configuration file, created at Allen build time. Hlt/Hlt1Conf/options/allen_hlt1_pp_default.py
is the options script to call the Allen trigger, which will run the full HLT1 including selections and return the HostBuffers content as well as the DecReports to TES.
Allen HLT1 trigger rates are printed in the form of counters like so:
RunAllen SUCCESS Number of counters : 22
| Counter | # | sum | mean/eff^* | rms/err^* | min | max |
|*"Selected by Hlt1BeamOneDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1BeamTwoDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1BothBeamsDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1D2KKDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1D2KPiDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1D2PiPiDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1DiMuonHighMassDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1DiMuonLowMassDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1DiMuonSoftDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1ErrorEventDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1GECPassthroughDecision" | 10 | 9 |( 90.00000 +- 9.486833)% |
|*"Selected by Hlt1LowPtDiMuonDecision" | 10 | 1 |( 10.00000 +- 9.486833)% |
|*"Selected by Hlt1LowPtMuonDecision" | 10 | 1 |( 10.00000 +- 9.486833)% |
|*"Selected by Hlt1NoBeamsDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1ODINLumiDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1ODINNoBiasDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1PassThroughDecision" | 10 | 10 |( 100.0000 +- 0.000000)% |
|*"Selected by Hlt1SingleHighPtMuonDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1TrackMVADecision" | 10 | 1 |( 10.00000 +- 9.486833)% |
|*"Selected by Hlt1TrackMuonMVADecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1TwoTrackMVADecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
|*"Selected by Hlt1VeloMicroBiasDecision" | 10 | 0 |( 0.000000 +- 0.000000)% |
Two tests are added with this MR: One for writing the Allen DecReports to an MDF file, the second to compare the DecReports from the MDF file with the counters in the log file of the test producing the MDF file.
Depends on Allen!281 (merged), Rec!1897 (merged), Allen!385 (merged), Allen!382 (merged), Allen!402 (merged), LHCb!2649 (merged), Online!388 (merged), Allen!418 (merged),
requires !574 (merged) for ref. updates.