CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/DataFormats/ParticleFlowReco/interface/PFDisplacedTrackerVertex.h

Go to the documentation of this file.
00001 #ifndef _PFDisplacedTrackerVertex_H
00002 #define _PFDisplacedTrackerVertex_H
00003 
00004 // class which contains the secondary PFRecTracks
00005 // this dataformat will be used to create PFBlockElementNuclTrack
00006 
00007 // \author Maxime Gouzevitch
00008 
00009 #include "DataFormats/ParticleFlowReco/interface/PFDisplacedVertex.h"
00010 #include "DataFormats/ParticleFlowReco/interface/PFDisplacedVertexFwd.h"
00011 #include "DataFormats/ParticleFlowReco/interface/PFRecTrack.h"
00012 #include "DataFormats/ParticleFlowReco/interface/PFRecTrackFwd.h"
00013 
00014 namespace reco {
00015 class PFDisplacedTrackerVertex {
00016 
00017   public :
00018   
00019    PFDisplacedTrackerVertex() {}
00020    PFDisplacedTrackerVertex( const PFDisplacedVertexRef& nuclref, const PFRecTrackRefVector& pfRecTracks) : displacedVertexRef_(nuclref), pfRecTracks_(pfRecTracks) {}
00021 
00022      const PFRecTrackRefVector pfRecTracks() const {return pfRecTracks_;}
00023 
00024      const bool isIncomingTrack(const reco::PFRecTrackRef originalTrack) const {
00025        reco::TrackBaseRef trackBaseRef(originalTrack->trackRef());
00026        return displacedVertexRef_->isIncomingTrack(trackBaseRef);
00027      }
00028 
00029      const bool isOutgoingTrack(const reco::PFRecTrackRef originalTrack) const {
00030        reco::TrackBaseRef trackBaseRef(originalTrack->trackRef());
00031        return displacedVertexRef_->isOutgoingTrack(trackBaseRef);
00032      }
00033 
00034      const PFDisplacedVertexRef displacedVertexRef() const {return displacedVertexRef_;}
00035 
00036   private :
00037     // Reference to the initial DisplacedTrackerVertex
00038     PFDisplacedVertexRef displacedVertexRef_;
00039     
00040     // Collection of the secondary PFRecTracks
00041     PFRecTrackRefVector pfRecTracks_;
00042 
00043  };
00044 
00046   typedef std::vector<PFDisplacedTrackerVertex> PFDisplacedTrackerVertexCollection;
00048   typedef edm::Ref<PFDisplacedTrackerVertexCollection> PFDisplacedTrackerVertexRef;
00050   typedef edm::RefVector<PFDisplacedTrackerVertexCollection> PFDisplacedTrackerVertexRefVector;
00051 }
00052 #endif