Proposal for extension of GaudiAlgorithm and GaudiTool classes Vanya Belyaev CERN & ITEP/Moscow.

Slides:



Advertisements
Similar presentations
Detecting Bugs Using Assertions Ben Scribner. Defining the Problem  Bugs exist  Unexpected errors happen Hardware failures Loss of data Data may exist.
Advertisements

JAS in SDA. My Experience My assignment was to use JAS to read SDA data and make plots. –I used OSDA and OSDAphysics to read SDA data. OSDA and OSDAphysics.
Gaudi Framework Tutorial, April Accessing Event Data.
Struts 2.0 an Overview ( )
DaVinci status Juan Palacios LHCb Software Week March, 2009.
LHCb Software week November, 1999 M.Frank LHCb/CERN N-Tuples within Gaudi ã Definition ã Usage ä Run through simplified example ã The persistent.
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
Browsing Data with GaudiPython Disclaimers: 1.I am an apprentice! 2.The porpoise: we think GaudiPython could be quite useful for a LHCb physicist… Browsing.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 8 Implementing Java Programs.
N ATIONAL E NERGY R ESEARCH S CIENTIFIC C OMPUTING C ENTER Charles Leggett A Lightweight Histogram Interface Layer CHEP 2000 Session F (F320) Thursday.
224 3/30/98 CSE 143 Recursion [Sections 6.1, ]
CERN Tutorial, September Job Options and Printing.
Job Options and Printing 1 LHCb software tutorial - September 2011.
Java 5 Part 1 CSE301 University of Sunderland Harry Erwin, PhD.
07 Apr, 2000 GAUDI Histograms Pavel Binko, LHCb / CERN 1 LHCb Software Week GAUDI Histograms Pavel Binko LHCb / CERN.
Using JAS3 for LCD Analysis Tony Johnson 20 th May 2003.
Software installation for commissioning tests Olivier Deschamps Calorimeter commissioning meeting – 05 april 2007.
AIDA Tuple Service Manuel Domenech Wednesday
9 Associators How to relate objects to each other Create relations Save relations Use relations: Associators.
Particle to MC truth association Juan Palacios (Nikhef) LHCb software week June
Kali Calo progress report Dasha Savrina (ITEP/Moscow), Vanya Belyaev.
Gaudi Framework Tutorial, April Algorithm Tools: what they are, how to write them, how to use them.
CHEP /21/03 Detector Description Framework in LHCb Sébastien Ponce CERN.
Gaudi Framework Tutorial, April Job Options and Printing.
N ATIONAL E NERGY R ESEARCH S CIENTIFIC C OMPUTING C ENTER Charles Leggett Interval of Validity Service IOVSvc ATLAS Software Week May Architecture.
Jose A. Hernando Trigger Gaudies Reconstruction Tools & Algorithms Inspectors MC & Data Algorithms Template preserved container Jose A. Hernando.
Reconstruction Configuration with Python Chris Jones University of Cambridge.
Vanya BELYAEV Vanya BELYAEV (Syracuse) Vanya BELYAEV Tutorial Gaudi/DaVinci/LoKi/Bender.
PESAsim – the e/  analysis framework Validation of the framework First look at a trigger menu combining several signatures Short-term plans Mark Sutton.
25th May, 1999 HTL - Histogram Template Library Pavel Binko, LHCb / CERN 1 LHCb Computing Meeting HTL - Histogram Template Library Pavel Binko LHCb / CERN.
CHEP /21/03 Detector Description Framework in LHCb Sébastien Ponce CERN.
Bender & Visualization (s) Smart&Transparent Python/LoKi-based Physics Analysis +4 demo Vanya Belyaev CERN & ITEP/Moscow.
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
S. Rajagopalan, BNLATLAS software week, 2/15/00 LAr OO Reconstruction People: H. Ma, S. Rajagopalan, J. Schwindling –+ help/advise from several others.
Bologna Tutorial, April Job Options and Printing.
May 30-31, 2012 HDF5 Workshop at PSI May Metadata Journaling Dana Robinson The HDF Group Efficient Use of HDF5 With High Data Rate X-Ray Detectors.
Postgraduate Computing Lectures PAW 1 PAW: Physicist Analysis Workstation What is PAW? –A tool to display and manipulate data. Learning PAW –See ref. in.
Tutorial: Examples (09may00 - ATLAS Software LBNL) May 2000 Prototype Framework Tutorial: Examples Paolo Calafiura, Charles Leggett HCG/NERSC/LBNL.
LHCb Software Week, 26th April /23 Tracking in LHCb E. Rodrigues, NIKHEF LHCb Software Week A Status Report.
DaVinciAssociators How to relate physics objects to MC truth.
Project Planning Defining the project Software specification Development stages Software testing.
Hadronic Jet Energy Scale Hadronic t-t bar selection and Jet Energy Scale calibration Part I : Accessing the trigger information 09/02 - Menelaos Tsiakiris.
25th Nov, 1999 LHCb Event Data Model Pavel Binko, LHCb / CERN 1 LHCb Software Week LHCb Event Data Model Pavel Binko LHCb / CERN.
Software Design Derived from Dr. Fawcett’s slides CSE784 – Software Studio Fall 2009.
Athena Tutorial: Liquid Argon Example ATHENA The ATLAS Control Framework Tutorial: Liquid Argon Example Based on original by S. Rajagopalan BNL.
LoKi & Bender Smart & transparent physics analysis Vanya Belyaev CERN & ITEP/Moscow.
27/02/04 ATLAS weekTileCal Athena tutorial, part 21 TileCal Athena tutorial Part 2: Reading GEANT hits from ZEBRA and POOL Reading HLT and testbeam ByteStream.
Gaudi Framework Tutorial, Algorithm Tools: what they are and how to use them.
Gaudi Framework Tutorial, April Histograms And N-tuples.
9 Associators How to relate objects to each other Create relations Save relations Use relations: Associators.
Kali Calo progress report Dasha Savrina (ITEP/Moscow), Vanya Belyaev.
Athena StoreGate Tutorial: May 30, Objectives Learn how to access data objects using StoreGate How to record/retrieve by TYPE Optionally using keys.
Nikhef Bfys Workshop Day One: Exploring a (m)DST Juan Palacios
FILES AND EXCEPTIONS Topics Introduction to File Input and Output Using Loops to Process Files Processing Records Exceptions.
Gaudi Framework Tutorial, April Histograms And N-tuples.
Elements of LCG Architecture Application Architecture Blueprint RTAG 8 th June 2002 P. Mato / CERN.
© 2015 Ex Libris | Confidential & Proprietary Yoel Kortick Senior Librarian Cataloging introductory flow.
Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN.
New Xml Converters General presentation of Xml converters The old way
“Algorithm Tools” what they are, how to get them and how to use them
CARA 3.10 Major New Features
Writing Physics Tools Schedule: Timing Topic 20 minutes Lecture
CSE 143 Introduction to C++ [Appendix B] 4/11/98.
Status of the Track Event Model Classes and Tools E. Rodrigues, NIKHEF
LHCb Software Tutorial
Cataloging introductory flow
Topics Introduction to File Input and Output
ms vısual studıo 2008-Introductıon TUTORIAL
Units with – James tedder
Topics Introduction to File Input and Output
Presentation transcript:

