the ship perspective on root
play

The SHiP perspective on root Oliver Lantwin on behalf of SHiP. [ - PowerPoint PPT Presentation

The SHiP perspective on root Oliver Lantwin on behalf of SHiP. [ oliver.lantwin@cern.ch ] root Users Workshop, Sarajevo 2018-09-13 What is SHiP? Future experiment designed to look for super-weakly interacting new particles at the intensity


  1. The SHiP perspective on root Oliver Lantwin on behalf of SHiP. [ oliver.lantwin@cern.ch ] root Users’ Workshop, Sarajevo 2018-09-13

  2. What is SHiP? Future experiment designed to look for super-weakly interacting new particles at the intensity frontier with zero background. › Future experiment → What is the future of ROOT now will be ROOT when we run! Need to stay on top of developments! Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 2 115 m

  3. What is SHiP? Future experiment designed to look for super-weakly interacting new particles at the intensity frontier with zero background. › Young experiment → Little technical debt Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 2 115 m

  4. What is SHiP? Future experiment designed to look for super-weakly interacting new particles at the intensity frontier with zero background. › Zero background → Simulation of background crucial for success! Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 2 115 m

  5. What is SHiP? Future experiment designed to look for super-weakly interacting new particles at the intensity frontier with zero background. › Physically quite large → a lot of non-trivial structural, mechanical and civil engineering that we need to synchronise with ROOT Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 2 115 m

  6. FairShip Still fairly small collaboration → only few regular contributors to the software — mostly with lhcb background — and users from very different backgrounds › Can’t afford to re-invent the wheel! › Build on FairRoot , but wrap everything in Python! (for free, thanks to PyROOT !) Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 3

  7. FairShip Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 4 FairShip EvtGen FairRoot PHOTOSPP FairSoft Tauolapp generators FairMQ protobuf fl atbu ff ers simulation pythia DDS nanomsg googletest msgpack FairLogger zlib GEANT4_VMC HepMC lhapdf GEANT3 GENIE vgm Python-modules lhapdf5 yaml-cpp ROOT pythia6 GEANT4 Python boost Xdevel MySQL opengl GSL sqlite libpng FreeType AliEn-Runtime ZeroMQ log4cpp Xcode GCC-Toolchain

  8. Caveat ROOT and the hep ecosystem are currently very hard to separate: most of what I say applies to the combination of both. For context, I myself have recently used ROOT for the following: › Optimisation of detector geometry using simulation and Bayesian optimisation › Online data conversion/processing + monitoring › Background studies › Machine learning → sklearn &co., in particular scikit-optimize › Plotting (see later) › DAQ and early stages of online system for the muon fmux measurement Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 5 Where we don’t (always) use ROOT :

  9. “Do we need the ROOT dependency?” Frequent discussion with colleagues, especially with non-physicists ( e.g. engineers, software dev-ops, mathematicians), but also by old guard Example Muon shield optimisation: on dedicated cluster we use ROOT + Geant4 for simulation and our entire experiment stack only runs in Docker containers. Why can’t we just use numpy / ISO C99 / FORTRAN … — anonymous colleagues Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 6

  10. PyROOT › Magic when it works: can use Geant , Pythia etc. through ROOT and PyROOT , generates bindings for all of our C++ , e.g.: ROOT.TGeant4.GetMC()... › … but dependencies and C++ headers don’t always play nice › a lot of surprising behaviour › comprehensions etc. usually don’t (always) work › C++ singletons… › What will happen with Python 3? › PyROOT seems to be ready, but hep ecosystem is a mixed bag › pyROOT hijacks --help Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 7 › Need to keep in mind 3 different memory models: C++ , ROOT & Python

  11. The dependency problem have the manpower to live at head just yet root Users’ Workshop, Sarajevo Oliver Lantwin (Imperial College London) ROOT have confmicting typedef s in the global namespace Updating ROOT unfortunately always diffjcult. Current example: Geant4 and › Future: Some hep community standard? › especially “uncloning” diffjcult 8 › System package managers don’t work well for the hep software stack › Git repos for all dependencies, fork if necessary CMake nowadays state-less (mostly reproducible) builds, fmexible; most dependencies use › Now: Using ALICE’s aliBuild → clever dependency resolution, to maintain › The past: A collection of shell scripts to set up everything → Nightmare › Building from source similar to what Chandler suggests works, but don’t

  12. The real world Need to interface with many other tools: › Fluka › Opera › CAD (e.g. CATIA ) › … Currently TGeo + TVMC is the canonical geometry for simulation, interface with e.g Fluka using GDML › does not work for persistence of magnetic fjelds, need to recreate geometry to have correct magnetic fjelds for reconstruction of fjelds, so this will only get worse DD4HEP part of the answer? Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 9 › moving to fjeld maps from fjnite elements simulation and measurement

  13. Plotting Parts of the collaboration use: › PAW › ROOT › matplotlib &co. for plotting. [I personally use the last two + tikz .] Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 10

  14. Plotting Parts of the collaboration use: root Users’ Workshop, Sarajevo Oliver Lantwin (Imperial College London) 10 for plotting. [I personally use the last two + tikz .] › PAW › ROOT › matplotlib &co. /GeV Simulation Simulation 6 Entries Entries 1.778627e+07 1.778627e+07 T p Mean x Mean x 15.15 15.15 5 10 Mean y Mean y 0.4382 0.4382 5 Std Dev x Std Dev x 18.33 18.33 Std Dev y Std Dev y 0.2949 0.2949 10 4 4 3 10 3 10 2 2 10 1 0 1 0 50 100 150 200 250 300 350 p/GeV

  15. Plotting Parts of the collaboration use: root Users’ Workshop, Sarajevo Oliver Lantwin (Imperial College London) 10 for plotting. [I personally use the last two + tikz .] › PAW › ROOT › matplotlib &co. loss function 10 1 cumulative minimum loss rf cumulative minimum loss gb baseline 10 0 0 . 0 0 . 5 1 . 0 1 . 5 2 . 0 2 . 5 × 10 3 iteration

  16. Event display › Building an event display (or just displaying geometry) with root Users’ Workshop, Sarajevo Oliver Lantwin (Imperial College London) → Looking forward to web-based new graphics, VecGeom optimise for this use TEve / TGLViewer very cumbersome, extremely slow! Geometry hard to 11 ‘Final’ muon flux geometry Distance Goliath-muon tagger (RPCs) 199.5 cm Distance hadron absorber-Goliath 121 cm Distance T1-T2 (center) 63 cm Distance T3-T4 (center) 160 cm Beam counter T3 T4 1.6x1.6x1.6 cm 3 200x160x16 cm 3 Target Ø 10cm 17.86 cm up (T3,T4 & RPCs) 157.6 cm long Goliath y Muon tagger (RPCs) Hadron absorber 450x294x360 cm 3 x 240x240x240 cm 3 200x150x200 cm 3 T1 T2 z 50x100x54 cm 3 60° stereo angle T3, T4 and RPCs centered with 270µ resolution respect to Goliath center to maximise acceptance

  17. Personal nit-picks › <Ctrl-D> should quit root › Support for C++11 and idiomatic python loops for more structures? › Templates ≫ Pointer casting › RDataFrame error messages are completely unintelligible › TMultiGraph type system! › Once accidentally ran simulation with 500 T → very good muon shield performance Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 12 › TGeo / Geant4 units → Dream: dimensions/units could be enforced by

  18. ROOT killer features › Open source! root Users’ Workshop, Sarajevo Oliver Lantwin (Imperial College London) with dependencies being fjxed) › Always looking forward to being able to upgrade (i.e. to all problems › Very noticeable big and small improvements since then! Caveat: Started working with ROOT when ROOT6 was just getting started › Starting to really like RDataFrame and VecOps A non-exhaustive personal selection (that were not yet mentioned?): › PGF export › ROOT::MakeSeq() non-ROOT fjles!) › EOS integration good enough to forget where fjles are (even for › Magical interface between C++ and Python 13 › Interactive, proper C++ with ROOT6 (and --strict )

  19. ROOT team Workshop dinner 7:00 PM Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 14

  20. ROOT team Workshop dinner 7:00 PM Oliver Lantwin (Imperial College London) root Users’ Workshop, Sarajevo 14

Recommend


More recommend