TWiki> LHCb Web>LHCbComputing>DaVinciDC06Migration (revision 22)EditAttachPDF

DaVinci Migration to DC06 page


Code needed for DC06 stripping

The DC06 reconstruction and stripping will start beginning of June. The code has thus to be ready by the beginning of May to allow some time for testing.

To do:

  • Test all options-based pre-selections
  • Continue to review all code.
    • Remove obsolete stuff.
    • Avoid duplications of code. Always! No exceptions!
  • More details in the various packages.

Desired features non essential for DC06 stripping.

  • Split LoKi in pieces.
    • Merge DVAlgorithm and LoKi::Algo as much as possible.
    • Remove code duplications. In particular LoKi::Cuts and DaVinciFilter.
  • Adapt to python options.
  • Unify string parsing.


Status history

The doxygen of the latest version released of PHYS (v3r2) is available at

  • 21/07/2006 Essential code runs.
    • Test sttripping jobs select random events from rDST and produce event tag collections
    • New ParticleMakers
    • DaVinciAssociators
    • VertexFitters
    • CommonParticles tested for long-lived particles and J/Psi

  • 29/05: Essential core code compiles. DaVinci initializes and finalizes properly.
  • Working versions of MCParticleMaker, OfflineVertexFitter and BlindVertexFitter running and roughly tested with Gauss events.
  • Includes new LoKi packages.
  • Options-based DC06 pre-selection packages tuned on DC04 imported but not tested.

See doxygen to-do list and interface status.

Packages status

Warning: DC04 developments sit on a branch CVS branch DC04b. DC06 developments are in head.


In charge: DaVinci Librarian

Purpose: Contains all interfaces, DVAlgorithm and the PhysDesktop.

Status (20/04): Release v4r2. All interfaces have been translated to the new event model. DVAlgorithm and PhysDesktop compile. DVAlgorithm modified to allow LoKi::Algo to inherit from it. Possible to have full DVAlgorithm from LoKi::Algo.

Todo (longer time scale):


In charge: Patrick K.

Purpose: Transporter (extrapolator) tools for particles. Used to contain a lot of duplications of track extrapolators, but for Particles. Now that the track extrapolators extrapolate States one can translate any Particle to a State and back.

Status (20/04): DC06-compatible release v3r0. Created one tool ParticleTransporter that calls TrackExtrapolators depending on what kind of Particle to extrapolate. Should be able to replace all DC04 transporters. The geometry tools have been moved here and compile too.

To do (for DC06 stripping):

  • Test.
  • Check if any other transporters are needed.

Do not duplicate extrapolators code!


In charge: Global Particle ID Task Force

Purpose: Contains all tools making Particles from ProtoParticles.

Status (20/04):

Phys/VertexFit & Phys/VertexFitChecker

In charge: Yuehong Xie

Purpose: Vertex fitters and re-fitters.

Status (21/04): DC06-compatible release v3r0. OfflineVertexFitter (Yuehong) works for everything, including photons. Tested on 500 J/Psi(mumu)Ks events with MCParticleMaker. Nothing wrong seen so far. TrgVertexFitter compiles but is wholly untested. BlindVertexFitter (Vanya) implemented and tested. DirectionFitter, , PVRefitter implemented. Full functionality complete.


In charge: DaVinci librarian

Purpose: All FilterCriteria tools, the ParticleFilter tool and the FilterDesktop algorithm.

Status (20/04): DC06 release v5r1. Compiles and runs DLLFilterCriterion modified to use new ProtoParticleFilters

To do (for DC06 stripping):

  • Test.

  • Unify with LoKi::Cuts.


In charge: DaVinci Librarian

Purpose: All "other" tools and algorithms. In particular the MakeResonances algorithm.

Status (20/04): DC06-compatible release v14r1. Everything compiles and runs

To do (for DC06 stripping):

  • Test.
  • Unify string parsing.


In charge: Olivier Deschamps and DaVinci Librarian

Purpose: Package containing code to produce standard particles. Many options but also C++ for pi0 making.