Proposal for extension of GaudiAlgorithm and GaudiTool classes Vanya Belyaev CERN & ITEP/Moscow

19 Jan'2k+4 Vanya Belyaev CERN & ITEP/Moscow 2 Known base classes ITCheckAlgorithm ITCheckAlgorithm ITCheckers ITCheckers OTMonitorAlgorithm OTMonitorAlgorithm OTAlgorithms OTAlgorithms RichAlgBase RichAlgBase RichUtils RichUtils TrAlgorithm TrAlgorithm TrKernel TrKernel TrgAlgorithm (?) TrgAlgorithm (?) ? CaloAlgorithm CaloAlgorithm CaloKernel CaloKernel DaVinciAlgorithm DaVinciAlgorithm DaVinciTools DaVinciTools LoKi::Algo LoKi::Algo LoKi LoKi GaudiAlgorithm GaudiAlgorithm GaudiAlg GaudiAlg What else? What else? GiGaTool GiGaTool GiGa RichToolBase RichToolBase RichUtils “Gaudies” “Gaudies” CaloTool CaloTool CaloKernel GaudiTool GaudiTool GaudiTools Try to identify “common” methods and implement them into “standard” base classes GaudiAlgorithm and GaudiTool

19 Jan'2k+4 Vanya Belyaev CERN & ITEP/Moscow 3 Proposal for extended common base(s) Initial proposal have been based mainly on CaloAlgorithm and LoKi::Algo classes Initial proposal have been based mainly on CaloAlgorithm and LoKi::Algo classes (Unexpectedly) active discussion through (Unexpectedly) active discussion through Thanks to Chris, Matt, Marco, Jose Angel, Olivier, Philippe and “heavy gun” Markus Thanks to Chris, Matt, Marco, Jose Angel, Olivier, Philippe and “heavy gun” Markus 2 iterations of proposal 2 iterations of proposal Attacked problems Attacked problems Error/Warning handling Error/Warning handling Easy/efficient printout Easy/efficient printout The largest discussion, Not addressed in the initial proposal. Data retrieval Data retrieval No feedback at all Location of services/tools Location of services/tools Histograms Histograms N-tuples N-tuples General class hierarchy GaudiAlgorithm/GaudiTool GaudiAlgorithm/GaudiTool GaudiHistoAlg GaudiHistoAlg GaudiTupleAlg GaudiTupleAlg

