Gaudi Framework Overview and The Daya Bay Experience
Brett Viren
Physics Department
Future Neutrino Software, FNAL 2009/3/13
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 1 / 37
Gaudi Framework Overview and The Daya Bay Experience Brett Viren - - PowerPoint PPT Presentation
Gaudi Framework Overview and The Daya Bay Experience Brett Viren Physics Department Future Neutrino Software, FNAL 2009/3/13 Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 1 / 37 Outline Gaudi Framework Overview What is a Software Framework?
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 1 / 37
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 2 / 37
Gaudi Framework Overview What is a Software Framework?
◮ Defines the playground and helps the user play in it.
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 3 / 37
Gaudi Framework Overview A Brief History of Gaudi
◮ ATLAS: Gaudi + ATLAS-specific code = “Athena”. ◮ FGST (ne´
1Thanks go to Pere Mato, any omission is my fault. Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 4 / 37
Gaudi Framework Overview Gaudi Components
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 5 / 37
Gaudi Framework Overview Gaudi Components
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 6 / 37
Gaudi Framework Overview Gaudi Components
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 7 / 37
Gaudi Framework Overview Gaudi Components
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 8 / 37
Gaudi Framework Overview Gaudi Components
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 9 / 37
Gaudi Framework Overview Gaudi Components
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 10 / 37
Gaudi Framework Overview Job Configuration
2An older C++-like text format is also available. Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 11 / 37
Gaudi Framework Overview Job Configuration
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 12 / 37
Gaudi Framework Overview Gaudi Software Management
◮ Minimal (no POOL for I/O): AIDA, Boost, GSL, HepMC, HepPDT,
◮ POOL I/O brings in others, including products from CERN. ◮ Can get binary externals from CERN for some platforms or can build
3http://www.cmtsite.org/ Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 13 / 37
Gaudi Framework Overview Gaudi Software Management
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 14 / 37
The Daya Bay Experience with Gaudi
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 15 / 37
The Daya Bay Experience with Gaudi The Experiment
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 16 / 37
The Daya Bay Experience with Gaudi The Experiment
◮ SVN and Trac4 hosted by IHEP ◮ Mailing lists and MySQL database hosted by LBL ◮ MediWiki and Doxygen hosted by BNL 4A truly useful bug tracker! Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 17 / 37
The Daya Bay Experience with Gaudi Offline Software Strategy
◮ Well suited for initial results, fast turn-around ◮ Brought us to the TDR stage ◮ Obvious we could not continue with that “design”
◮ IceCube’s IceTray framework, ◮ MINOS’s framework, ◮ Starting fresh and ◮ Gaudi (obviously)
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 18 / 37
The Daya Bay Experience with Gaudi Offline Software Strategy
◮ Spoke to users of Gaudi in BNL’s ATLAS group: “easy for users, needs
◮ Don’t use the parts that are not needed
◮ Well, for a user, that is sort of the point. ◮ And, for a “core” software developer, it isn’t that hard to understand
◮ Damn right they are! This was probably the largest technical hurdle. ◮ You’ll get over it. Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 19 / 37
The Daya Bay Experience with Gaudi Offline Software Strategy
◮ We have platforms that were/are not supported by CERN
◮ GaudiObjDesc - define data model classes ◮ DetDesc - XML based detector geometry and materials description ◮ GiGa - interface Geant4 to Gaudi ◮ Panoramix - geometry visualization, maybe one day event display ◮ Some interest to move some of this into Gaudi proper.
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 20 / 37
The Daya Bay Experience with Gaudi Compilations
◮ Each package handled by a dedicated sub-script ◮ Driven by LCGCMT requirements files, adapts to new versions. ◮ Allows patching or platform-specific builds where needed
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 21 / 37
The Daya Bay Experience with Gaudi Compilations
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 22 / 37
The Daya Bay Experience with Gaudi Software Walk Through
◮ Kinematic Generators (homegrown) ◮ Detector Simulation (LHCb’s GiGa) ◮ Electronics Simulation (homegrown) ◮ Trigger Simulation (homegrown) ◮ DAQ Readout Simulation (homegrown)
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 23 / 37
The Daya Bay Experience with Gaudi Software Walk Through
◮ Header file ◮ Reflex ROOT/Python dictionaries
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 24 / 37
The Daya Bay Experience with Gaudi Software Walk Through
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 25 / 37
The Daya Bay Experience with Gaudi Software Walk Through
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 26 / 37
The Daya Bay Experience with Gaudi Software Walk Through
<l o g v o l name=" lvAdPmtUnit " > <! -- step 1 -- > <physvo l name=" pvAdPmtUnit " l o g v o l="/dd/Geometry/PMT/lvPmtHemi" > <posXYZ x=" AdPmtRadialPos " z=" -0.5*( AdPmtNrings -1)* AdPmtZsep"/ > <rotXYZ rotY=" -90* degree" / > </ physv ol> </ l o g v o l> <l o g v o l name=" lvAdPmtRing " > <! -- step 2 -- > <paramphysvol number=" AdPmtNperRing " > <physvo l name=" pvAdPmtInRing:1 " l o g v o l="/dd/Geometry/AdPmts/ lvAdPmtUnit " / > <posXYZ/ > <rotXYZ rotZ=" AdPmtAngularSep " / > </ paramphysvol> </ l o g v o l> <l o g v o l name=" lvAdPmtArrayZero " > <! -- step 3 -- > <paramphysvol number=" AdPmtNrings " > <physvo l name=" pvAdPmtRingInCyl:1 " l o g v o l="/dd/Geometry/AdPmts/ lvAdPmtRing "/ > <posXYZ z="AdPmtZsep"/ > </ paramphysvol> </ l o g v o l> <l o g v o l name=" lvAdPmtArray " > <! -- step 4 -- > <physvo l name=" pvAdPmtArray " l o g v o l="/dd/Geometry/AdPmts/ lvAdPmtArrayZero " > <posXYZ/ > <rotXYZ rotZ="0.5* AdPmtAngularSep "/ > </ physv ol> </ l o g v o l>
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 27 / 37
The Daya Bay Experience with Gaudi Software Walk Through
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 28 / 37
The Daya Bay Experience with Gaudi Software Walk Through
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 29 / 37
The Daya Bay Experience with Gaudi Software Walk Through
◮ GiGa converts DetDesc to Geant4 geometry and material objects ◮ Optical properties tunable in XML w/out touching C++ ◮ Sensitive detectors named in DetDesc matched to C++ class,
◮ Physics lists & actions (stack, step, track, etc) ◮ Multiple actions of a given type possible. ◮ Easier configuration than G4’s “Messenger” mechanism.
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 30 / 37
The Daya Bay Experience with Gaudi Software Walk Through
◮ Alternative processor
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 31 / 37
The Daya Bay Experience with Gaudi Software Walk Through
◮ →Framework needs to support a look-back in time
◮ Radioactive decays, cosmogenic products, inverse-β decay signal events. ◮ Overlaps due to detector extent, electronic delays/resolutions,
◮ →Simulation must properly mix and overlap events from different
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 32 / 37
The Daya Bay Experience with Gaudi Software Walk Through
5These may be non-issues now. Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 33 / 37
The Daya Bay Experience with Gaudi Software Walk Through
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 34 / 37
The Daya Bay Experience with Gaudi Software Walk Through
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 35 / 37
The Daya Bay Experience with Gaudi Software Walk Through
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 36 / 37
The Daya Bay Experience with Gaudi Software Walk Through
Brett Viren (BNL) Gaudi/Daya Bay 2009/3/13 37 / 37