CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/src/RecoVertex/VertexTools/interface/VertexCompatibleWithBeam.h

Go to the documentation of this file.
00001 #ifndef VertexCompatibleWithBeam_H
00002 #define VertexCompatibleWithBeam_H
00003 
00004 #include "DataFormats/VertexReco/interface/Vertex.h"
00005 #include "RecoVertex/VertexPrimitives/interface/VertexState.h"
00006 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00007 
00008 class VertexDistance;
00009 
00015 class VertexCompatibleWithBeam {
00016 
00017 public:
00018 
00019   VertexCompatibleWithBeam(const VertexDistance & dist, float cut);
00020   VertexCompatibleWithBeam(const VertexDistance & dist, float cut, 
00021                            const reco::BeamSpot & beamSpot);
00022 
00023   VertexCompatibleWithBeam(const VertexCompatibleWithBeam & other);
00024   VertexCompatibleWithBeam & operator=(const VertexCompatibleWithBeam & other);
00025   virtual ~VertexCompatibleWithBeam();
00026 
00027   void setBeamSpot(const reco::BeamSpot & beamSpot);
00028   virtual bool operator()(const reco::Vertex &) const;
00029   virtual bool operator()(const reco::Vertex &, const VertexState &) const;
00030 
00031   // return value of VertexDistance to beam
00032   float distanceToBeam(const reco::Vertex &) const;
00033   float distanceToBeam(const reco::Vertex &, const VertexState &) const;
00034 
00035 private:
00036 
00037   VertexDistance * theDistance;
00038   float theCut;
00039   VertexState theBeam;
00040 
00041 };
00042 
00043 #endif