19 Jan'2k+4 Vanya Belyaev CERN & ITEP/Moscow 4 Error/Warning handling Interface: StatusCode Error( message,code, max print ) const ; Code: if(a<0){return Error(“a < 0”);} If(a>0){ Warning(“a>0”); } Statistics at the end of job: MyAlg SUCCESS Exceptions/Errors/Warning 0/1/1 MyAlg SUCCESS #ERRORS =551 Message=’a<0’ MyAlg SUCCESS #WARNING =145 Message=‘a>0’ Maximal number of printouts Maximal number of printouts Error codes, file name and line number appears in the message Error codes, file name and line number appears in the message Statistics at the end of the job Statistics at the end of the job Handling of assertions and exceptions in a similar way Handling of assertions and exceptions in a similar way

19 Jan'2k+4 Vanya Belyaev CERN & ITEP/Moscow 5 Easy/Efficient printout Interface: bool msgLevel( MSG::Level lev ) const ; MsgStream& err() const ; Code: if( msgLevel( MSG::DEBUG ) ) { /* do something */ } err() << “ Error message” << endreq; The largest discussion, solutions are not perfect The largest discussion, solutions are not perfect Any printout is a just matter of taste Few aspects: Few aspects: avoid extra creation of MsgStream, avoid extra formatting conversion from numeric types to string type easy formatting for e.g extension of error messages Use msgLevel( MSG::Level ) Use msgLevel( MSG::Level ) Chris Chris Use predefined streams: Use predefined streams: err(), info(), debug()… Markus Markus Use lexical_cast Use lexical_cast Use boost::format Use boost::format

19 Jan'2k+4 Vanya Belyaev CERN & ITEP/Moscow 6 Data handling Interface: template template DATA* get(IDataProviderSvc* s,const std::string& addr) const ; template template DATA* get( const std::string& address ) const StatusCode put ( DataObject*, const std::string& addr ) const; Code: MCParticles* p = get ( MCParticlesLocation::Default ); put( new MCVertices(), “MC/MyNonStandardVertices” ); Guaranteed to return valid data (no checks are necessary) Guaranteed to return valid data (no checks are necessary) No discussion at all No discussion at all No interest ? Is it just perfect?

