GbbTaggerHowTo

Jet selection

  • 0.4 anti-kt jets, calibrated at EM/LC scale.
  • Jet pT > 40 GeV
  • |Jet Eta| <2.1
  • MV1 weight > 0.905363 (rel 17 60% efficiency working point)

Gbb tagger in athena

Input variable: nMatchingTracks

This variable, referred to as Jet track multiplicity in ATLAS-CONF-2012-100 is defined as the number of tracks with pT above 1 GeV, satisfying the quality cuts below, contained within a cone of radius R = 0.4 around the jet axis.

  • pTMin = 1000.,
  • d0Max = 2.0,
  • z0Max = 2.0,
  • nHitPix = 1,
  • nHitSct = 4,
  • nHitSi = 7,
  • fitChi2OnNdfMax = 3.0,

Input variable: trkJetWidth

This variable, referred to as Track-jet width in ATLAS-CONF-2012-100 , is defined as the track_pT weighted average of the ∆R distances between the tracks and the jet axis direction.

In athena, the function below is used to compute its value:

double HadFlavorTag::m_trkwidth(std::vector<const Rec::TrackParticle*> tracks,HepLorentzVector j){
  
    double trkWIDTH = -1;
    double trkWIDTH_num = 0;
    double trkWIDTH_den = 0;
    for(std::vector<const Rec::TrackParticle*>::iterator trkItr = tracks.begin(); trkItr !=tracks.end(); ++trkItr) {
    
      const Rec::TrackParticle* aTemp = *trkItr; 
      double dR =aTemp->hlv().deltaR(j);
    
      trkWIDTH_num+=aTemp->pt()*dR;
      trkWIDTH_den+=aTemp->pt(); 
    
    }
  
    if(trkWIDTH_den>0)trkWIDTH = trkWIDTH_num/trkWIDTH_den;
    return trkWIDTH;
  }

Input variable: trkJetDRKtaxes

This variable, referred to as the DeltaR between the axes of exclusive kt subjets in ATLAS-CONF-2012-100 , is obtained by applying the kt algorithm to the tracks associated to the jet using a large kt distance parameter to ensure that all tracks get combined. The clustering is stopped once it reaches exactly two jets.

In athena,

double HadFlavorTag::m_drktaxes(std::vector<const Rec::TrackParticle*> tracks){
 double DRKtAxes = -1;

  vector<fastjet::PseudoJet> seed2axes;
  const int n_jets = 2;
  vector <fastjet::PseudoJet>  inputTracks;

  //get inputTracks out of TrackParticles
  for(std::vector<const Rec::TrackParticle*>::iterator trkItr = tracks.begin(); trkItr !=tracks.end(); ++trkItr) {
    
    const Rec::TrackParticle* aTemp = *trkItr;
    double Energy  =aTemp->hlv().e();
    double Px  =aTemp->hlv().px();
    double Py  =aTemp->hlv().py();
    double Pz  =aTemp->hlv().pz();
    
    inputTracks.push_back(fastjet::PseudoJet(Px,Py,Pz,Energy/1000));

  }

  //cluster sequence
  fastjet::JetDefinition jet_def = fastjet::JetDefinition(fastjet::kt_algorithm,3.14159265/2,fastjet::E_scheme,fastjet::Best);
  fastjet::ClusterSequence jet_clust_seq(inputTracks, jet_def);
  seed2axes = jet_clust_seq.exclusive_jets(n_jets);

  if(inputTracks.size()>=2)DRKtAxes = sqrt(seed2axes[0].squared_distance(seed2axes[1]));
  

  return DRKtAxes;
  
  
}

The following fastjet classes need to be included:

#include "fastjet/PseudoJet.hh"
#include "fastjet/ClusterSequence.hh"

Use standalone version

The standalone version of the tagger comprises 2 files:

  • StandaloneGbbTaggerResponse.cpp: This is the tagger class.
  • weights.txt: This is the weights file. Do not modify this file.

In order to use this version interactively, please do:

gSystem->CompileMacro("StandaloneGbbTaggerResponse.cpp", "k");

before calling the function returning the tagger output value,

double w = GetMvaoutput(double trkJetDRKtaxes, int nMatchingTracks, double trkJetWidth, double JetPt);  // JetPt  in [GeV]

Otherwise, include the class in your C++ analysis code.

Working points

We support two working points for each pt bin:

  • 40GeV < Jet Pt < 60GeV:
    • 50% single b-jet efficiency: w > 0.704, gbb rejection 8
    • 60% single b-jet efficiency: w > 0.602, gbb rejection 5

  • 60GeV < Jet Pt < 80GeV:
    • 50% single b-jet efficiency: w > 0.8264 , gbb rejection 10
    • 60% single b-jet efficiency: w > 0.7448 , gbb rejection 7

  • 80GeV < Jet Pt < 110GeV:
    • 50% single b-jet efficiency: w > 0.908, gbb rejection 14
    • 60% single b-jet efficiency: w > 0.806 , gbb rejection 9

  • 110GeV < Jet Pt < 150GeV:
    • 50% single b-jet efficiency: w > 0.9284 , gbb rejection 19
    • 60% single b-jet efficiency: w > 0.8468, gbb rejection 12

  • 150GeV < Jet Pt < 200GeV:
    • 50% single b-jet efficiency: w > 0.9284 , gbb rejection 23
    • 60% single b-jet efficiency: w > 0.8468 , gbb rejection 14

  • 200GeV < Jet Pt < 270GeV:
    • 50% single b-jet efficiency: w > 0.9488 , gbb rejection 30
    • 60% single b-jet efficiency: w > 0.8468 , gbb rejection 16

  • 270GeV < Jet Pt < 360GeV:
    • 50% single b-jet efficiency: w > 0.9488, gbb rejection 36
    • 60% single b-jet efficiency: w > 0.8672, gbb rejection 19

  • 360GeV < Jet Pt < 480GeV:
    • 50% single b-jet efficiency: w >0.9692 , gbb rejection 41
    • 60% single b-jet efficiency: w > 0.908, gbb rejection 18

-- MariaLauraGonzalezSilva - 27-Nov-2012

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r2 - 2012-11-27 - MariaLauraGonzalezSilva
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback