A class to select jets. More...
#include <JetSelector.h>
Public Member Functions | |
JetSelector () | |
Default ctor. | |
JetSelector & | setSystematic (const NtSys::SusyNtSys &) |
dtor (for now we don't have anything to delete) | |
virtual bool | isB (const Jet *jet) |
whether the jet is b-tagged | |
virtual bool | isCentralLight (const Jet *jet) |
virtual bool | isCentralB (const Jet *jet) |
virtual bool | isForward (const Jet *jet) |
virtual bool | passJvt (const Jet *jet) |
The jet-vertex-fraction requirement: usually applied to low-pt central jets. | |
virtual bool | isBaseline (const Jet *jet) |
often analsysi-dependent | |
virtual bool | isSignal (const Jet *jet) |
often analsysi-dependent | |
bool | verbose () const |
JetSelector & | setVerbose (bool v) |
virtual size_t | count_CL_jets (const JetVector &jets) |
count central light jets | |
virtual size_t | count_CB_jets (const JetVector &jets) |
count central b-tagged jets | |
virtual size_t | count_F_jets (const JetVector &jets) |
count forward jets | |
Static Public Member Functions | |
static JetSelector * | build (const AnalysisType &a, bool verbose) |
provide analysis-specific selector (or vanilla one if analysis is unknown) | |
static float | mv2c20_70efficiency () |
threshold for 70% efficiency | |
static float | mv2c20_77efficiency () |
threshold for 77% efficiency | |
static float | mv2c20_80efficiency () |
threshold for 80% efficiency | |
static float | overlapRemovalBtagEffWP () |
b-tag operating point used for the overlap removal. |
A class to select jets.
The generic JetSelector implements the generic definitions from https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/SusyObjectDefinitionsr2013TeV#Jets
Analysis-dependent criteria should be implemented in your analysis-specific class inheriting from JetSelector.
The analysis-specific selector should be instantiated with JetSelector::build().
Please avoid having thresholds as input parameters of the selection functions (including default arguments). Prefer explicit values in the function definition, for example:
{.cpp} JetSelector_myAnalysis::isSignalJet(const Jet* jet) { return (jet->Pt>20.0 && fabs(jet->Eta())<2.4); }
This design has the following advantages:
1. the default code does not have many 'if else' implementing the analysis-specific selection
2. the common code can still be shared across groups
3. the analysis-specific thresholds are explicitly written in the analysis-specific implementation of the overloaded function. This allows to almost copy-and-paste the recommendation from the analysis wiki.
See test_JetSelector.cxx for an example of how this class can be used
Note to self: design choices tested in https://gist.github.com/gerbaudo/7854402
Note to self: since we usually store Jet* in vectors, all the is___() functions take a Jet* as input.
make the is__() functions const
convert the const Jet* argument to const Jet& (and skip all the if(jet) checks)
davide.gerbaudo@gmail.com, Aug 2014
JetSelector * Susy::JetSelector::build | ( | const AnalysisType & | a, |
bool | verbose | ||
) | [static] |
provide analysis-specific selector (or vanilla one if analysis is unknown)
The user owns the selector (i.e. should use std::shared_ptr or delete it when done with it).
size_t Susy::JetSelector::count_CB_jets | ( | const JetVector & | jets | ) | [virtual] |
count central b-tagged jets
size_t Susy::JetSelector::count_CL_jets | ( | const JetVector & | jets | ) | [virtual] |
count central light jets
size_t Susy::JetSelector::count_F_jets | ( | const JetVector & | jets | ) | [virtual] |
count forward jets
static float Susy::JetSelector::mv2c20_70efficiency | ( | ) | [inline, static] |
threshold for 70% efficiency
b-tag operating points for AntiKt4EMTopoJets with MV2c20. See https://twiki.cern.ch/twiki/bin/view/AtlasProtected/BTaggingBenchmarks#MV2c20_tagger_AntiKt4EMTopoJets
static float Susy::JetSelector::overlapRemovalBtagEffWP | ( | ) | [inline, static] |
b-tag operating point used for the overlap removal.
See https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/SusyObjectDefinitionsr2013TeV#b_tagging
JetSelector & Susy::JetSelector::setSystematic | ( | const NtSys::SusyNtSys & | s | ) |
dtor (for now we don't have anything to delete)
set syst (needed for example for jvt)