Opened 9 years ago
Last modified 9 years ago
#855 new How to
How to make a long lived stau look like a muon ?
Reported by: | Shankha Banerjee | Owned by: | |
---|---|---|---|
Priority: | critical | Milestone: | |
Component: | Delphes code | Version: | Delphes 3 |
Keywords: | Cc: |
Description
Dear Experts,
This is in continuation of a previous thread : https://cp3.irmp.ucl.ac.be/projects/delphes/ticket/842
Say I have a long lived stau (stable for detector lengths) with PDG code 1000015 and I say that it will fake a muon if its \beta (p/E) is > 0.95 say.
Is there an easy way to include it in the Delphes code.
Also should I have this line in the .tcl card :
# For long lived stau
add EnergyFraction {1000015} {0.0 0.0}
in the module Calorimeter Calorimeter { } ?
I will be very grateful if you can help me with these.
Regards,
Shankha.
Change History (4)
comment:1 by , 9 years ago
comment:2 by , 9 years ago
Please find in the following the answers to your questions from both tickets (this and #618).
Is there an easy way to include it in the Delphes code.
I could include this particle (stau) as a muon by changing the module ParticlePropagator.C.
I'd say that changing the module ParticlePropagator.C would be the easiest solution.
Also should I have this line in the .tcl card:
add EnergyFraction {1000015} {0.0 0.0}
Yes.
However, when I try to use Delphes, it just sees the particle (PID -1000015) and not the one with PID = 1000015. Even though when I form my root file, the GenParticle shows both the PIDs.
I've just done a quick test:
root [0] TDatabasePDG *p = TDatabasePDG::Instance(); root [1] TParticlePDG *a = p->GetParticle(1000015); root [2] a->Stable() (Int_t) 0 root [3] TParticlePDG *b = p->GetParticle(-1000015); root [4] b->Stable() (Int_t) 1
So, the problem is in the PDG table provided with ROOT ($ROOTSYS/etc/pdg_table.txt). Delphes uses this table to check if particle is stable or not.
To make both stau and anti-stau stable, you'll need to fix the HepMC or STDHEP (depending on what input format you're using) reader class. The files are classes/DelphesHepMCReader.cc and classes/DelphesHepMCReader.cc.
Replacing
if(fStatus == 1 && pdgParticle->Stable())
with
if(fStatus == 1)
should fix this problem.
comment:3 by , 9 years ago
Hi Pavel,
Thank you so much.
I was not sure what removing pdgParticle->Stable() would do so I just did this :
if((fstatus == 1 && pdgParticle->Stable()) || (fstatus == 1 && pdgCode == 1000015))
Is this also correct ?
Thank you very much once again.
Best regards,
Shankha.
Dear Experts,
What I mean is that I want this kind of a parametrisation :
fake rate = 0; for beta < 0.95
fake rate = 1; for beta > 0.95
Thanks a lot.
I am eagerly awaiting your response.
Best regards,
Shankha.