Snowmass tight and loose b-tagging

Asked by Adarsh Pyarelal

Hi,

I generated a process in MadGraph 5 and ran Pythia followed by Delphes with the Snowmass NoPileUp detector card from here:

http://atlaswww1.hep.anl.gov/asc/snowmass2013/delphes36/packages/delphes_card_Snowmass_NoPileUp_updateMay8_fixed.tcl

In this card, there are two definitions of b-tagging, tight and loose. On their website (http://www.snowmass2013.org/tiki-index.php?%20page=Energy_Frontier_FastSimulation), they provide the code to access the tight and loose b-tags,

***

if( jet->BTag & (1 << 0) ) { # passes standard b-tagging }
   if( jet->BTag & (1 << 1) ) { # passes loose b-tagging }

***

In the regular mode of running MadAnalysis, I don't think there is a way to discriminate between tight and loose b-tagged jets. If a non-Madanalysis macro is written to count the number of b-tagged jets using only the first line of the code:

    if( jet->BTag & (1 << 0) ) { # passes standard b-tagging }

then we recover the same number of b-tagged jets as we would by typing in the regular mode of MadAnalysis: "select N(b) = 1".

Could you please tell me if there is a way of accessing the tight and loose b-tagged jets separately? I have some experience with the expert mode so I can work in that mode as well.

On a separate note, upon examining the ROOT file produced by Delphes, it seems that there are four possible values for the b-tag: 0, 1, 2, and 3. I am guessing 0 corresponds to no b-tag, 1 corresponds to a tight b-tag, 2 corresponds to a loose b-tag, but I don't know what a b-tag value of 3 signifies. Does anyone know what it means?

Thanks!
-Adarsh

Question information

Language:
English Edit question
Status:
Solved
For:
MadAnalysis 5 Edit question
Assignee:
No assignee Edit question
Solved by:
Adarsh Pyarelal
Solved:
Last query:
Last reply:
Revision history for this message
Benjamin Fuks (fuks) said :
#1

Hi Adarsh,

This feature of delphes is not supported at all in MadAnalysis 5. In the expert mode, it is however possible to implement it easily (if you have some knowledge in c++).
 - you should modify the btag property attached to the jets (tools/SampleAnalyzer/DataFormat/RecJetFormat.h)
 - you must modify the Delphes reader (tools/SampleAnalyzer/Reader/DelphesReader.*)

Hope this helps.

Cheers,

Benjamin

Revision history for this message
Adarsh Pyarelal (adarsh-pyarelal) said :
#2

Okay, I will try this. Thank you!

Revision history for this message
Adarsh Pyarelal (adarsh-pyarelal) said :
#3

I added the following line to the protected members section of tools/SampleAnalyzer/DataFormat/RecJetFormat.h

UInt_t snowmass_btag_;

and these lines:

/// Accessor to the Snowmass b-tag
    const UInt_t& snowmass_btag() const
    {return snowmass_btag_;}

in the public section

and the following line

jet->snowmass_btag_ = part->BTag;

just after line 285 of tools/SampleAnalyzer/Reader/DelphesTreeReader.cpp

and in my user.cpp file I put the following lines:

if (event.rec()->jets()[i].snowmass_btag() & (1 << 0)) _P_bPTorderingfinalstate.push_back(&(event.rec()->jets()[i]));

In case anyone else was trying to do the same thing!

Revision history for this message
Adarsh Pyarelal (adarsh-pyarelal) said :
#4

Oh and I had to delete the old library and rebuild/recompile MadAnalysis after making these changes..