| Re: Vertex class [message #473 is a reply to message #472 ] |
Tue, 16 May 2006 08:16   |
gaede Messages: 177 Registered: January 2004 Location: DESY, Hamburg |
|
|
|
To ease the discussion in the forum I am positing here a copy of Sonja's document:
PROPOSAL FOR EXTENSION OF LCIO (version 1, 14th May 2006)
Implementation of a new Vertex class with the following structure is proposed:
Vertex class:
+~Vertex()
+getMomentum() : const float*
+getMass() : float
+getCharge() : float
+getPosition() : const FloatVec&
+getCovMatrix() : const FloatVec&
+getChi2() : float
+getProbability() : float
+getDistanceToPreviousVertex() : float
+getErrorDistanceToPreviousVertex() : float
+getParameters() : const LCParameters&
+getTracks() : const TrackVec&
+addTrack() : void
+getPreviousVertex() : Vertex&
Additionally, we ask for adding the following two methods to the ReconstructedParticle class:
+getVertices() : const VertexVec&
+addVertex() : void
Other output from the LCFI Vertex Package, relating to jets, can be stored within the existing structure implemented by the ReconstructedParticle class. Variables that used to be provided by the FORTRAN code would be made accessible using the getParameters() method of the ParticleID object returned by each ReconstructedParticle.
As suggested by Frank Gaede, input variables for the flavour tag would be stored in an LCGenericObject collection, running parallel to the collection of jets (or LCGenericObject instances, linked to the respective jet by LCRelation objects).
An additional ParticleID object attached to the ReconstructedParticle used for the jet would hold the neural net flavour tags and an identifier for the networks used to obtain these tags, which would refer to a database of neural nets to be made available on the web.
QUESTIONS
1) Rather than using methods getDistanceToPreviousVertex. getErrorDistanceToPreviousVertex, it would in principle be preferable to provide methods
+getDistanceToVertex( Vertex& ) : float and
+getErrorDistanceToVertex( Vertex& ) : float
It is unclear to us, whether that would be compatible with the approach of LCIO, which in the first place seems to provide storage classes.
2) Similarly, one might in principle want to remove tracks from a vertex object. We have not included a method to do this in the current proposal, since there does not seem to be anything equivalent for the existing LCIO classes, but would welcome advice on this point.
|
|
|