Fork me on GitHub

Opened 7 years ago

Last modified 7 years ago

#1293 new How to

Lepton isolation and jets

Reported by: James Owned by:
Priority: minor Milestone:
Component: Delphes code Version: Delphes 3
Keywords: Cc:

Description

Hello,

I've read various tickets and Delphes documentation, but need clarity on the following issue:

I am generating events with Madgraph+Pythia with large transverse momentum, which produce a lepton and 2x quarks which tend to be detected in similar areas of the detector (due to their large transverse momentum). Each event produces one high PT lepton, but only ~25% of events give an isolated lepton.

From #922, "if an isolated muon is also forming a jet, that particular jet is removed from the jet collection."

My question regards what happens to the remaining leptons, and how I can access their information correctly. Are they being clustered together with the hadronic jets because they are very close togther? If so, is there any way to isolate them?

Should I reduce the isolation radius in the Delphes card? What is experimental consequence of this? ie. surely the ATLAS detector (for instance) has a well defined "isolation ability", and alternating this will diverge the simulation from real data.

Thanks for your help,
James

Change History (8)

comment:1 by Michele Selvaggi, 7 years ago

My question regards what happens to the remaining leptons, and how I can access their information correctly. Are they being clustered >together with the hadronic jets because they are very close together? If so, is there any way to isolate them?

yes they will be clustered with the jet. You cannot isolate them strictly speaking, but you can extract them by looking at the jet constituents.
Have a look a examples/Example3.C. Leptons are tracks there, so by checking their pdg code you can access them.

Should I reduce the isolation radius in the Delphes card? What is experimental consequence of this? ie. surely the ATLAS detector (for > instance) has a well defined "isolation ability", and alternating this will diverge the simulation from real data.

Isolation working point are analysis dependent. What is given in Delphes is the representative value for an "average" analysis. If you relax the isolation too much you will increase the background contibution from non-isolated leptons coming from HF decays for instance. But you should be able to reproduce this effect with Delphes by also simulating relevant backgrounds.

comment:2 by James, 7 years ago

Thank you. To confirm, the following is a valid approach:

  1. Use the Electron/Muon branches to find well isolated leptons.
  2. For events with no entries in these branches, look in the jet constituents and compare vs. tracks.

However, in my ROOT file, the 'jet constituents' has no data. Likewise for 'jet particles'. So how can I do point 2.?

Thanks,
James

comment:3 by Michele Selvaggi, 7 years ago

You have to make sure that the branches containing jet contituents are present in the ROOT file (ie Particle for GenJets and PFtrack/Towers for reconstructed jets) AND that you initialize them in the analysis macro, as done in Example3, even if you do not loop through them explicitely.

This said it could be that you do not have the relevant branches in the output file and in that case you have to include them in the TreeWriter section of the card.

in reply to:  3 comment:4 by James, 7 years ago

I can't find any information on what to add in the TreeWriter section of the card in order to include jet constituents. Could you help me with this?

Currently, the following branches are declared:

add Branch Delphes/allParticles Particle GenParticle

add Branch TrackMerger/tracks Track Track
add Branch Calorimeter/towers Tower Tower

add Branch HCal/eflowTracks EFlowTrack Track
add Branch ECal/eflowPhotons EFlowPhoton Tower
add Branch HCal/eflowNeutralHadrons EFlowNeutralHadron Tower

add Branch GenJetFinder/jets GenJet Jet
add Branch GenMissingET/momentum GenMissingET MissingET

add Branch UniqueObjectFinder/jets Jet Jet
add Branch UniqueObjectFinder/electrons Electron Electron
add Branch UniqueObjectFinder/photons Photon Photon
add Branch UniqueObjectFinder/muons Muon Muon
add Branch MissingET/momentum MissingET MissingET
add Branch ScalarHT/energy ScalarHT ScalarHT

comment:5 by Michele Selvaggi, 7 years ago

You already seem to have the right collections. What happens if you run Example3.C on your Delphes tree?
If that works you simply have to modify the loop over contituents part of the code:

https://github.com/delphes/delphes/blob/master/examples/Example3.C#L174-L199

comment:6 by James, 7 years ago

Example3.C works with my ROOT file, but when I loop through the tracks in the jet constituents I find barely any electrons or muons, whereas over half of events should have leptons in the jets. Surely I am doing something wrong?

double PT = 0;
else if(object->IsA() == Track::Class())

track = (Track*) object;
if(abs(track->PID == 11) or abs(track->PID == 13)) {

if(track->PT > PT) { to find the highest PT lepton

PT = track->PT;

}

}

}

comment:7 by Michele Selvaggi, 7 years ago

I don't know if that's the cause but there is a syntax error in your requirement on the PID, do this instead:

if(abs(track->PID) == 11 || abs(track->PID) == 13) {

in reply to:  7 comment:8 by James, 7 years ago


if(abs(track->PID) == 11 || abs(track->PID) == 13) {

Yes, I use this syntax.

I can't work out any reason why the tracks would have very few electrons or muons - they pretty much have only pions or kaons.

Note: See TracTickets for help on using tickets.