Presentation is loading. Please wait.

Presentation is loading. Please wait.

LHCb Software Vanya BELYAEV Vanya BELYAEV. Preface It is NOT a tutorial for beginners It is NOT a tutorial for beginners If you need – the tutorial will.

Similar presentations


Presentation on theme: "LHCb Software Vanya BELYAEV Vanya BELYAEV. Preface It is NOT a tutorial for beginners It is NOT a tutorial for beginners If you need – the tutorial will."— Presentation transcript:

1 LHCb Software Vanya BELYAEV Vanya BELYAEV

2 Preface It is NOT a tutorial for beginners It is NOT a tutorial for beginners If you need – the tutorial will follow If you need – the tutorial will follow It is NOT a tutorial for advanced users It is NOT a tutorial for advanced users If you need – the tutorial could be organized If you need – the tutorial could be organized It is NOT an commercial for new or advanced software It is NOT an commercial for new or advanced software It is just some general “introduction” It is just some general “introduction” Introduction to the Terminology? Introduction to the Terminology? One does not need be a software expert One does not need be a software expert One does not need know well LHCb One does not need know well LHCb 10 Oct'2k+7 Syracuse Vanya BELYAEV 2

3 The language LHCb software is mainly OO: LHCb software is mainly OO: C++ C++ Blueprint-1998 has stated the possibility to keep/(re)use Java and Blueprint-1998 has stated the possibility to keep/(re)use Java and Was very promising and attractive at the end of XX. There were even speculations to build pure Java framework Was very promising and attractive at the end of XX. There were even speculations to build pure Java framework Set certain limitation for the software structure and many conventions, which are a bit cryptic now Set certain limitation for the software structure and many conventions, which are a bit cryptic now Java is dead Java is dead Python appears to be very attractive and gets more and more fans in LHCb Python appears to be very attractive and gets more and more fans in LHCb Appears to be well consistent with C++ code due to easy coexistence of C++ and python Appears to be well consistent with C++ code due to easy coexistence of C++ and python Now: C++, Python and a little bit of pure C Now: C++, Python and a little bit of pure C 10 Oct'2k+7 Syracuse Vanya BELYAEV 3

4 The concept Different applications: Different applications: Simulation Simulation Digitization Digitization Reconstruction Reconstruction Physics Analysis Physics Analysis Event Display Event Display One common framework has many advantages: One common framework has many advantages: Share the common work, define proper common conventions and rules, reuse the experience, lines and all goodies form your colleagues, avoid duplication of lines and bugs Share the common work, define proper common conventions and rules, reuse the experience, lines and all goodies form your colleagues, avoid duplication of lines and bugs Shorten the learning curve Shorten the learning curve 10 Oct'2k+7 Syracuse Vanya BELYAEV 4

5 Many reusable components Detector/Material Description: Detector/Material Description: Simulation, Reconstruction, Event Display Simulation, Reconstruction, Event Display Particle Description/Particle Properties Particle Description/Particle Properties Simulation, Analysis, Event Display Simulation, Analysis, Event Display Magnetic field description Magnetic field description Simulation, Reconstruction and analysis Simulation, Reconstruction and analysis More Basic stuff, like statistical analysis, Histograms, N-tuples, Counters, Printout,… More Basic stuff, like statistical analysis, Histograms, N-tuples, Counters, Printout,… Many purely technical, but important stuff, like profiling, configuration, … Many purely technical, but important stuff, like profiling, configuration, … 10 Oct'2k+7 Syracuse Vanya BELYAEV 5

6 LHCb major applications 10 Oct'2k+7 Syracuse Vanya BELYAEV 6

7 Simulation: Gauss Two major phases Two major phases Event generation: Event generation: Event production Event production Pythia Pythia Weak decays Weak decays EvtGen EvtGen Options: Hijing, Herwig(++), Sherpa, Alpgen, HiddenValley, BcVegPy Options: Hijing, Herwig(++), Sherpa, Alpgen, HiddenValley, BcVegPy Detector simulation: Detector simulation: “GiGa” “GiGa” Geant4 toolkit Geant4 toolkit 10 Oct'2k+7 Syracuse Vanya BELYAEV 7

8 Gauss (ii) We do not have any concrete C++ lines for Gauss We do not have any concrete C++ lines for Gauss except HPD Quantum efficiency except HPD Quantum efficiency Automatic conversion of Geometry Automatic conversion of Geometry The most painful part of Geant4 is eliminated The most painful part of Geant4 is eliminated “The physics” is specified through configuration “The physics” is specified through configuration Difficult but much easier than C++ Difficult but much easier than C++ Input: none or “world wide standard format” Input: none or “world wide standard format” At least one theoretician knows it At least one theoretician knows it Output: Output: Generator Particles + vertices Generator Particles + vertices Monte Carlo Particles and Vertices and Hits Monte Carlo Particles and Vertices and Hits All above plus almost all secondaries from interactions All above plus almost all secondaries from interactions Smart algorithm for selection (need time to describe)… Smart algorithm for selection (need time to describe)… 10 Oct'2k+7 Syracuse Vanya BELYAEV 8

