Particle Flow Validation Software Architecture


This page present the software architecture of the particle flow validation system.

The particle flow validation suite is distributed over 2 packages:

  • RecoParticleFlow/Benchmark contains the benchmark classes. Objects of these classes can be used anywhere (e.g. full framework EDAnalyzers, PFRootEvent), and are responsible for the booking and the filling of the validation histograms

  • Validation/RecoParticleFlow is the validation package. It contains:
    • EDAnalyzers making use of the benchmark classes, in the plugins directory,
    • python configuration fragments for these analyzers, in the python directory,
    • python validation scripts, in the Benchmarks/Tools directory,
    • Benchmark directories in the Benchmarks directory. A benchmark directory contains:
      • a file, to read the AODSIM and produce a benchmark.root output file containing the validation histograms
      • a plot.C macro, to analyse and format these histograms to produce plots
      • a caption.txt text file defining which plots are going to be selected for the benchmark web page.
      • a compare.C macro to compare existing benchmarks
      • a c_caption.txt text file to select which plots are going to be selected for the comparison web page.

The particle flow Benchmarks

Package RecoParticleFlow/Benchmark



  • Not yet used
  • To study specific PFJet quantities
    • energy fractions (charged, neutral, neutral EM), ...
  • Only for PFJets
  • List of histograms: please refer to Benchmark/interface/PFJetBenchmark.h
  • Remarks: *Several histograms could be removed from this benchmark, since they're already available in the GenericBenchmark.

The validation package

Package Validation/RecoParticleFlow

The validation consists in 4 steps:

  • Step 2: Cosmetic processing of these histograms to get plots

  • Step 3: Creation of the corresponding webpage and submission to the website. This step is common to all benchmarks, and is documented in the section Python Validation Scripts.

  • Step 4: Comparison to other existing benchmarks and submission of the comparison pages to the website. This step is common to all benchmarks, and is documented in the section Python Validation Scripts.


Step 1

  • Add the following to your python configuration and run.

    process.p =cms.Path(

  • Output: jetBenchmarkGeneric.root, subdirectories:
    • DQMData/PFTask/Benchmarks/iterativeCone5PFJets/Gen
    • DQMData/PFTask/Benchmarks/iterativeCone5CMS.CaloJets/Gen

Step 2

Please refer to plot.C.


Responsible: Florent Lacroix.


Responsible: Florian Beaudette.

ROOT Tools

Tools are provided to help you write your plot.C and compare.C macros:

  • NicePlot.h : plot formatting
  • Comparator.h : histogram comparison class
  • TH2Analyzer.h : TH2 analyzer
    • fit slices to get the mean or the standard deviation
    • compute arithmetic average and RMS in slices
    • define variable X binning.

These tools are compiled in a shared library. To use them, add the following lines at the beginning of your ROOT macro:


An example of use can be found in Benchmarks/METBenchmarkGeneric/plot.C

Python Validation Scripts

The Benchmarks/Tools directory contains the following validation scripts:

  • create the validation webpage from your validation plots
  • submit the resulting page
  • lists all benchmarks already submitted
  • compares 2 benchmarks already submitted.

Tip, idea All scripts are self-documented. Just run with the -h option.

Warning, important All scripts must be run from a benchmark directory, e.g. Validation/RecoParticleFlow/Benchmarks/METBenchmarkGeneric

More information

-- ColinBernet - 09 Feb 2009

Edit | Attach | Watch | Print version | History: r7 < r6 < r5 < r4 < r3 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r7 - 2009-11-04 - FlorentLacroix
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

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