LHCb Event Model Review


This page and connected pages document the Event Model review that took place in summer and autumn 2005. Its contents document the event model at the time of the review. This is not an up to date documentation of the many event model changes that took place after the review


The LHCb event model classes are the basis of our software. Changes to these classes make it very difficult to maintain backward compatibility of our software. Starting to modify these classes during data taking is not recommended. But even modifying them next year should be avoided as much as possible, because the the last big MC data production is supposed to start ~January 2006, and not being able to use this data set for exercising our reconstruction, trigger and analysis software before the beam starts would be a pity.

It is therefore important that we have a serious review of all the different event model classes and having the required modifications in place at the end of this year (2005).

It is quite some effort to have this review, but we are confident that it will pay off when data taking starts. Rather than nominating a few people reviewing everything, the proposal is to share the work of reviewing among all subsystems. Please find below the proposed division of work and planning.

Some guidelines for the review

  • Are there any classes that are obsolete (no longer used anywhere)

  • Are there any classes that are unneccessary (e.g. xxDigits, since one could access RawBuffer directly)

  • Are there any unnecessary data members (e.g., for MCRichHits, inheritance to MCHits was removed because exit point does not make sense)

  • Are there data members that could usefully be added

  • For a given output format (Sim, Digi, Dst) are there "summary" classes that could be added, allowing removal of more bulky information (e.g. Velo dEdx would allow removal of VeloClustersOnTrack)

  • Is there commonality between classes (e.g. can we simplify by adopting MCHit in Velo and Muon)?

  • Is structure in TES reasonable (e.g. multiple containers for Muon...)

  • Can something be gained in Raw/L1 bank formats

  • How are relations to other classes done?
    • Usage of SmartRef (can it be minimised, use key instead ?)
    • Are all necessary Linker associators available?

  • Do we always need KeyedObject (maybe some can be simple objects in a std::vector DataObject?)

  • Is anything handcoded that could be generated by G.O.D. (either with existing directives or simple new features)

  • Design issues:
    • Usage of C++ concepts
    • Efficiency for usage in code

  • Identify the use of CLHEP Vector, Geometry and Matrix classes. How easy or difficult will it be to migrate to the new MathLib libraries? A preliminary list of CLHEP uses in the Event Model classes can be found in this TWiki.
    • Used in implementation?
    • Used in public interface?
    • Used in interaction with code external to the package under review?
-- JuanPalacios - 28 Jul 2005

Division of work

The proposal is to divide the work in the following way:

LHCb generic base classes:

LHCbID, RawBuffer, L1Buffer

  • information provider: Marco Cattaneo, help from Eduardo Rodrigues Figueiredo, Jose A. Hernando, Helder Lopes
  • Information sources: See LHCbID, RawBuffer, L1Buffer
  • Reviewers: Chris Jones, Gloria Corti


  • information providers: subsystems
  • Reviewers: Marco Cattaneo, Gloria Corti

Persistent base classes (DataObject, Keyed Objects)

  • Information provider: M.Frank
  • Reviewers: Olivier Callot, Stefan Roiser
  • Comments


  • Information provider: Olivier Callot
  • Information sources: LHCb Note 2005-018 and doxygen
  • Reviewers: Markus Frank, Patrick Koppenburg

Rdst, Data compression :

  • Reviewers: Markus Frank, Stefan Roiser


PHYS + Parts of MC model (Collision HepMCEvent HardInfo GenCollision MCParticle GenMCLink MCVertex MCEffTree MCProperty)

  • Information provider: Physics event model task force (Patrick Koppenburg et al.). See Physics Event Model Task Force pages.
  • Reviewers: Done internally by task force, detailed report during September LHCb software week




  • Information provider: Jacopo Nardulli
  • Information source: See OTEventModel
  • Reviewers: Chris Parkes, Juan Palacios


  • Information provider: Chris Jones
  • Information sources: For details on the RICH Event model, see RichEventModel. For more details on the overall software structure, see RichSoftware.
  • Event Model Discussions.
  • Reviewers: Matt Needham, Alessia Satta



  • Information provider: Olivier Deschamps
  • Information sources: see CaloEventModel.
  • Reviewers: Olivier Leroy, Chris Jones

L0, L1, HLT :

  • Information provider: Olivier Callot, Thomas Schietinger, Patrick Koppenburg
  • Information sources: see L0EventModel, HLT class documentation (a note will follow soon).
  • Reviewers: Olivier Deschamp, Alessia Satta

Track event model:

  • Information provider: Eduardo Rodrigues Figueiredo, Jose A. Hernando
  • Information sources: see LHCbTrackModelTaskForce, Eduardo's tracking webpages
  • Review: Detailed presentation from track event model task force during September LHCb software week including feedback from current users of the new track event model


First phase, July:

The information providers set-up a web page with links to relevant information, provide explanations for specific implementations, etc. Please link the web page to this page

Second phase August-September:

The reviewers discuss, ask questions to the subsystems.

Third phase, LHCb software week:

The subsystems give a short summary about their event models. Followed by the report of the reviewers and discussions.


MarcoCattaneo - 05 Jul 2005
Edit | Attach | Watch | Print version | History: r35 < r34 < r33 < r32 < r31 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r35 - 2007-10-29 - StephenWotton
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback