The pico analysis framework status of non objectivity based babar analysis software
1 / 24

The Pico Analysis Framework: Status of Non-Objectivity-Based BABAR Analysis Software - PowerPoint PPT Presentation

  • Uploaded on

The Pico Analysis Framework: Status of Non-Objectivity-Based BABAR Analysis Software. BABAR Analysis Principles (Excerpts from ).

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'The Pico Analysis Framework: Status of Non-Objectivity-Based BABAR Analysis Software' - jena

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
The pico analysis framework status of non objectivity based babar analysis software
The Pico Analysis Framework: Status of Non-Objectivity-Based BABAR Analysis Software

Marcel Kunze - RUB

The pico analysis framework status of non objectivity based babar analysis software
BABAR Analysis Principles(Excerpts from

  • All physics results from BABAR belong to the entire collaboration, not to an individual or group.

  • Access to data samples, analysis programs, and all detailed information about the analysis should be granted to the collaboration.

  • BABAR is a precision experiment; analyses will develop over an extended period of time. Reasonable access should be maintained throughout the entire process so that progress can be continuously monitored.

  • At the same time, it is recognized that creativity and new ideas from individual members of BABAR should be encouraged.

  • BABAR members should feel free to follow new ideas in the way they prefer. They should make their work available to the Collaboration early in the process, however, and cooperate with colleagues working in related areas.

  • All organized analysis efforts should be open and operate within the Physics Group structure.

  • BABAR should make every reasonable effort to adopt new technologies that would allow members to follow the analyses and the activity of the physics groups in real time (ideally!) from their home laboratories.

  • The Spokesperson will be responsible for making sure that these principles are followed by the Collaboration.

  • => Creativity and new ideas should be honored, but...

Marcel Kunze - RUB

The status of root in babar
The Status of ROOT in BABAR

  • When I proposed to use ROOT some 2 years ago, I was told

  • by the computing management (excerpts from e-mail):

  • “ROOT isn't a well developed/maintained package yet ... Blabla ...

  • In fact I'd like to discourage using ROOT ... Blabla ...

  • I hate to be one who keeps suppressing new ideas but we really have -got- to keep focused on our immediate goals...“

  • The current status has, however, a little bit improved:

  • Replacement for HBook/PAW (RooTuple Package)

  • Data store for micro/nano-DST (KAnGARoo Package)

  • Conditions database (RooCond Package)

  • Pico Analysis Framework (PAF Package)

Marcel Kunze - RUB

Analysis software beta option 7
Analysis Software – Beta/Option 7

PAF in BABAR context =

Root database + PAF framework +

Possibility of Beta analysis on TAG+MICRO level

Marcel Kunze - RUB

Paf goals
PAF Goals

  • provide (fastest possible) access to TAG (Nano) and MICRO data

    + provide platform independent code

  • provide full functionality of the BABAR Beta analysis software package

  • use Beta candidates and refined tools, run existing BABAR analysis code with a minimum of changes

    + allow very fast simple analyses with minimum dependencies = Option 8 (w/o Beta), PAF = Professors’ Analysis Framework ?

    + provide access to the full ROOT analysis functions

  • provide backward compatibility when the data format evolves

  • provide fast turnaround (modular shared libs, small code size)

    + use CINT C++ interpreter for parameter setting and development

    “+” indicates areas where PAF is superior to BABAR Framework

Marcel Kunze - RUB

Paf key development ideas
PAF Key Development Ideas

  • Reuse the good ideas and code

  • Skip the bad things

  • (Object) Think…

    => Ingredients and ideas from:BABAR Framework, LHCB Gaudi, Argus KAL, Crystal Barrel CBoOff++, AliRoot, …+ List Processing a la DChain (S. Patton)+ TCLHEP (= ROOTified CLHEP, S. Kluth)

Marcel Kunze - RUB

Paf code development extreme programming
PAF Code Development:Extreme Programming

  • Small, engaged team of experts (<5)

  • Common code repository (CVS)

  • No code ownership

  • Permanent build and test cycle

  • Regular code refactory and release each two weeks(Internal reorganization w/o change of interfaces)

  • Be sure to sleep with the Anti-Patterns book under your pillow...

    => Similar to the ROOT development !

Marcel Kunze - RUB

Paf basic design
PAF Basic Design

  • Data Streams

  • Managers (Services)

  • Selectors

    No separation into algorithm and data objects !=> Predefined sequences and paths of data and algorithm objects are always bottom-up (expensive = slow and resource hungry; all data are read before an algorithm starts)=> Intelligent objects allow for smart top-down operation ( cheap = data are read and objects constructed on dynamic request only)

    => BABAR Framework runs constantly slow on the scale of 10-100 Hz, PAF runs dynamically at 1-100 kHz !

Marcel Kunze - RUB

Paf data streams

Data Stream



The BABAR TAG data


The BABAR micro data


The BABAR Monte-Carlo truth


User definable persistent object stream

PAF Data Streams

=> Typical volume: 300 GB/year (108 events)

Where is ROOT helpful ?

Data are organized in split ROOT trees

=> Split-mode enables selective reading on request

=> Split-mode allows for “smart” schema evolution

=> Easy network service by use of ROOTD

Marcel Kunze - RUB

Reading events via network
Reading Events via Network

  • Objectivity has an AMS (Advanced Multi-threaded Server)

  • ROOT has ROOTD (Root demon), forget about AFS/NFS !!!

  • How to use ROOTD to serve data from e.g. bbr-bochum2 ?

  • Start it and use it (via inetd) !

  • Replace TFile with TNetFile in a client program(for PAF: AbsAnalysis, TPAFStream, PAFConditions and TRunDB)

  • and add a few lines of security gymnasticsTNetFile::SetUser("rootd"); TNetFile::SetPasswd("rootd@bbr-bochum2");

  • => Feed the data from the desktop into the SLAC batch fram...

  • => Plans to set up a cheap, multi-TB distributed service in Bochum

Marcel Kunze - RUB

Distributed data service
Distributed Data Service

Based on failsafe SuSE HyperCube:

Dual PIII, 1 GB Mem., 430-640 GB RAID5

Linux, $25k each

Switched GigaBit Ethernet everywhere(Servers and desktop)

Start with 2 systems, expand according to need

Giga Switch

Marcel Kunze - RUB

Paf managers services

PAF Services


Application manager

Construct an analysis from individual PAF and/or Beta modules

Event manager

Provide access to event data

Directory manager

Provide a file database to locate sets of runs

Parameter manager

Provide a unique means to set and modify parameters either from C++, file and/or command line

Persistence manager

Manage persistent object store (e.g. histograms)

Object manager

Manage transient objects (communication between modules)

List manager

Manager transient lists (communication between modules)

Conditions manager

Provide experimental conditions like PepBeams or BField

Display manager

Interactive, live 3D event display

PAF Managers (Services)

Marcel Kunze - RUB

Parameter manager
Parameter Manager

  • Define parameters in a C++ program (macro)SetParm(key,value); // value = bool,int,double,string

  • Define parameters in a „TCL“ filekey set value # This is an example

  • Define parameters on the command line=> Clever use of the C++ scope operatoranalysis -verbose true -nev 1000Talk to an object:analysis -muonSelector::criteria veryLooseTalk to a module:analysis -PExample::verbose true

Marcel Kunze - RUB

Code example

Main program to drive the Beta sample from the BABAR analysis workbook

int main(int argc, char **argv){// Create an application manager and register servicesTPico PAF("Sample Beta Analysis");// Define output file for histogramsPAF.RegisterService(new TPicoPersistenceManager("PExample.root"));// Pass the command line to the analysisAbsBbrAnalysis *myAnalysis = new AbsBbrAnalysis(argc,argv);// Instantiate the physics modulePAFBbrModule *theModule = new PAFBbrModule(PExample("PExample","Sample Beta Module"));// Define a few parameterstheModule->SetParm("trackCandidates","chargedDefault","List of charged candidates");theModule->SetParm("verbose",kFALSE); // Set verbose modemyAnalysis->SetParm("cluster","system"); // Define the database locationmyAnalysis->SetParm("start",6000); // Define the first runmyAnalysis->SetParm("end",6020); // Define the last runmyAnalysis->Add(theModule);PAF.RegisterService(myAnalysis); // Note this analysisPAF.Run(); // Run the analysisreturn 0;}

Code Example

Marcel Kunze - RUB

Event display
Event Display BABAR analysis workbook

  • Fully interactive (picking, rotating and zooming)

  • Single and multiple views

  • 2D projections and 3D (OpenGL)

Marcel Kunze - RUB

Pictures for the contest
Pictures for the Contest BABAR analysis workbook

Marcel Kunze - RUB

Track selectors

Track Selector BABAR analysis workbook



Selection of charged particles


Selection of positive particles


Selection of negative particles


Selection of neutral particles


MCT tagged electrons


MCT tagged muons


MCT tagged pions


MCT tagged kaons


MCT tagged protons


Selection of mass window


Selection of energy window


Selection of momentum window


Select good tracks

Track Selectors

Marcel Kunze - RUB

Particle selectors

Particle Selector BABAR analysis workbook



Selection of electrons with neural nets


Selection of muons with neural nets


Selection of pions with neural nets


Selection of kaons with neural nets


Selection of protons with neural nets


Selection of electrons based on micro data (Recipe of Thorsten Brandt, BetaPid implementation of Dan Azzopardi)


Selection of muons based on micro data (Recipe of the IFR muon group, BetaPid implementation of Dan Azzopardi)


Selection of kaons based on micro data (Recipe of Guy Wormser/H.Schmücker, Implementation M. Kunze)

Particle Selectors

Marcel Kunze - RUB

Event selectors

Event Selector BABAR analysis workbook



Requires at least two tracks of which the leading two are opposite in the CMS


Requires at least two high momentum tracks of which the leading two are approx. opposite in the CMS


Requires at least two high energetic photons of which the leading two are approx. opposite in the CMS


Requires at least two high momentum tracks with a total energy above 3 GeV. The highest momentum should exceed 3 GeV and at least one track should deposit more than 2 GeV in the EMC


Requires a TPicoTwoprongSelector event with |Cos(theta)| < 0.8 and E(EMC)/P > 0.7


Works with the IsRadiativeBhabha tag bit.


Asks for more than three good tracks.


Asks for more than two good tracks (20 hits, Pt>0.1GeV, DOCA<1cm, |z|<4cm) with matched EMC energy. The total charge is less than 4, at least one track should have Pt > 0.5 GeV


Asks for two opposite tracks in CMS at a shower energy between 50 MeV and 1 GeV.

Event Selectors

Marcel Kunze - RUB

Analysis example b d p helmut schm cker
Analysis example: B D BABAR analysis workbook*p (Helmut Schmücker)

0.05 < pp,soft < 0.8

0.09 < pp,soft < 0.24

Selection of good tracks, R2<0.35,

(2.1GeV/c < pp,hard < 2.4GeV/c ),

(E/p)p,hard > 0.7

yellow: unlike sign combinations

0.09 < pp,soft < 0.24,


SUN Ultra 1 (167 MHz): 1450 Hz

5 Million events processed within 1 hour in one run w/o a previous skim.

Marcel Kunze - RUB

Where does root help
Where does ROOT help ? BABAR analysis workbook

  • Platform independence (same code basis on Unix and Windows)

  • Extremely optimized wrt. Resources

  • Dynamic loading of libraries upon actual need

  • Save money (no license fees, less disks…)

  • Persistent object bus for intelligent module communication (RTTI/Dictionary)

  • The event display took one rainy weekend(g2root plus AliRoot...)

  • Interactive work (No need for PAW/HBook)

Marcel Kunze - RUB

What is still missing
What is still missing ? BABAR analysis workbook

  • Most BABAR code is hardly “Cintable“=> Use of tricks like perl scripts to prevent inclusion of some header files

  • Most BABAR interfaces use templates, Cint does not like=> Development of wrapping layers

  • Potential version conflicts with shared libraries=> Why not name them ?=> Use of the operating systems‘ internal tagging mechanisms ?

  • Who implements the missing Windows GUI classes ?

  • More confidence into the potential of ROOT=> Still lots of concern (rather politically than technically motivated)=> People are not flexible enough (Still like PAW/HBOOK)=> Need of more education, tutorials and didactic material

Marcel Kunze - RUB

Conclusions BABAR analysis workbook

  • A ROOT based interactive framework for fast analyses exists in BABAR

  • Interactive analysis work with ROOT is extremely promising

  • But: GUI is currently non-existent, have to run macros/programs

  • Beta/Option 7 is operational: Run original BABAR analysis modules on top of PAF (even on Windows 98/NT/2000, currently 8.2.11, 8.6.x will be next)

  • Same ROOT data format as in BABAR framework can be handled

  • Quantitative performance tests/results still missing (it’s fast enough) => Can even reuse ancient hardware or laptops to run BABAR analyses

  • Set up a massive distributed ROOTD based service in a remote site (Bochum)

  • PAF documentation/workbook needs to be improved

  • => Publication of analysis examples and programs is mandatory to attract a larger audience

Marcel Kunze - RUB

Kangaroo event input
KAnGARoo Event Input BABAR analysis workbook

E.G. „Eid“,„Tag“, „Aod“

Input Module








All Modules communicatevia AbsEvent/ProxyDict

Conv.Man. Module



Event Update Module





User definable part, e.G.:



Knows which objectto convert


BtaIfrQualR(const BtaIfrQual *)BtaIfrQual* transient()

Knows howto convert

Marcel Kunze - RUB