Skip to content
Giordon Stark edited this page Feb 20, 2016 · 7 revisions

Table of Contents generated with DocToc

Boson Tagging v2.0

For use on xAOD jets! See this paper for more information.

Using in RootCore package (EL::Algorithm)

cmt/Makefile.RootCore include:

PACKAGE_DEP      =   ... JetSubStructureUtils ...

Header include:

#include "JetSubStructureUtils/BosonTag.h"

Inside execute() call:

// load up the w-tagger
static JetSubStructureUtils::BosonTag WTagger("medium", "smooth", "$ROOTCOREBIN/data/JetSubStructureUtils/config_13TeV_20150528_Wtagging.dat", true, true);
static JetSubStructureUtils::BosonTag ZTagger("medium", "smooth", "$ROOTCOREBIN/data/JetSubStructureUtils/config_13TeV_20150528_Ztagging.dat", true, true);

isWTagged = WTagger.result(*jet);
isZTagged = ZTagger.result(*jet);

Overriding the jet used

If your jet doesn't have any of the appropriate decorations for whatever reason, you can override the automatic lookup and retrieval by using the overloaded result() function:

isWTagged = WTagger.result(*jet, "AK10LCTRIMF5R20");
isZTagged = ZTagger.result(*jet, "AK10LCTRIMF5R20");

The string for the second argument must match one of the columns in the provided configuration file.

Initializing the Tool

The constructor takes 6 different arguments. The defaults are bolded where appropriate.

variable description values
working point see a recommendations file for the working points available veryloose, loose, medium, tight
tagger algorithm which tagger algorithm to run smooth, run1
recommendations file path to the recommendations file ...
debug enable debug output in case there are errors when trying to track down why you have more false tags true, false
verbose significant verbosity to understand what the hell the tagger is doing true, false

Tool Return Values

The tagging tool returns many different values. Negative values (less than zero) correspond to a problem with the jet or the muons. If you run into a problem, you might want to flip on m_debug or m_verbose to see the specific issue

value meaning
-5 Jet does not pass basic kinematic selections
-9 A generic problem (tool configuration, missing values or variables)

If tagging was successful, there are 4 possible non-negative values:

binary value meaning
00 0 passed no cut
01 1 pass substructure cut only
10 2 pass mass cut only
11 3 pass both cuts

The code to return the value is given by

return (passMass << 1)|(passSub << 0);

Tagger Algorithm

Smooth

The smooth tagging algorithm applies a mass window cut based on the jet pt using a first-order formula to calculate the mean mass value, and then create a window around this mean mass value for selecting jets.

float meanMassVal(0.0);
for(int i=0; i < 2; i++) meanMassVal += coefficients[i]*pow(jet.pt(), i);
bool pass = (meanMassVal - massWindow < jet.m())
            &(jet.m() < meanMassVal + massWindow);

and then will apply a cut on D2 either from below or above depending on what is configured in the recommendations file.

bool pass = (D2(jet) < d2CutVal && direction=="RIGHT")
            |(d2CutVal<D2(jet) && direction=="LEFT");

Run-1

The Run-1 tagging algorithm is only applied on CAMKT12BDRSMU100SMALLR30YCUT4 jets. The tool will return false for all other jets by default.

A mass window is applied between 69 GeV and 107 GeV.

bool pass = (69. < jet.m()/1.e3 && jet.m()/1.e3 < 107.);

It will then apply a cut on the subjets moment balance (sqrt{y}_S)

bool pass = (sqrt(YFilt(jet)) > 0.45);

Recommendations File

Two recommendations files are provided for WTagging and ZTagging. Look in JetSubStructueUtils/data to see them.