19 Jan'2k+4 Vanya Belyaev CERN & ITEP/Moscow 7 Location of Services and tools Interface: template template TOOL* tool( type, name, parent, createIf ) const ; Template Template TOOL* tool (typename, parent, createIf ) const ; Template Template SVC* svc ( name, createIf ) const Code: const IMyTool* m1 = tool ( “MyToolType/MyToolName” ) ; IMyTool* m2 = tool (“MyToolType”, “MuToolName”, this ); IGiGaSvc* gs = svc ( “GiGa” ); No need to release tools/services acquired with these methods No need to release tools/services acquired with these methods Additional methods for forced manual release of acquired tools Additional methods for forced manual release of acquired tools

19 Jan'2k+4 Vanya Belyaev CERN & ITEP/Moscow 8 Histograms Interface:AIDA::IHistogram1D* plot( value, title, low, high, #bins, weight ) const AIDA::IHistogram1D* plot( value, ID, title, low, high, #bins weight ) const ; Code: plot( pt /GeV, “ PT “, 0, 10 ); plot( mass / GeV, 10, “ Mass ”, 0, 5 ); // with implicit loop plot( PT, p->begin(), p->end(), “ PT_1 ”, 0, 10 ); Book on-demand, but pre-booking is possible Book on-demand, but pre-booking is possible Directory: “TopDir”/”Dir”, both are properties of algorithm, Directory: “TopDir”/”Dir”, both are properties of algorithm, Default value is “AlgName”

19 Jan'2k+4 Vanya Belyaev CERN & ITEP/Moscow 9 Tuples Interface: Tuple ntuple ( title, CLID = CLID_ColumnWise ) const ; Tuple ntuple ( ID, title, CLID = CLID_ColumnWise ) const ; Code: Tuple tuple = ntuple(“MyN-tuple”); tuple->column(“mass”, mass / GeV ); tuple->column(“PT”, pt / GeV ); tuple->fill(“PX,PY,PZ”, PX,PY,PZ); // for array-like columns Tuple->farray( … ); Basic types float and long (to allow the analysis in PAW) Basic types float and long (to allow the analysis in PAW) Column-Wise and Row-Wise tuples are available Column-Wise and Row-Wise tuples are available Array-like columns only for Column-Wise tuples Book on-demand, but pre-booking is possible Book on-demand, but pre-booking is possible Shortcuts for HepVector3D, HepLorentzVector, etc. Shortcuts for HepVector3D, HepLorentzVector, etc. By product: the same technique/class for Event Tag Collections By product: the same technique/class for Event Tag Collections

19 Jan'2k+4 Vanya Belyaev CERN & ITEP/Moscow 10 Time scale and summary A lot of very useful suggestions A lot of very useful suggestions Up to now there are no show-stoppers Up to now there are no show-stoppers Are we close to the consensus ? Are we close to the consensus ? 90% of proposed functionality is implemented 90% of proposed functionality is implemented Scattered a bit through different places Scattered a bit through different places Rich, OT/IT, Calo, LoKi, … Rich, OT/IT, Calo, LoKi, … Remaining 10% is easy to implement Remaining 10% is easy to implement Few minor fixes in Gaudi itself, namely “hash” and few others Few minor fixes in Gaudi itself, namely “hash” and few others Timescale few weeks seems to be realistic Timescale few weeks seems to be realistic Before start of pre-production surprises Before start of pre-production surprises Gaudi v14r1 can be a goal Gaudi v14r1 can be a goal Nobody is forced to modify the existing code Nobody is forced to modify the existing code All “old” features are still available All “old” features are still available For new code the usage of new features is recommended For new code the usage of new features is recommended Smooth transition Smooth transition