00001
00002 #ifndef IMPL_VERTEXIMPL_H
00003 #define IMPL_VERTEXIMPL_H 1
00004
00005
00006 #include "EVENT/Vertex.h"
00007 #include "AccessChecked.h"
00008
00009 #define VTXCOVMATRIX 6
00010
00011
00012 namespace IMPL {
00013
00014
00021 class VertexImpl : public EVENT::Vertex, public AccessChecked {
00022
00023
00024 public:
00025
00028 VertexImpl() ;
00029
00031 VertexImpl(const VertexImpl&) = default ;
00032
00034 VertexImpl& operator=(const VertexImpl&) = default ;
00035
00036
00037
00038 virtual ~VertexImpl() ;
00039
00040 virtual int id() const { return simpleUID() ; }
00041
00045 virtual bool isPrimary() const ;
00046
00050
00051 virtual const std::string& getAlgorithmType() const ;
00052
00055 virtual float getChi2() const;
00056
00059 virtual float getProbability() const;
00060
00063 virtual const float* getPosition() const;
00064
00068 virtual const EVENT::FloatVec & getCovMatrix() const;
00069
00073 virtual const EVENT::FloatVec & getParameters() const;
00074
00077 virtual EVENT::ReconstructedParticle * getAssociatedParticle() const;
00078
00079
00080 void setPrimary( bool primary ) ;
00081
00082 void setAlgorithmType( std::string type ) ;
00083 void setChi2( float chi2 ) ;
00084 void setProbability( float probability ) ;
00085 void setPosition( const float vpos[3] ) ;
00086 void setPosition( float px, float py, float pz ) ;
00087 void setCovMatrix( const float* cov ) ;
00088 void setCovMatrix( const EVENT::FloatVec & ) ;
00089 void setAssociatedParticle( EVENT::ReconstructedParticle * aP ) ;
00090 void addParameter( float p );
00091
00092 protected:
00093 int _primary ;
00094 std::string _type ;
00095 float _chi2 ;
00096 float _probability ;
00097 float _vpos[3] ={0,0,0} ;
00098 EVENT::FloatVec _cov ;
00099 EVENT::FloatVec _par ;
00100 EVENT::ReconstructedParticle* _aParticle ;
00101
00102 };
00103
00104 }
00105 #endif