Fork me on GitHub

Opened 11 years ago

Closed 11 years ago

#194 closed Bug (fixed)

Delphes causing generated photons to disappear after given Pythia 8 output

Reported by: Hussein Abdallah Owned by:
Priority: major Milestone:
Component: Delphes code Version: Delphes 3
Keywords: Cc:

Description

Hello,

We are finding a significant discrepancy in the appearance of our generated particles (photons, in particular) before and after running our events through DelphesHepMC. The output from Pythia seems to be fine and contain the generated photons we need. However, after running said output through DelphesHepMC and analyzing the .root file created, there are no particles such that Particles_PID# == 22.

This is briefly what we're doing. The problem requires a few steps to reproduce:

1) Using Pythia 8 to generate our events. The script, background_study.cc is here (https://www.dropbox.com/s/24qxea4a9ldpa8r/background_study.cc) and it's output, background_output.dat will be generated by running the following in a properly configured Pythia 8 environment:

gmake background_study
./background_study.exe > background_study.out

In background_study.out, one can see from the hard-process listing that the H0 is indeed decaying to two generated photons.

2) Use DelphesHepMC to generate the root file.
./DelphesHepMC delphes_card_Snowmass_NoPileUp.tcl gg2Httbar.root background_output.dat

The delphes card is here: https://www.dropbox.com/s/q55aunzblvreare/delphes_card_Snowmass_NoPileUp.tcl

3) Open gg2Httbar.root in the TBrowser and observe the histogram for the Particle_PID[ ] branch. Notice that there are zero particles with PID == 22.

Alternatively, use the macro ResolutionStudy2.C here (https://www.dropbox.com/s/4lk3u4upy4n2lyx/ResolutionStudy2.C) that checks for any Particles_PID[ ] == 22. Notice that there are no such generated photons.

In root:
root [ ] TFile *file = TFile::Open("gg2Httbar.root")
root [ ] Delphes->MakeClass("DelphesReader")

Now go into the generated DelphesReader.C and DelphesReader.h files and add the following include statements: #include "TRefArray.h" and "TRef.h"

root [ ] gSystem-> Load("libDelphes")
root [ ] gSystem-> CompileMacro("DelphesReader.C","k")
root [ ] gSystem-> CompileMacro("ResolutionStudy2.C","k")
root [ ] ResolutionStudy2()

Change History (3)

comment:1 by Michele Selvaggi, 11 years ago

Hi,

in your delphes card I see your generated particles come out of a PID filter. Just to be sure, do you need that filter?

If not, could you please retry after making the following change in the card, in the TreeWriter section:

add Branch Delphes/allParticles Particle GenParticle
# add Branch StatusPid/filteredParticles Particle GenParticle

Michele

comment:2 by Hussein Abdallah, 11 years ago

Hi Michele,

Thanks for the suggestion. After trying to remove the PID filter, it ended up just letting everything from everything come through (which created other problems).

So we kept the filter, but only changed the rules of what PIDs it lets through. In /modules/StatusPIDFilter.cc in the Process() function we simply added the (...
pdgCode == 22) to the conditional at the end of that function. This allowed photons to go through and we ended up getting a reasonable matching between reconstructed and generated photons.

Thanks for your help.

comment:3 by Pavel Demin, 11 years ago

Resolution: fixed
Status: newclosed

In the detector card developed by the Snowmass group, the StatusPidFilter module is configured to filter out some of the MC truth particles.

The detector cards from the examples directory don't use the StatusPidFilter module.

Note: See TracTickets for help on using tickets.