CPAlgorithms: add new algorithm to run KLFitter reconstruction
This MR migrates the algorithms related to event reconstruction with the KLFitter technique from TopCPToolkit. The code lives in a new package, KLFitterAnalysisAlgorithms
, and a new namespace, EventReco::
.
The outputs have been validated, but the following remains to be done before the MR can be undrafted:
-
add toComponentPreloader
-
get rid ofTokenize.h
and useboost
or pythonic string manipulation instead -
useGaudi::Property
in the algorithm implementation -
set up the tools from the python interface -
update the config block options -
clean up comments
Users can run a number of reconstruction scenarios involving top quarks and weak bosons. The structure allows for more topologies to be implemented.
Example YAML config:
KLFitter:
- containerName: 'KLFitterResult'
electrons: 'AnaElectrons.tight'
muons: 'AnaMuons.tight'
jets: 'AnaJets.baselineJvt'
met: 'AnaMET'
likelihoodType: 'ttbar'
jetSelectionMode: 'kBtagPriorityFourJets'
btaggingMethod: 'kVetoBoth'
btagger: 'GN2v01'
btagWP: 'FixedCutBEff_77'
selectionRegionsConfig: 'selectionName:pass_ejets, leptonType: kElectron;selectionName:pass_mujets, leptonType: kMuon
Note that this creates a new container holding the results of the kinematic likelihood fit. It needs to be added to the ntupling step with e.g.:
Output:
containers:
klfitter_: 'KLFitterResult'
Edited by Baptiste Ravina