Fork me on GitHub

Opened 9 years ago

Last modified 9 years ago

#730 new How to

"Perfect" detector card

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

Description

I am trying to find the origin of a feature in an analysis. The final step in my analysis was Delphes with the default ATLAS detector card. The feature is a dip in an angular distribution.

The feature is absent at the parton-level (from an event generator) but present in my Delphes ROOT output. It is also present if I switch off showering and hadronization. I think it must be a detector effect.

Is it possible to run Delphes with a "perfect" detector card? This would be something like the converter_card.tcl - it would essentially convert my *hepmc input to ROOT output without ANY detector effects (but with a jet algorithm to cluster jets). The converter_card.tcl isn't suitable for this, though, because it doesn't write the relevant branches to the ROOT file.

Is there a detector card that gives the same output as the default ATLAS card etc, but for a perfect isotropic detector? or how can I write one? Or is there a better way for me to debug in this situation?

Change History (1)

comment:1 by Michele Selvaggi, 9 years ago

Hi,

The ALTAS card already contains the GenJet collection which are jets made of hadron-level particles.
If you want electrons/muons and photons at parton level, you can simply filter by PID particles in the Particle branch.

Something like:

TClonesArray *branchParticle = treeReader->UseBranch("Particle");

//loop over events

GenParticle *gen;
TLorentzVector v;

for(Int_t i=0; i<branchParticle->GetEntriesFast(); i++)
{
    gen = (GenParticle *) branchParticle->At(i);
 
   //demand that this is a stable particle   
    if(gen->Status != 1) continue;
 
    if(TMath::Abs(gen->PID)==11 && gen->PT > 20.0 && TMath::Abs(gen->Eta) < 2.5)
    {
     // this is an electron, store it in some container
     v = gen->P4();
    }

    if(TMath::Abs(gen->PID)==13 && gen->PT > 20.0 && TMath::Abs(gen->Eta) < 2.5)
    {
     // this is a muon, store it in some container
     v = gen->P4();
    }

 …
}

Hope this helps,
Michele

Note: See TracTickets for help on using tickets.