|
|
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.
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.
The Event model is defined in the LHCb project. The most relevant classes for DaVinci are:
|
Particle of defined PID (assigned by the user). Composite Particles contain links to vertex and to daughters. |
|
Not-yet-a-particle. 4-momentum and PID probabilities
but not a defined PID. See |
|
Vertex. Contains links to Particles used to make it. |
|
Vertex made of tracks. The PV is a |
|
MC true particle. |
|
MC true vertex. |
|
Particle ID. |
Property of a given particle (in Gaudi). |
|
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.
Particle Makers |
|
IParticleMaker |
Interface class to make Particles from other classes (e.g.
ProtoParticle ). This tools is internally used by the
PhysDesktop . In principle you don't need to use
this tool as all Particles are already provided as
Standard Particles. |
Particle Filter |
|
IP articleFilter |
Given a vector of Particles, provides a sub-vector of Particles
satisfying a set of
IFilterCriteria . |
IFilterCriterion |
Applies a criterion (cut) on a Particle and returns a yes/no. Several implementations available. |
Vertex fitters |
|
IVertexFit |
All vertex fitter inherit this interface. Follow the links from doxygen to the fitter you want. |
Flavour Tagging |
|
IBTaggingTool |
Flavour tagging tool. |
Miscellaneous tools |
|
ICheckOverlap |
Tool to check if more than one particle originate from the same
ProtoParticle in he decay tree of a composite particle. |
IDecayFinder |
Finds a decay given by a decay string. |
IGeomDispCalculator |
Calculates distances between lines, points, tracks and vertices. |
IPhysDesktop |
See above. |
IPlotTool |
Fill some plots given a
Particle
or a vector of
Particles . |
Available MC tools
MC Tools |
|
IDebugTool |
Prints a tree of
Particles or
MCParticles. |
IMCDecayFinder |
Finds a MC decay given by a decay string. |
IMCParticleSelector |
Selection of
MCParticle s given a criteria. |
IVisPrimVertTool |
Analyses collision vertices. |
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.
Package | Algorithm | Description |
Particles Makers |
||
ParticleMaker |
PreLoadParticles |
Run the default
CombinedParticleMaker or any other, to make particles. |
Particle filtering |
||
DaVinciFilter |
ApplyParticleFilter |
Just applies the
ParticleFilter on all particles in the PhysDesktop InputLocation. |
FilterByBestParticles |
Applies the
IBestParticles tool on all particles in the PhysDesktop
InputLocation. |
|
PhysSelections |
PIDFilter |
Filters all particles in the
PhysDesktop InputLocation according to their PID. |
Primary vertex |
||
DaVinciTools |
CheckPV |
Checks that there is a PV. |
Plotting |
||
DaVinciTools |
SimplePlots |
Calls a
IPlotTool for all particles in the
PhysDesktop InputLocation . |
|
||
Tools/Utilities |
CheckSelResult |
Checks
SelResult objects from previous algorithms. Allows to control
sequence according t previously run algorithms (even outside of
sequence). |
SelResultCorrelations |
Prints correlation matrix of algorithms. | |
Tagging |
||
FlavourTagging |
BTagging |
Apply B Tagging |
FlavourTaggingChecker |
CheatedSelection |
Use cheated selection for B tagging. |
MC Algorithms |
||
MC Event filtering |
||
DaVinciMCTools |
FilterGoodDecay |
Keeps only events containing the requested decay. |
IsBEvent |
Keeps only events containing the requested particle or quark. | |
Debugging |
||
DaVinciMCTools |
||
PrintMCTree |
Prints the decay tree of a
MCParticle , |
|
PrintTree |
Prints the decay tree of a
Particle . |
|
Tools/Utilities |
PrintHeader |
Prints Run and Event number |
The HLT and the stripping require the usage of generic selection algorithms, that allow the selection of any decay steered only by job options.
MakeResonances
(in DaVinciTools
) allows to make composite
particles according to one or more decay string(s).
FilterDesktop
(in DaVinciFilter
) filters the
PhysDesktop InputLocation
.
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.