Status (20/07): Options-based particles tested and working: stable charged particles and J/Psi. All others untested.

To do (for DC06 stripping):

  • Get Pi0-making to work. Ready as of 13 Sep 2006 (in $LHCBDEV)
  • Declare Pi0 to on-demand service. Ready as of 13 Sep 2006 (in $LHCBDEV)
  • Test and develop intermediate states.

Phys/FlavourTagging & Phys/FlavourTaggingChecker

In charge: Marco Musy

Purpose: Flavour tagging.

Status (20/04): Nothing Done. Not in Phys for now.

To do (for DC06 stripping):

  • Get it to compile.
  • Put in PHYS

  • Pre-selections or loose selecions could be OK for tagging.
  • Reasonable channel selections must be ready for checking.


In charge: Philippe Charpentier

Purpose: (Proto)Particle to MCParticle association code.

Status (20/04): Release v6r1 for DC06.

  • Use in tools: done, tested and committed

See also Interfaces


In charge: Stefania Vecchi for the MCParticleMaker. Vladimir Gligorov for BackgroundCategory. And for the rest DaVinci librarian

Purpose: All low-level tools and algorithm that need access to MC truth.

Status (20/04): DC06 version v7r1. New MCParticleMaker compiles, runs, creates Particles. Covariance matrix and Linker table between Particles and MCParticles implemented. Allows to test some code using Gauss events. Some trivial algorithms compile too. DebugTool and TrueMCFilterCriterion restored

To do (for DC06 stripping):

  • Test DebugTool
  • Test TrueMCFilterCriterion
  • Adapt Background category tool (Vava Glirorov). Promised for October 7th, 2006.
  • Phys/MCTools has been split. Check what is needed for DaVinci.
    • For instance MCDecayFinder.
  • Find who's responsible for the rest!

See also Interfaces


Orphan package

Purpose: Efficiency algorithms.

Status (20/04): Nothing done.

To do (for DC06 stripping):

  • Adapt to new event model.


In charge: Mariusz Witek

Purpose: Primary vertex efficiency algorithms. Can it go to REC ? Not in PHYS at the moment.

Status (20/04): Nothing done.


In charge: Mariusz Witek ?

Purpose: Buffer tampering algorithms.

Status (20/04): Nothing done. Wait for trigger to be there. Not in PHYS.


In charge: Patrick Koppenburg

Purpose: TisTosTobbing with Tampering algorithms. An alternative to Tampering.

Status (20/04): Nothing done. Wait for trigger to be there. Not in PHYS


In charge: Vanya Belyaev

Purpose: Smart and friendly C++ analysis toolkit. Interface to Bender.

Status (13/07):

  • v4r0 released and built in $LHCBDEV


In charge: DaVinci Librarian

Purpose: Stripping algorithm and python scripts.

Status (20/04): DC06-compatible v5r1. C++ compiles. Python produces correct stripping job options.

To do (for DC06 stripping):

  • Python script needs SERUOUS clean-up.


In charge: DaVinci Librarian

Purpose: Utility tools and algorithms not depending on DaVinciKernel.

Status (20/04): DC06-compatible release v3r0. Compiles.

To do (for DC06 stripping):

  • Test.


In charge: Physics Working Groups.

Purpose: Collect all preselections from stripping and offline selections for trigger and tagging developments.

Status (26/05): Few pre-selection packeges containing similar preselections decided upon (for exmple nop>PhysSel/Radiative, PhysSel/DiLepton...). Many pre-selections prepared with DC04 software and common particles and imported into PhysSel.

To do (for DC06 stripping):

  • Tune all preselections when reconstruction and PID ready.
  • PhysSel/Radiative not ready

