Delphes
Workbook Releases Source Issues

List of Modules

AngularSmearing

Performs transverse angular resolution smearing.

BTagging

Determines origin of jet, applies b-tagging efficiency (miss identification rate) formulas and sets b-tagging flags.

Starting from version 3.0.7 it is possible to test several (up to 32) b-tagging working points per jet. The BTag variable in the Jet class can store up to 32 bits. If the user specifies BitNumber = 0 in the BTagging module, that particular bit will be stored in the first position. If BitNumber = 1, it will be in the second position, etc.

In order to check whether a jet has passed the b-tagging criteria defined by the BitNumber = i, just do:

Bool_t BtagOk = ( jet->BTag & (1 << i) );

TrackCountingBTagging

For information on this module, see this presentation.

PhotonConversions

For information on this module, see this presentation.

SimpleCalorimeter

Fills calorimeter towers, performs calorimeter resolution smearing, pre-selects towers hit by photons and performs an energy flow algorithm.

Calorimeter

Fills calorimeter towers for both ECAL and HCAL, performs calorimeter resolution smearing, preselects towers hit by photons and performs an energy flow algorithm. ECAL and HCAL are tied together and have the same granularity. For more flexibility use SimpleCalorimeter.

Efficiency

Selects candidates from the InputArray according to the efficiency formula.

EnergySmearing

Performs energy resolution smearing.

EnergyScale

Applies an energy scale to the specified object collection.

FastJetFinder

Finds jets using the FastJet library, for more information about parameters see chapters 4 and 5 of the FasJet user manual.

To compute N-subjettiness variables (see JHEP 1103:015 (2011) and JHEP 1202:093 (2012)), use option 7.

To apply jet grooming such as Trimming (arXiv:0912.1342) , Pruning (arXiv:0912.0033), and SoftDrop (arXiv:1402.2657).

Example:

module FastJetFinder FastJetFinder {

  set InputArray EFlowMerger/eflow

  set OutputArray jets

  set JetAlgorithm 5
  set ParameterR 1.0

  set ComputeNsubjettiness 1
  set Beta 1.0
  set AxisMode 1

  set ComputeTrimming 1
  set RTrim 0.2
  set PtFracTrim 0.05

  set ComputePruning 1
  set ZcutPrun 0.1
  set RcutPrun 0.5
  set RPrun 0.8

  set ComputeSoftDrop 1
  set BetaSoftDrop 0.0
  set SymmetryCutSoftDrop 0.1
  set R0SoftDrop 0.8

  set JetPTMin 200.0
}

To cluster jets with N-jettiness, use

set JetAlgorithm 8

Hector

Hector takes care of propagating particle within the beam line up to a certain point (see JINST 2:P09005 (2007)).

IdentificationMap

This module was written specifically for LHCb, but can be used for any detector. It consists in a generalized version of the Efficiency module. The user can specify not only the probably of reconstructing a particle with a given efficiency but also the probability of being misidentified as another particle. A working example is provided in the LHCb card.

Example of efficiency map:

## --- pions ---
add EfficiencyFormula {211} {211} {(eta <= 2.0)                           * (0.00) +
                                   (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
                                   (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.95) +
                                   (eta > 5.0)                            * (0.00)}

add EfficiencyFormula {211} {-13} {(eta <= 2.0)                           * (0.00) +
                                   (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
                                   (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.005 + 0.0663*exp(-0.13*pt*cosh(eta))) +
                                   (eta > 5.0)                            * (0.00)}

## --- kaons ---

add EfficiencyFormula {321} {321} {(eta <= 2.0)              * (0.00) +
                                   (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
                                   (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.95) +
                                   (eta > 5.0)               * (0.00)}

add EfficiencyFormula {321} {-13} {(eta <= 2.0)              * (0.00) +
                                   (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
                                   (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.005 + 0.086*exp(-0.11*pt*cosh(eta))) +
                                   (eta > 5.0) * (0.00)}

## --- protons ---

add EfficiencyFormula {2212} {2212} {(eta <= 2.0) * (0.00) +
                                     (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
                                     (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.95) +
                                     (eta > 5.0) * (0.00)}

add EfficiencyFormula {2212} {-13} {(eta <= 2.0) * (0.00) +
                                    (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
                                    (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.002) +
                                    (eta > 5.0) * (0.00)}
## --- muons ---

add EfficiencyFormula {-13} {-13} {(eta <= 2.0) * (0.00) +
                                   (eta > 2.0 && eta <= 5.0) * (pt < 0.8)* (0.00) +
                                   (eta > 2.0 && eta <= 5.0) * (pt >= 0.8)* (0.97) +
                                   (eta > 5.0) * (0.00)}

## efficiency for other charged particles (should be always {0} {0} {formula})

add EfficiencyFormula {0} {0} {(eta <= 2.0) * (0.00) +
                               (eta > 2.0 && eta <= 5.0) * (pt < 0.8) * (0.00) +
                               (eta > 2.0 && eta <= 5.0) * (pt > 0.8) * (0.95) +
                               (eta > 5.0) * (0.00)}
}

Isolation

Sums transverse momenta of isolation objects (tracks, calorimeter towers, etc) within a DeltaRMax cone around a candidate, calculates fraction of this sum to the candidate's transverse momentum and outputs candidates that have the transverse momenta fraction less than PTRatioMax.

By default the isolation variable is defined as relative. To use an absolute isolation criterion, declare UsePTSum as true, and declare the parameter PTSumMax instead of PTRatioMax.

Merger

Merges multiple input arrays into one output array, sums transverse momenta and transverse energies of all input objects.

MomentumSmearing

Performs transverse momentum resolution smearing.

ParticlePropagator

Propagates charged and neutral particles from a given vertex to a cylinder defined by its radius, its half-length, centered at (0,0,0) and with its axis oriented along the z-axis.

RadiusMax and HalfLengthMax can be used to keep decay products of the long-lived particles. If the decay products appear between Radius and RadiusMax or between HalfLength and HalfLengthMax, then they are kept in the OutputArray collection. These particles are not propagated. They are not used for electron/muon/charged particle identification. They can only create energy deposits in the calorimeters.

PdgCodeFilter

Removes particles with specific pdg code from given collection.

Example (to remove neutrinos from stable gen particles):

module PdgCodeFilter NeutrinoFilter {
  set InputArray Delphes/stableParticles
  set OutputArray filteredParticles
  set PTMin 0.0
  add PdgCode {12}
  add PdgCode {14}
  add PdgCode {16}
  add PdgCode {-12}
  add PdgCode {-14}
  add PdgCode {-16}
}

TauTagging

Determines origin of jet, applies tau-tagging efficiency (miss identification rate) formulas and sets tau-tagging flags.

TreeWriter

Fills ROOT tree branches.

UniqueObjectFinder

Finds uniquely identified photons, electrons, taus and jets.