Version 19 (modified by 11 years ago) ( diff ) | ,
---|
Pile-up implementation in Delphes
Multiple particle interactions per bunch-crossing are now implemented in Delphes. The procedure is divided in two main parts:
- mixing pile-up events with the main interaction
- pile-up subtraction with the fast jet area method
An example card that uses the following is examples/delphes_card_CMS_PileUp.tcl
Mixing pile-up
The mixing procedure is done via the PileUpMerger
module. The user can specify 4 parameters: PileUpFile
, MeanPileUp
, ZVertexWidth
, ZVertexResolution
.
PileUpFile
:
the event sample containing pile-up events in binary format. This format allows for faster random event access compared to root trees. Basic information about the event is contained (particle 4-momenta, vertex position, and Particle ID)
This sample has to be generated in advance with an event generator (typically Pythia6/8 or HERWIG) and then converted into binary format (see example below).
MeanPileUp
:
the average amount of pile-up events per bunch-crossing. For each hard scattering, N pile-up events will be randomly chosen from the PileUpFile
, where N is a random number following Poisson statistics with a mean MeanPileUp
.
ZVertexSpread
:
Pile-up events randomly populate the z-axis. The position of each pile-up event is generated from a gaussian distribution with a standard deviation ZVertexSpread.
ZVertexResolution
For |z|< ZVertexResolution the hard interaction vertex cannot be distinguished from pile-up vertices. For such pile-up events both charged and neutrals are then merged in the event (no charged particle subtraction). For |z|> ZVertexResolution the hard interaction vertex can be distinguished from pile-up vertices. For such pile-up events only neutrals are merged in the event (total charged particle subtraction), which assumes perfect vertex resolution and efficiency.
Pile-up contamination
For estimating pile-up contribution we use the well known fastjet area method, see for instance arXiv:0802.1188, arXiv:0707.1378.
First, the user must specify whether to calculate the area while clustering the jets within the FastJetFinder
module. Several methods for the area calculation can be specified (active area, passive area, Voronoi …) via the parameter AreaAlgorithm
. By default this parameter is set to 0 (no area calculation):
# area algorithm: 0 Do not compute area, 1 Active area explicit ghosts, 2 One ghost passive area, 3 Passive area, 4 Voronoi, 5 Active area set AreaAlgorithm 5
Then the median density (in GeV/A) of pile-up contamination (rho) per event can the be computed within the FastJetFinder
module:
set ComputeRho true set RhoOutputArray rho
Note that it is common to use one jet algorithm for the rho density calculation (e.g kt with 0.6 cone) and one for the analysis (anti-kt with 0.5). In such a case, in order to be able to perform the pile-up subtraction (see below), one needs to compute the area also for the jets relevant for the analysis.
Pile-up subtraction
Since charged particles have already been subtracted to some extent, pile-up contamination only affects the jet energy resolution and the lepton/photon isolation.
- Jet pile-up subtraction is done via the
JetPileUpSubtractor
module that takes as input the jet collection and rho:
set JetInputArray FastJetFinder/jets set RhoInputArray rho
- Isolation subtraction is done inside the
Isolation
module itself just by adding the line in the delphes card:
set RhoInputArray rho
Running Delphes with Pile-Up
Convert your minimum bias sample into Delphes ROOT format:
./stdhep2pileup MinBias.root MinBias.hep ./hepmc2pileup MinBias.root MinBias.hepmc
Convert from Delphes ROOT format to binary
./root2pileup MinBias.pileup MinBias.root
Run Delphes on your sample X with pile-up:
./DelphesSTDHEP examples/delphes_card_CMS_PileUp.tcl X_PileUp.root X.hep