You are here: Foswiki>ATLAS Web>LiverpoolAnalysis>ZToTwoElectrons (07 May 2009, MikeFlowerdew)Edit Attach


This page gives a very brief introduction to the ZToTwoElectrons package. This resides in CVS under PhysicsAnalysis/StandardModelPhys/WZBenchmarks/. The precise implementation is, at the moment, very preliminary and subject to group discussion.

Note about running the code

The ZToTwoElectrons package depends on InsituPerformance/EGammaPerformance. In order for this code to work, the HEAD versions of EGammaPerformance, InsituEvent, InsituEventPool, InsituRepresentation and InsituTools all need to be checked out and compiled. Please see InsituPerformance for details.

Once these packages are checked out, the example job configuration script can be found in share/ The script as it is should be able to find local files as well as those on DPM and CASTOR storage, although the CASTOR element is preliminary and has not been tested. Please report any bugs to the authors.

The rest of this page describes how the default analysis works. This first version is written to run in release


As agreed within the Standard Model working group, this code adheres to a few analysis paradigms:

  • Modularity: Distinct sections of the analysis are implemented in separate classes, with minimal dependencies between these elements.
  • Use of official tools wherever possible. This includes, for example, using RecExCommon to correctly configure the run-time environment.
  • Simplicity: As this is designed to be a communal effort, the code itself should be as clear and transparent as possible.
  • Robustness: The analysis should be easy to run, with easily configurable cut values and process flow.

The analysis as it stands consists of one master algorithm (ZeeAnalysis) which coordinates tool use in the analysis. A separate algorithm provides an optional (and temporary) D3PD/NTuple dump. The analysis attempts to make best use of available athena components to improve robustness and simplify the code. This includes use of AthAlgorithm and AthAlgTool as base classes (see ImprovingSoftware), and the use of ToolHandle and ServiceHandle to access tools and services respectively (where possible). The principal tools used withing the ZToTwoElectrons analysis are:

  • TrigDecisionTool: For applying the trigger selection
  • ElectronEfficiencyAccessTool: From InsituPerformance/EGammaPerformance, used to access identification and trigger efficiencies.
  • SelectElectrons: Defined in ZToTwoElectrons, this implements the electron selection.
  • egammaMCTruthClassifier: Used to locate true origins of reconstructed electrons (from egamma/egammaUtils).
  • WZTruthTool: Defined in ZToTwoElectrons, this is used to navigate the truth in the other direction, ie from the Z boson. For matching to reconstructed electrons, either "Delta-R" matching or egammaMCTruthClassifier may be used.
  • Although not a tool, ZeeAnalysis also uses ZeeEventClass and its container to record a cut flow. These are straight copies of the equivalent classes in ZToTwoMuons.

These tools are configured automatically in share/ (Note *job*Options, not *top*Options), which is used by the example script described in the previous section. Control of the job is managed through the jobproperty flags defined in python/ Typically, a user should not need to modify these two files.

Analysis tools

Tools which are "central" will not be documented here.


This tool implements the ISelectionTool interface, which is also defined in ZToTwoElectrons. The available cuts include:

  • Lepton p_T and |eta|.
  • Optional exclusion of the crack (1.37 < |eta| < 1.52).
  • By default, only "AuthorElectron" candidates are considered. Optionally, softe candidates may be considered as well.
  • IsEM (limited to the usual "ElectronLoose" etc defined by the egamma group).
  • Optional track isolation (cut on track p_T within variable Delta-R window).
  • Optional calorimeter isolation (cut on E_T within variable calorimeter window).

In addition, ZeeAnalysis automatically stops processing an event if the selection tool reports that fewer than 2 electrons pass this selection. Optionally, exactly 2 electrons can be required at this stage. The selection tool writes a container of the successful particles to StoreGate, and ZeeAnalysis automatically picks up the name of this container, needing no configuration.

The SelectElectrons tool itself is more configurable than this description implies - only the most important properties have been passed on to the generic job configuration.


This tool efficiently searches for a specified (configurable) boson in the truth record, and provides easy access to the boson, its daughters and parents for client algorithms. At present, there is no particular case for this tool to be used in the ZeeAnalysis algorithm, as there is no need for any of its information to be recorded at this stage. Please see DumpZee for examples of its use. It is very simply configured, usually only two or three properties need modification:

  • BosonPDG: PDG code of the boson to search for (ie 23 for Z, +/-21 for W)
  • DecayProduct1PDG, DecayProduct2PDG: PDG codes of the daughters to search for (eg +/- 11 for electrons). For the Z, only one of these need to be set as the tool assumes a symmetrical decay in this case.

Analysis configuration

The example job options script share/ illustrates how to load and configure the default analysis. The jobproperty flags are loaded with the line

from ZToTwoElectrons.ZToTwoElectronsFlags import ZeeFlags

These are then configured with lines of the type:

ZeeFlags.SomeProperty = SomeValue

where SomeProperty and SomeValue need to be substituted appropriately. The available properties are:

  • ElectronCollection: The input collection before selection, "ElectronAODCollection" by default.
  • LeptonPtCut, LeptonEtaCut: Self explanatory.
  • LeptonExcludeCrack: Optional exclusion of the calorimeter crack region.
  • LeptonAllowSofte: Set to True to consider these in addition to AuthorElectron candidates.
  • LeptonIsEM: A string describing the desired IsEM selection.
  • IDConeIsolationElectron, IDIsolationCutElectron: Changing these will activate the track isolation cut. First is the cone size, second is the cut value.
  • CaloConeIsolationElectron, CaloIsolationCutElectron: Changing these will activate the calorimeter isolation cut. First is the cone size (20, 30, 40 or 45), second is the cut value.
  • RequireOppCharge: Set to False to relax charge requirements.
  • MinZMassWindow, MaxZMassWindow: Z mass cuts (defaults to M_Z +/- 20 GeV).
  • TriggerName: Self explanatory - set to "" to skip trigger analysis. Note the "EF_" in front of the name is optional.
  • OutputName: Output file name, with no extension. The cut flow is written to name.dat, and the optional D3PD is written to name.root.
  • DoWeighting: Set to true to weight events using efficiency matrices.
  • DataIDEffMatrixFileName, MCIDEffMatrixFileName: File names containing "data" and "Monte Carlo" efficiency matrices respectively.
  • DataIDEffMatrixNames, MCIDEffMatrixNames: Names of the matrices containing "data" and "Monte Carlo" efficiencies, respectively.
  • DoNtupleDump: Activate optional D3PD dump.
  • DoTruthAnalysis: For now, only refers to truth branches of the D3PD.

Analysis output

The analysis job will produce an ascii file with the cut flow. If the optional D3PD dump is activated, this is also produced. Please see ZToTwoElectrons/DumpZee.h for the documentation of this NTuple (the documentation is Doxygen-friendly).

To do

  • Rationalisation: Elements common between the muon and electron analyses need to be identified and, if possible, merged.
  • EGammaPerformance: Access to reconstruction efficiency matrices also needs to be established. This will be possible once a common (templated) access tool is developed within InsituPerformance.
  • Inclusion of systematics: The modular nature of this code allows tools to assess systematic effects to be "slotted in" appropriately once they're available.
  • Update job configuration to use MultipleStreamManager.
  • Add in optional pdf reweighting into event weight calculations.
  • Implement method of propagating the event weight(s) outside the ZeeAnalysis class, eg by recording it as UserData in StoreGate.

-- MikeFlowerdew - 05 May 2009
Topic revision: r5 - 07 May 2009, MikeFlowerdew
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback