CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoVertex/VertexPrimitives/interface/BasicVertexState.h

Go to the documentation of this file.
00001 #ifndef BasicVertexState_H
00002 #define BasicVertexState_H
00003 
00004 #include "TrackingTools/TrajectoryState/interface/ProxyBase.h"
00005 #include "DataFormats/GeometrySurface/interface/ReferenceCounted.h"
00006 #include "TrackingTools/TrajectoryState/interface/CopyUsingClone.h"
00007 
00008 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00009 #include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h"
00010 #include "DataFormats/GeometryCommonDetAlgo/interface/GlobalWeight.h"
00011 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00012 //#include "CommonReco/CommonVertex/interface/RefCountedVertexSeed.h"
00013 
00014 #include <vector>
00015 
00016 class VertexState;
00017 
00021 class BasicVertexState  : public ReferenceCounted {
00022 
00023 public:
00024 
00025   typedef ProxyBase< BasicVertexState, CopyUsingClone<BasicVertexState> > Proxy;
00026   typedef ReferenceCountingPointer<BasicVertexState>                      RCPtr;
00027 
00028 private:
00029   //
00030   // HELP !  new G++ refuses friend class Proxy;
00031   //
00032   friend class   ProxyBase< BasicVertexState, CopyUsingClone<BasicVertexState> >;
00033   friend  class ReferenceCountingPointer<BasicVertexState>                ;
00034 
00035 public:
00036 
00037   virtual ~BasicVertexState() {}
00038 
00039   virtual BasicVertexState* clone() const = 0;
00040 
00043   virtual GlobalPoint position() const = 0;
00044   virtual GlobalError error() const = 0;
00045   virtual GlobalWeight weight() const = 0;
00046   virtual AlgebraicVector3 weightTimesPosition() const = 0;
00047   virtual double weightInMixture() const = 0;
00048   virtual std::vector<VertexState> components() const;
00049   virtual bool isValid() const = 0;
00050 
00051 
00054 //   virtual RefCountedVertexSeed seedWithoutTracks() const = 0;
00055 };
00056 
00057 #endif