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 , 11 years ago
comment:2 by , 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).
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 , 11 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
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.
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