b-jet

class BJetEfficiencyCorrector : public xAH::Algorithm

Public Functions

BJetEfficiencyCorrector()
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()
EL::StatusCode executeEfficiencyCorrection(const xAOD::JetContainer *inJets, const xAOD::EventInfo *eventInfo, bool doNominal)
virtual EL::StatusCode postExecute()
virtual EL::StatusCode finalize()
virtual EL::StatusCode histFinalize()
unsigned int getMCIndex(int dsid)
void makeMCIndexMap(std::string effCalib)
std::string getFlavorLabel(const xAOD::Jet &jet) const

Public Members

std::string m_inContainerName = ""
std::string m_inputAlgo = ""

The name of the vector containing the names of the systematically-varied jet-related containers from the upstream algorithm, which will be processed by this algorithm.

Only jet calibration systematics or any other that create shallow copies of jet containers should be passed to this tool. It is advised to run this algorithm before running algorithms combining multiple calibration systematics (e.g. overlap removal).

std::string m_systName = ""
std::string m_outputSystName = "BJetEfficiency_Algo"
bool m_writeSystToMetadata = false
std::string m_corrFileName = "xAODBTaggingEfficiency/13p6TeV/2023-22-13p6TeV-MC21-CDI_Test_2023-08-1_v1.root"
std::string m_jetAuthor = "AntiKt4EMPFlowJets"
float m_minPt = 20e3

Minimum pT in MeV for taggable jets.

std::string m_taggerName = "DL1r"
bool m_useDevelopmentFile = true
bool m_coneFlavourLabel = true
std::string m_systematicsStrategy = "SFEigen"
bool m_errorOnTagWeightFailure = true

BTaggingSelectionTool throws an error on missing tagging weights. If false, a warning is given instead.

bool m_alwaysGetTagWeight = false

Decorate tag weights even if we’re not doing pseudocontinuous b-tagging.

std::string m_operatingPt = "FixedCutBEff_70"

Operating point.

std::string m_operatingPtCDI = ""

Operating point that CDI will understand.

bool m_getScaleFactors = false

will only get scale factors for calibrated working points

bool m_useContinuous = false

will get tagWeight, quantile, SF and InefficiencySF

std::string m_decor = "BTag"

The decoration key written to passing objects.

bool m_tagDecisionOnly = false

Only apply b-tag decision decoration; don’t retrieve scale factors (Not recommended. For expert use.)

bool m_setMapIndex = false

Select an efficiency map for use in MC/MC and inefficiency scale factors, based on user specified selection of efficiency maps.

std::string m_DSIDtoGenerator_filename = "xAODAnaHelpers/DSIDtoGenerator.txt"
float m_orBJetPtUpperThres = -1

upper pt threshold of b-jet in OR in unit of GeV, negative value means no pt threshold

std::string m_EfficiencyCalibration = ""

Calibration to use for MC (EfficiencyB/C/T/LightCalibrations), “auto” to determine from sample name (multiple samples can be provided as long as they are separated by ‘;’)

Example: “410470;410250;410558;410464” (Pythia8,Sherpa22,Herwig7,MG)

std::string m_EigenvectorReductionB = "Loose"

To change NP scheme for b-tagging systematics - Loose is the default value in athena.

std::string m_EigenvectorReductionC = "Loose"
std::string m_EigenvectorReductionLight = "Loose"

Private Members

std::string m_decorSF = ""

The decoration key written to passing objects.

std::string m_decorWeight = ""
std::string m_decorQuantile = ""
std::string m_decorInefficiencySF = ""
std::map<int, std::string> m_DSIDtoGenerator
std::map<std::string, unsigned int> m_MCIndexes
std::vector<std::string> m_inputAlgoList
bool m_runAllSyst = false
asg::AnaToolHandle<IBTaggingSelectionTool> m_BJetSelectTool_handle = {"BTaggingSelectionTool", this}
asg::AnaToolHandle<IBTaggingEfficiencyTool> m_BJetEffSFTool_handle = {"BTaggingEfficiencyTool", this}
std::vector<CP::SystematicSet> m_systList