CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/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 "CommonReco/CommonVertex/interface/RefCountedVertexSeed.h"
00012 
00013 #include <vector>
00014 
00015 class VertexState;
00016 
00020 class BasicVertexState  : public ReferenceCounted {
00021 
00022 public:
00023 
00024   typedef ProxyBase< BasicVertexState, CopyUsingClone<BasicVertexState> > Proxy;
00025   typedef ReferenceCountingPointer<BasicVertexState>                      RCPtr;
00026 
00027 private:
00028   //
00029   // HELP !  new G++ refuses friend class Proxy;
00030   //
00031   friend class   ProxyBase< BasicVertexState, CopyUsingClone<BasicVertexState> >;
00032   friend  class ReferenceCountingPointer<BasicVertexState>                ;
00033 
00034 public:
00035 
00036   virtual ~BasicVertexState() {}
00037 
00038   virtual BasicVertexState* clone() const = 0;
00039 
00042   virtual GlobalPoint position() const = 0;
00043   virtual GlobalError error() const = 0;
00044   virtual GlobalWeight weight() const = 0;
00045   virtual AlgebraicVector3 weightTimesPosition() const = 0;
00046   virtual double weightInMixture() const = 0;
00047   virtual std::vector<VertexState> components() const;
00048   virtual bool isValid() const = 0;
00049 
00050 
00053 //   virtual RefCountedVertexSeed seedWithoutTracks() const = 0;
00054 };
00055 
00056 #endif