Class JetSelector

Inheritance Relationships

Base Type

Class Documentation

class JetSelector : public xAH::Algorithm

Public Functions

JetSelector()
virtual EL::StatusCode setupJob(EL::Job &job)
virtual EL::StatusCode fileExecute()
virtual EL::StatusCode histInitialize()
virtual EL::StatusCode changeInput(bool firstFile)
virtual EL::StatusCode initialize()
virtual EL::StatusCode execute()
virtual EL::StatusCode postExecute()
virtual EL::StatusCode finalize()
virtual EL::StatusCode histFinalize()
virtual bool executeSelection(const xAOD::JetContainer *inJets, float mcEvtWeight, bool count, std::string outContainerName, bool isNominal)
virtual int PassCuts(const xAOD::Jet *jet)

Public Members

bool m_useCutFlow = true
std::string m_inContainerName = ""

input container name

std::string m_outContainerName = ""

output container name

std::string m_truthJetContainer = "AntiKt4TruthJets"

truth jet container name (used for JVT SF)

std::string m_inputAlgo = ""

input type - from xAOD or from xAODAnaHelper Algo output

std::string m_outputAlgo = ""

output type - this is how the vector<string> w/ syst names will be saved in TStore

bool m_writeSystToMetadata = false

Write systematics names to metadata.

std::string m_jetScaleType = ""

Type of Scale Momementum.

std::string m_decor = "passSel"

The decoration key written to passing objects.

bool m_decorateSelectedObjects = true

decorate selected objects? defaul passSel

bool m_createSelectedContainer = false

fill using SG::VIEW_ELEMENTS to be light weight

int m_nToProcess = -1

look at n objects

bool m_cleanJets = true

require cleanJet decoration to not be set and false

int m_cleanEvtLeadJets = -1

kill event if any of the N leading jets are not clean

bool m_cleanEvent = false

Kill event if any passing jets are not clean.

Note

The jets need the cleanJet decoration which is set when you enable JetCalibrator::m_doCleaning

bool m_markCleanEvent = false

Mark event with decorator if any passing jets are not clean.

std::string m_jetScale4Selection = "Final"

Choose the scale at which the selection is performed (default “Final”, i.e. default 4vector)

bool m_doMCCleaning = false

(MC-only) Kill pileup overlay event if reconstructed jets avg(pT1,pT2) > 1.4*(truth jet pT1)

float m_mcCleaningCut = 1.4

Change the default 1.4 cut to x > 1.0.

int m_pass_min = -1

minimum number of objects passing cuts

int m_pass_max = -1

maximum number of objects passing cuts

float m_pT_max = 1e8

require pT < pt_max

float m_pT_min = 1e8

require pT > pt_min

float m_ET_max = 1e8

require ET < ET_max

float m_ET_min = 1e8

require ET > ET_min

float m_eta_max = 1e8

require eta < eta_max

float m_eta_min = 1e8

require eta > eta_min

float m_detEta_max = 1e8

require detEta < detEta_max

float m_detEta_min = 1e8

require detEta > detEta_min

float m_mass_max = 1e8

require mass < mass_max

float m_mass_min = 1e8

require mass > mass_min

float m_rapidity_max = 1e8

require rapidity < rapidity_max

float m_rapidity_min = 1e8

require rapidity > rapidity_min

int m_truthLabel = -1

require truth level on truth jets

bool m_useHadronConeExcl = true

use HadronConeExclTruthLabelID for truth match (default)

bool m_doJVF = false

check JVF

float m_pt_max_JVF = 50e3

max pT [GeV] (JVF is a pileup cut)

float m_eta_max_JVF = 2.4

detector eta cut

float m_JVFCut = 0.5

cut value

bool m_doJVT = false

check JVT

bool m_noJVTVeto = false

keep JVT-rejected jets and decorate passing status

bool m_dofJVT = false

check forward JVT

bool m_dofJVTVeto = true

Remove jets that fail fJVT. Like JVT, the default is to clean the collection.

float m_pt_max_JVT = 60e3

max pT [GeV] (JVT is a pileup cut)

float m_eta_max_JVT = 2.4

detector eta cut

bool m_jvtUsedBefore = false

was JVT already run in an earlier instance of JetSelector?

bool m_haveTruthJets = true

Does the input have truth jets? If not, cannot decorate with true hard scatter / pileup info.

bool m_getJVTSF = true

Retrieve JVT SFs (true by default, when false: allows to get JVT decision w/o needing truth jets)

