|
This page last edited by
PK
on January 30, 2007
.
|
Last update refers to DaVinci v17r8
This page is essentially a set of links to the
Doxygen code documentation,
with some comments and some structuring. It is not a tutorial. Please go to the
Tutorial page for more material.
Sequencers
It's a good idea to embed all executed algorithms in a
GaudiSequencer. This allows skipping subsequent algorithms if an algorithm
hasn't found anything. It also provides a nice printout for timing.
Event Model
The Event model is defined in the
LHCb project. The most relevant classes for DaVinci are:
|
LHCb::Particle |
Particle of defined PID (assigned by the user).
Composite Particles contain links to vertex and to daughters. |
|
LHCb::ProtoParticle |
Not-yet-a-particle. 4-momentum and PID probabilities
but not a defined PID. See ParticleMaker below. |
|
LHCb::Vertex |
Vertex. Contains links to Particles used to make it. |
|
LHCb::RecVertex |
Vertex made of tracks. The PV is a RecVertex. |
|
LHCb::MCParticle |
MC true particle. |
|
LHCb::MCVertex |
MC true vertex. |
|
LHCb::ParticleID |
Particle ID. |
|
ParticleProperty |
Property of a given particle (in Gaudi). |
|
LHCb::RecHeader |
Event Header. |
LHCb::SelResult |
Selection result. Every
DVAlgorithm writes out one. |
DVAlgorithm base-class
The
DVAlgorithm base-class is designed to provide all commonly used features
needed in a physics analysis algorithm. It inherits from GaudiTupleAlg,
GaudiHistoAlg and GaudiAlgorithm.
You get a template if you open a .h or .cpp file with emacs and
answer D to the first question.
DVAlgorithm already provides instances of most commonly-used
tools and methods that access it. Look at the
DVAlgorithm doxygen documentation for a full list.
It is mandatory to call the setFilterPassed(bool&) method at
each event (or a warning is issued). This not only controls the execution of the
sequence, but also writes a
SelResult object that can be read in by some
algorithm later on.
The PhysDesktop tool
The
PhysDesktop tool hides all the I/O operations. It allows to retrieve the
input particles and vertices and to save the created particles and vertices. The
most important option is InputLocations:
MyAlg.PhysDesktop.InputLocations = { "Phys/FirstAlgo",
"Phys/SecondAlgo" } ;
The output of the
PhysDesktop is forced to the location "Phys/MyAlg"
to avoid clashed of container names.
Available tools
The following list shows the tool interfaces provided in the
DaVinciKernel package. Most of them have several implementations. Look at the
doxygen documentation to find out which implementation does the job best.
Available MC tools
Specialized algorithms
The following list shows a selection of algorithms that
can be used in a typical analysis sequence to monitor it or to control it's
behaviour. You will usually find some example option file in the relevant
directory.
Generic algorithms
The HLT and the stripping require the usage
of generic selection algorithms, that allow the selection of any decay steered
only by job options.
They both rely on the
ByPIDFilterCriterion and thus have the same syntax. More details will appear
here when they are stable.
Any comment is very welcome. Flame me
here. |