The SUSYDPDMaker package is a utility created for the SUSY WG users to make primary DPDs and, eventually, also to create secondary and tertiary DPDs. It takes ESDs, AODs and also SUSYDPDs as input and creates slimmed/thinned/skimmed DPDs as output in the form of pool.root files. The AOD->DPD job (as well as D1PD->D2PD->D3PD) is configured by python scripts. Slimming/thinning/skimming of containers/events are driven by the same SUSYDPD_jobOption.py file but are all independent from each other and will create different Streams and separate outputs. PyParticleTools are used to create the primary and secondary DPDs. The slimming algorithm that are used to create the primary DPDs are those defined in the DPDUtils package.

Any comment/suggestions can be posted to the SUSY WG hypernews or directly to Fabrizio Salvatore.

Installing SUSYDPDMaker at CERN

In the following you can find the instructions on how to install SUSYDPDMaker in a 13.0.40 release at CERN.

- First, prepare your account to run the package; in the following, the package is installed in a directory called "test" that is defined in the "testarea" in your $HOME direcotry:

> mkdir $HOME/testarea
> mkdir $HOME/testarea/test
> mkdir $HOME/testarea/test/cmthome
> cd $HOME/testarea/test/cmthome
> source /afs/cern.ch/sw/contrib/CMT/v1r20p20070720/mgr/setup.sh

- Make the requirements file in cmthome, then run config and setup.sh:

set   CMTSITE         CERN
set   SITEROOT        /afs/cern.ch
macro ATLAS_DIST_AREA ${SITEROOT}/atlas/software/dist
macro ATLAS_TEST_AREA ${HOME}/testarea/test
apply_tag setup
apply_tag simpleTest
use AtlasLogin AtlasLogin-* $(ATLAS_DIST_AREA)

> cmt config
> source setup.sh -tag=13.0.40,32
> cd ..
> mkdir $HOME/testarea/test/13.0.40
> cd $HOME/testarea/test/13.0.40

- Then, get (and compile) the required packages:

> cmt co -r DPDUtils-00-00-09 PhysicsAnalysis/DPDUtils
> cd PhysicsAnalysis/DPDUtils/cmt
> source setup.sh
> make
> cd -

> cmt co -r PyParticleTools-00-00-26 PhysicsAnalysis/PyAnalysis/PyParticleTools
> cd PhysicsAnalysis/PyAnalysis/PyParticleTools/cmt
> source setup.sh
> make
> cd - 

> cmt co -r McParticleTools-00-10-04 PhysicsAnalysis/TruthParticleID/McParticleTools
> cd PhysicsAnalysis/TruthParticleID/McParticleTools/cmt
> source setup.sh
> make
> cd -

> cmt co -r SUSYDPDMaker-00-00-02 PhysicsAnalysis/SUSYPhys/SUSYDPDMaker
> cd PhysicsAnalysis/SUSYPhys/SUSYDPDMaker/cmt
> source setup.sh
> make
> cd ..

- Now create a 'run' directory that you will use to run your AOD-> DPD jobs:

> mkdir run
> cd run

At this point, the installation is finished and you can define your job to make the DPDs.

Running SUSYDPDMaker at CERN

The main script to run the AOD->DPD job is share/SUSYDPDMaker.py.

share/SUSYDPD_PoolOutput.py is the script that contains the list of containers that are selected for the primary (and also secondary/tertiary) DPDs. A list of all the available AOD/ESD containers can be found on the AODClassSummary page.

The jobOptions file (share/SUSYDPD_jobOptions.py) is used to customize the job and is sourced by the SUSYDPDMaker.py script.

To create or modify pool.root DPDs, examples of slimming, thinning and skimming are provided in SUSYDPDMaker/share). For primary DPD production, only the slimming algorithms will be applied. The thinning and skimming algorithms that are described below are only examples of what could be done in order to produce secondary/tertiary DPDs and are provided to help users to write their own thinning/skimming algorithms.


