-
Notifications
You must be signed in to change notification settings - Fork 5
BosonTag
Table of Contents generated with DocToc
For use on xAOD jets! See this paper for more information.
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);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.
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 |
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);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");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);Two recommendations files are provided for WTagging and ZTagging. Look in JetSubStructueUtils/data to see them.