9 Digitization: Boole Again two phases: Again two phases: Convert Monte Carlo hits into “Digits” Convert Monte Carlo hits into “Digits” with few possible next steps, e.g. to “Clusters” with few possible next steps, e.g. to “Clusters” The concept if detector-dependent The concept if detector-dependent Emulate the raw data from detector (TELL1 boards), the input to Event Filter Farm Emulate the raw data from detector (TELL1 boards), the input to Event Filter Farm “Raw Bank” “Raw Bank” For some detectors (VELO) this format is VERY advanced. It is not the individual strips, it is already the clusters.. For some detectors (VELO) this format is VERY advanced. It is not the individual strips, it is already the clusters.. For some detectors is it just a Digits… For some detectors is it just a Digits… zero-suppressed or not.. zero-suppressed or not.. The output: Raw-tapes with Raw-banks The output: Raw-tapes with Raw-banks 10 Oct'2k+7 Syracuse Vanya BELYAEV 9

10 Reconstruction: Brunel Reconstruction: the phases are implicit and only partly ordered Reconstruction: the phases are implicit and only partly ordered There are also some “formal” phases, interesting only from pure computing point of view, thus out of discussion today There are also some “formal” phases, interesting only from pure computing point of view, thus out of discussion today Unpacking input data from Raw Bank Unpacking input data from Raw Bank Perform 0-suppression, if needed Perform 0-suppression, if needed The first pass of reconstruction, tracks-independent The first pass of reconstruction, tracks-independent Reconstruct the tracks Reconstruct the tracks The second pass: track dependent actions The second pass: track dependent actions Output: Various kind DST tapes: DST and rDST with tracks, proto-particles and some additional PID info. Output: Various kind DST tapes: DST and rDST with tracks, proto-particles and some additional PID info. 10 Oct'2k+7 Syracuse Vanya BELYAEV 10

11 Analysis: DaVinci Make a physics analysis Make a physics analysis The natural phases: The natural phases: Create Particles from Create Particles from Proto-Particles Proto-Particles Make the analysis itself… Make the analysis itself… Essentially the collection of various tools (e.g. vertex fit, mass-vertex fit, lifetime fit, etc) Essentially the collection of various tools (e.g. vertex fit, mass-vertex fit, lifetime fit, etc) Output: Histograms, N-Tuples, Event Tag collections, (nano,micro,mini,reduced,full)DSTs, … Output: Histograms, N-Tuples, Event Tag collections, (nano,micro,mini,reduced,full)DSTs, … 10 Oct'2k+7 Syracuse Vanya BELYAEV 11

12 Trigger: Moore Trigger reconstruction: Trigger reconstruction: Runs both online and offline Runs both online and offline Special version of reconstruction: Special version of reconstruction: Partial Partial Induced by the L0 information Induced by the L0 information Essentially no or greatly reduced PID Essentially no or greatly reduced PID Still not clear now Still not clear now HLT selections: HLT selections: Simplified version with loose cuts of algorithms for “the final” event selection Simplified version with loose cuts of algorithms for “the final” event selection 10 Oct'2k+7 Syracuse Vanya BELYAEV 12

13 Event Display: Panoramix Event Display (and a bit more) Event Display (and a bit more) Visualization of Visualization of Detector Data Detector Data Event Data: Event Data: Particles, Vertices, hits, digits, clusters, links to Monte Carlo truth Particles, Vertices, hits, digits, clusters, links to Monte Carlo truth Statistical Data + Statistical Analysis Statistical Data + Statistical Analysis Initially GUI Initially GUI Many scripting abilities (command line) Many scripting abilities (command line) …, Python, … …, Python, … 10 Oct'2k+7 Syracuse Vanya BELYAEV 13

14 Python is cool! Python converts Panoramix into almost universal interactive environment Python converts Panoramix into almost universal interactive environment Interactivity Interactivity Data Access & Inspection Data Access & Inspection Use of underlying C++ tools and algorithms Use of underlying C++ tools and algorithms The great flexibility The great flexibility Easy to start Easy to start Many enthusiasts Many enthusiasts Appears to be very friendly and useful Appears to be very friendly and useful 10 Oct'2k+7 Syracuse Vanya BELYAEV 14

15 Bender Interactive Python-based physics analysis environments Interactive Python-based physics analysis environments Combines Python + LoKi: Combines Python + LoKi: Nice semantics and interactivity Nice semantics and interactivity Ideal for Ideal for Prototyping Prototyping Supervising Supervising 10 Oct'2k+7 Syracuse Vanya BELYAEV 15