float m_JVTCut = -1.0

Minimum value of JVT for selecting jets.

Warning

If set to a non-negative value (default is -1.0), it will override any set value for JetSelector::m_WorkingPointJVT

std::string m_WorkingPointJVT = "FixedEffPt"

Available working points for JVT cut from the CP::IJetJvtEfficiency tool.

The corresponding data/MC SF will be saved as a std::vector<float> decoration (for MC only), for nominal WP and the available systematics.

Value

JVT Cut

Efficiency

”Medium”

(Default) 0.59

92%

”Loose”

0.11

97%

”Tight”

0.91

85%

std::string m_SFFileJVT = "DummySFs.root"

Configuration containting JVT scale factors.

The configuration file with the scale factors calculated by the CP::IJetJvtEfficiency.

See :https://twiki.cern.ch/twiki/bin/view/AtlasProtected/JVTCalibration for latest recommendation.

std::string m_outputSystNamesJVT = "JetJvtEfficiency_JVTSyst"
int m_JvtTaggingAlg = CP::JvtTagger::NNJvt

Tagging algorithm to be used to veto PU jets in central region - default in R22 is NNJvt. If another algorithm is needed, use corresponding index for the enum here: https://acode-browser1.usatlas.bnl.gov/lxr/source/athena/PhysicsAnalysis/Interfaces/JetAnalysisInterfaces/JetAnalysisInterfaces/IJetJvtEfficiency.h#0022 (note: this link points to the latest r22 version, i.e. master, if a release is used, please check the corresponding enum for the given release: https://gitlab.cern.ch/atlas/athena/-/tags?search=release%2F22.2&sort=updated_desc)

bool m_recalculateJvtScores = true

Do re-calculation of NNJvt - scores need to be re-evaluated in case jet pt changed w.r.t. derivation.

float m_systValJVT = 0.0
std::string m_systNameJVT = ""
std::string m_WorkingPointfJVT = "Loose"

Available working points for fJVT cut from the CP::IJetJvtEfficiency tool.

The corresponding data/MC SF will be saved as a std::vector<float> decoration (for MC only), for nominal WP and the available systematics.

Value

HS Efficiency

PU Fake Rate

”Medium”

87.1-97.0%

53.4-60.9%

”Tight”

79.9-95.6%

45.4-50.3%

See :https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/FJVTCalibration for more information.

std::string m_SFFilefJVT = ""

Configuration containting fJVT scale factors.

The configuration file with the scale factors calculated by the CP::IJetJvtEfficiency.

See :https://twiki.cern.ch/twiki/bin/view/AtlasProtected/FJVTCalibration for latest recommendation.

std::string m_outputSystNamesfJVT = "JetJvtEfficiency_fJVTSyst"
float m_systValfJVT = 0.0
std::string m_systNamefJVT = ""
bool m_fjvtUsedBefore = false

was fJVT already run in an earlier instance of JetSelector?

bool m_doJetTimingCut = false

Timing cut.

float m_jetTiming_max = -1
bool m_doBTagCut = false

Flag to apply btagging cut, if false just decorate decisions.

std::string m_corrFileName = "xAODBTaggingEfficiency/cutprofiles_22072015.root"
std::string m_jetAuthor = "AntiKt4EMPFlowJets"
std::string m_taggerName = "DL1r"
std::string m_operatingPt = "FixedCutBEff_70"
double m_b_eta_max = 2.5
double m_b_pt_min = 20e3
bool m_doHLTBTagCut = false
std::string m_HLTBTagTaggerName = "DL1r"
float m_HLTBTagCutValue = -0.4434
bool m_requireHLTVtx = false
bool m_requireNoHLTVtx = false
std::string m_passAuxDecorKeys = ""
std::string m_failAuxDecorKeys = ""
std::string m_singleJetTrigChains = ""

A comma-separated string w/ alll the HLT single jet trigger chains for which you want to perform the matching. If left empty (as it is by default), no trigger matching will be attempted at all

std::string m_diJetTrigChains = ""

A comma-separated string w/ all the HLT dijet trigger chains for which you want to perform the matching. If left empty (as it is by default), no trigger matching will be attempted at all

bool m_removeDuplicates = false

remove duplicate jets (exactly the same eta)

int m_count_events_with_duplicates = 0

number of events with duplicates

bool m_sort = false

sort jets (normally done by JetCalibrator, but HLT jets need sorting and don’t get calibrated here)