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

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


  • 121 Views
  • Uploaded on

The Pico Analysis Framework: Status of Non-Objectivity-Based BABAR Analysis Software. BABAR Analysis Principles (Excerpts from http://www.slac.stanford.edu/BFROOT/www/Physics/Analysis/An_princ.txt ).

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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


BABAR Analysis Principles(Excerpts from http://www.slac.stanford.edu/BFROOT/www/Physics/Analysis/An_princ.txt)

  • 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)http://www.ep1.ruhr-uni-bochum.de/~marcel/PAF.Beta.html

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

Description

TAG

The BABAR TAG data

AOD

The BABAR micro data

MCT

The BABAR Monte-Carlo truth

USR

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("[email protected]");

  • => 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

Description

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 PExample.cc 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

Description

TPicoChargedSelector

Selection of charged particles

TPicoPlusSelector

Selection of positive particles

TPicoMinusSelector

Selection of negative particles

TPicoNeutralSelector

Selection of neutral particles

TPicoTrueElectronSelector

MCT tagged electrons

TPicoTrueMuonSelector

MCT tagged muons

TPicoTruePionSelector

MCT tagged pions

TPicoTrueKaonSelector

MCT tagged kaons

TPicoTrueProtonSelector

MCT tagged protons

TPicoMassSelector

Selection of mass window

TPicoEnergySelector

Selection of energy window

TPicoMomentumSelector

Selection of momentum window

TPicoGoodTrackSelector

Select good tracks

Track Selectors

Marcel Kunze - RUB


Particle selectors

Particle Selector BABAR analysis workbook

Description

TPicoNNOElectronSelector

Selection of electrons with neural nets

TPicoNNOMuonSelector

Selection of muons with neural nets

TPicoNNOPionSelector

Selection of pions with neural nets

TPicoNNOKaonSelector

Selection of kaons with neural nets

TPicoNNOProtonSelector

Selection of protons with neural nets

TPicoElectronSelector

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

TPicoMuonSelector

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

TPicoKaonSelector,TpicoKaon2Selector

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

Description

TPicoTwoprongTagSelector

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

TPicoDimuonTagSelector

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

TPicoGammaGammaTagSelector

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

TPicoBhabhaTagSelector

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

TPicoBhabhaRatioTagSelector

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

TPicoRadiativeBhabhaTagSelector

Works with the IsRadiativeBhabha tag bit.

TPicoHadronTagSelector

Asks for more than three good tracks.

TPicoHadronAodSelector

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

TPicoDimuonAodSelector

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,

cos(B,phard)>0.5

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 libBase.2.23.11.so ?=> 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
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

RooEventInput

SetNextEventLocation()

RooInputStream

Name

TFile

TTree

StreamList

All Modules communicatevia AbsEvent/ProxyDict

Conv.Man. Module

RooCreateCM

RooConverter

Event Update Module

RooEventUpdate

Event()

stream->inputEvent()

converter->convertToTransient()

User definable part, e.G.:

RooScribes

convertToPersistent()convertToTransient()addScribeForInput()

Knows which objectto convert

BtaIfrQualR

BtaIfrQualR(const BtaIfrQual *)BtaIfrQual* transient()

Knows howto convert

Marcel Kunze - RUB


ad