16 LoKi Toolkit for easy and user-friendly physics analysis Toolkit for easy and user-friendly physics analysis Try to hide the technicalities Try to hide the technicalities Concentrate on physics needs Concentrate on physics needs Make the perfect match between physics algorithm and C++ Make the perfect match between physics algorithm and C++ 1 page of cuts description -> 1 page of pseudocode 1 page of cuts description -> 1 page of pseudocode 1 idiom corresponds to O(1) line of code 1 idiom corresponds to O(1) line of code The actual base for new trigger implementation The actual base for new trigger implementation Generic part “HLT alleys” Generic part “HLT alleys” Exclusive part Exclusive part Many features appear initially in LoKi and then migrate to other projects: Gaudi, Tracking, Trigger, DaVinci, … Many features appear initially in LoKi and then migrate to other projects: Gaudi, Tracking, Trigger, DaVinci, … And the process continues And the process continues 10 Oct'2k+7 Syracuse Vanya BELYAEV 16

17 Other applications ONLINE, EULER, ORWELL, VETRA, Alignment, … ONLINE, EULER, ORWELL, VETRA, Alignment, … ALL of them (except Bender & Panoramix) are just preconfigured Gaudi application ALL of them (except Bender & Panoramix) are just preconfigured Gaudi application The same executable for all applications The same executable for all applications Everything is loaded dynamically (and often only on-demand) Everything is loaded dynamically (and often only on-demand) One can combine all application in one go (if needed) One can combine all application in one go (if needed) 10 Oct'2k+7 Syracuse Vanya BELYAEV 17

18 Gaudi Framework Definition Framework Definition An architectural pattern that codifies a particular domain. It provides the suitable knobs, slots and tabs that permit clients to use and adapt to specific applications within a given range of behavior. An architectural pattern that codifies a particular domain. It provides the suitable knobs, slots and tabs that permit clients to use and adapt to specific applications within a given range of behavior. In practice In practice A skeleton of an application into which developers plug in their code and provides most of the common functionality. A skeleton of an application into which developers plug in their code and provides most of the common functionality. 10 Oct'2k+7 Syracuse Vanya BELYAEV 18

19 Framework benefits Common vocabulary, better specifications of what needs to be done, better understanding of the system. Common vocabulary, better specifications of what needs to be done, better understanding of the system. Low coupling between concurrent developments. Smooth integration. Organization of the development. Low coupling between concurrent developments. Smooth integration. Organization of the development. Robustness, resilient to change (change-tolerant). Robustness, resilient to change (change-tolerant). Fostering code re-use Fostering code re-use 10 Oct'2k+7 Syracuse Vanya BELYAEV 19

20 Gaudi GAUDI is an architecture and framework for event-processing applications (simulation, reconstruction, etc.) GAUDI is an architecture and framework for event-processing applications (simulation, reconstruction, etc.) Initially developed for LHCb, it has been adopted and extended by ATLAS and adopted by several other experiments including GLAST and HARP Initially developed for LHCb, it has been adopted and extended by ATLAS and adopted by several other experiments including GLAST and HARP Main Design Choices Main Design Choices Separation between “data” and “algorithms” Separation between “data” and “algorithms” Three basic categories of “data”: event data, detector data, statistical data Three basic categories of “data”: event data, detector data, statistical data Separation between “transient” and “persistent” representations of data Separation between “transient” and “persistent” representations of data Data store-centered (“blackboard”) architectural style Data store-centered (“blackboard”) architectural style “User code” encapsulated in few specific places “User code” encapsulated in few specific places Well defined component “interfaces” Well defined component “interfaces” 10 Oct'2k+7 Syracuse Vanya BELYAEV 20

21 How it works 10 Oct'2k+7 Syracuse Vanya BELYAEV 21

22 And stop here… Here I prefer to stop for today. Here I prefer to stop for today. The next possible steps/options: The next possible steps/options: The basic Gaudi tutorial The basic Gaudi tutorial with optional hands-on session with optional hands-on session Analysis tutorials: Analysis tutorials: The basic DaVinci tutorial The basic DaVinci tutorial The basic LoKi tutorial The basic LoKi tutorial The basic Bender (GaudiPython) tutorial The basic Bender (GaudiPython) tutorial All of them with optional hands-on session All of them with optional hands-on session How to proceed? How to proceed? Who needs them? Who needs them? 10 Oct'2k+7 Syracuse Vanya BELYAEV 22


Download ppt "LHCb Software Vanya BELYAEV Vanya BELYAEV. Preface It is NOT a tutorial for beginners It is NOT a tutorial for beginners If you need – the tutorial will."

Similar presentations


Ads by Google