By slimming the containers, object that are not of interest for the analysis are removed in order to reduce the overall size of the container itself (e.g. error matrix for tracks with Pt < 5 GeV). In SUSYDPDMaker the jet and track slimming scripts defined in DPDUtils/share) and the truth slimming script defined in SUSYDPDMaker/share/TruthSlimming.py) are used. Example of slimming can be seen in share/SUSYDPD_PoolOutput.py. If one wants to add and then execute more slimming scripts in the job definition, the slimming scripts have to be defined in SUSYDPDMaker/share/SUSYDPD_Slimming.py.

The environment variable:

ApplySlimming = True

is defined in SUSYDPD_jobOptions.py in order to run the jet and track slimming in the AOD->DPD job. If also

WriteTruthInfo = True

the truth slimming is applied as well to obtain the primary DPD. The "slimmed" containers are then added to a

in SUSYDPD_PoolOutput.py .


Thinning consist of writing out only a fraction of a container. An example of thinning can be found in SUSYDPDMaker/src/DPDThinner.cxx. which is used to only select candidates in the Electron, Photon, Muon Tau and Jet containers that satisfy a certain requirement (e.g. Pt > 5 GeV). The thinning algorithms can be controlled via the jobOptions file SUSYDPDMaker/share/SUSYDPD_Thinning.py.

The "thinned" containers are then added to a

in SUSYDPD_PoolOutput.py (same as for the "slimming" above).


Skimming is a method to filter out the events to be written in the output DPD. Some skimming algorithms are currently available in SUSYDPDMaker to skim events using specific cuts on Electron, Photon, Muon, MissingET, Tau, Jet and/or Track containers. Examples can be found in:


For the skimming algorithms to be effective, they need to be registered to an output stream in SUSYDPD_PoolOutput.ps, like this:

SkimmedSUSYStream.AcceptAlgs=["EleFilterAlg, MuFilterAlg, TauFilterAlg"]
if they are to be applied in OR, or like this:
SkimmedSUSYStream.RequireAlgs=["EleFilterAlg, MuFilterAlg, TauFilterAlg"]
if they are to be applied in AND. Filter algorithms have to be declared in SUSYDPDMaker/share/SUSYDPD_Skimming.py. in order to be applied in the poolOutput script. The "skimmed" containers are then added to a
in SUSYDPD_PoolOutput.py (same as for the "slimming" and "thinning" above).

Running SUSYDPDMaker interactively for test purposes

For making some interactive AOD->DPD tests an input AOD and output DPD file can be defined in this SUSYDPD_jobOptions.py file. Once the job is set up, go in in the 'run' directory and do:

> athena SUSYDPDMaker/SUSYDPDMaker.py

This is useful to make an interactive test that the installation and set up works correctly. To run primary DPD production the Grid tools will be used (see below for an example).

Making primary DPDs using PandaTools

An easy way to produce the DPDs and make them available to everyone via dq2 is to run SUSYDPDMaker with "pathena". In order to be able to do it, PandaTools have to be installed in your "testarea" following the instructions below.

- Go in the test area:

cd $HOME/testarea/test/13.0.40

- Install the Panda tools:

> cmt co -r PandaTools-00-00-08 PhysicsAnalysis/DistributedAnalysis/PandaTools
> cd PhysicsAnalysis/DistributedAnalysis/PandaTools/cmt
> source setup.sh
> make
> cd -

- Go in your SUSYDPDMaker/cmt directory

> cd PhysicsAnalysis/SUSYPhys/SUSYDPDMaker/cmt

- Modify the requirements file in requirements but un-commenting the following line:

#use PandaTools                  PandaTools-00-00-08      PhysicsAnalysis/DistributedAnalysis

- Run config, then setup.sh and then make:

> cmt config
> source setup.sh
> make

Major updates:
-- FabrizioSalvatore - 17 Mar 2008

%RESPONSIBLE% FabrizioSalvatore
%REVIEW% Never reviewed

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r1 - 2008-03-17 - FabrizioSalvatore
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Atlas All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback