== 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 [http://arxiv.org/abs/0802.1188 arXiv:0802.1188], [http://arxiv.org/abs/0707.1378 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: {{{ ./DelphesSTDHEP examples/converter_card.tcl MinBias.root MinBias.hep ./DelphesHepMC examples/converter_card.tcl 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 }}}