Obsolete packages.

  • Phys/PhysSelections
  • Rec/RecoTools
  • All presently used PhysSel/*


Color coding:
Green: Tools that are ready for DC06.
Red: Tools that have no implementation ready.
Tools that have at least one implementation ready but need more work or testing.

Status of interfaces implementation in DaVinciKernel

IAlgorithm2ID (doxygen): implemented by Algorithm2ID. No other implementation needed.
IBestParticles (doxygen): implemented by KinBestParticles. No other implementation needed. This tool is hardly used. Could as well be removed.
IBTaggingTool (doxygen): not implemented yet. Mandatory tool for analysis.
ICheckOverlap (doxygen)
implemented by CheckOverlap and CheckVeloOverlap. CheckVeloOverlap un-tested
ICheckSelResults (doxygen): not implemented yet. Not high priority.
IDecayFinder (doxygen): implemented by DecayFinder
IDecodeSimpleDecayString (doxygen): implemented by DecodeSimpleDecayString. Would be nice to have a the decay descriptor syntax parsing shared between this tool and the DecayFinders.
IDirectionFit (doxygen): Implemented by DirectionFitter.
IFilterCriteriaTESTool (doxygen): implemented by FilterCriteriaTESTool.
IFilterCriterion (doxygen): implemented by BooleanFilterCriterion ByPIDFilterCriterion DaughterVertexFilterCriterion DLLFilterCriterion FlightDistanceFilterCriterion KinFilterCriterion LifetimeSignificanceCriterion MassDifferenceFilterCriterion MassFilterCriterion Momentum2FlightAngleFilterCriterion MomentumMotherDirectionFilterCriterion OverlapFilterCriterion PIDFilterCriterion PVIPFilterCriterion TrackTypeFilterCriterion VtxFilterCriterion VtxIsolationFilterCriterion TrueMCFilterCriterion
IGeomDispCalculator (doxygen): implemented by TrgDispCalculator and GeomDispCalculator.
IIDIPhotonFromMergedParams: not implemented. This tool should become a Particlemaker, shouldn't it?
IIDIPhotonParams: not implemented. This tool should become a Particlemaker, shouldn't it?
IJetMaker (doxygen): not implemented yet.
IKFFitTool (doxygen): not implemented yet. Needed for analysis.
ILifetimeFitter (doxygen): Implemented by PropertimeFitter.
IMassVertexFit (doxygen): not implemented yet. Needed for analysis.
IOnOffline (doxygen)
implemented by OnOfflineTool.
IParticleCombiner (doxygen): Used by IMassVertexFit and IVertexFit.
IParticleDescendants (doxygen): implemented by ParticleDescendants.
IParticleFilter (doxygen): implemented by ParticleFilter.
IParticleMaker (doxygen): implemented by CombinedParticleMaker, MCParticleMaker, NoPIDsParticleMaker, ParticleMakerSeq.
IParticleReFitter (doxygen): Used by IMassVertexFit, IVertexFit and IDirectionFit.
IParticleStuffer (doxygen): implemented by ParticleStuffer.
IParticleTransporter (doxygen): implemented by ParticleTransporter.
IPhotonFromMergedParams (doxygen): not implemented. This should should become a ParticleTransporter, right?
IPhotonParams (doxygen): not implemented. This should should become a ParticleTransporter, right?
IPhysDesktop (doxygen): implemented by PhysDesktop. The assignement of a Particle to a PV is missing.
IPlotTool (doxygen): implemented by RecursivePlotTool SimplePlotTool.
IPVReFitter (doxygen): Implemented by PVReffiter
ISecondaryVertexTool (doxygen): not implemented yet. Needed for analysis.
ITagger (doxygen): not implemented yet. Needed for analysis.
IVertexFit (doxygen): implemented by TrgVertexFitter, (untested), OfflineVertexFitter (Yuehong) and BlindVertexFitter (Vanya)

Status of interfaces implementation in DaVinciMCTools

IBackgroundCategory (doxygen): not implemented yet.
ICheatedLifetimeFitter (doxygen): not implemented yet. Wouldn't it make more sense to have the CheatedLifetimeFitter inherit from the same interface as the normal lifetime fitter?
IDebugTool (doxygen)
Implemented byDebugTool. Needs to be tested.


-- PatrickKoppenburg - 07 Feb 2006

Edit | Attach | Watch | Print version | History: r26 | r24 < r23 < r22 < r21 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r22 - 2006-11-17 - unknown
    • 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-2021 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