CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch12/src/DataFormats/VertexReco/interface/NuclearInteraction.h

Go to the documentation of this file.
00001 #ifndef DATAFORMAT_NUCLEARINTERACTION_
00002 #define DATAFORMAT_NUCLEARINTERACTION_
00003 
00004 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00005 #include "DataFormats/TrackReco/interface/Track.h"
00006 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
00007 #include "DataFormats/VertexReco/interface/Vertex.h"
00008 
00009 namespace reco {
00010   
00011    class NuclearInteraction {
00012      
00013      public :
00014 
00015        typedef edm::RefVector<TrajectorySeedCollection>  TrajectorySeedRefVector;
00016        typedef edm::Ref<TrajectorySeedCollection>        TrajectorySeedRef;
00017        typedef reco::Vertex::trackRef_iterator           trackRef_iterator;
00018        typedef TrajectorySeedRefVector::iterator         seedRef_iterator;
00019 
00020        NuclearInteraction() {}
00021 
00022        NuclearInteraction( const TrajectorySeedRefVector& tseeds, const reco::Vertex& vtx, double lkh) { 
00023                          seeds_ = tseeds;
00024                          vertex_ = vtx;
00025                          likelihood_ = lkh;
00026        }
00027  
00029        const edm::RefToBase<reco::Track>& primaryTrack() const { return *(vertex_.tracks_begin()); }
00030 
00032        int secondaryTracksSize() const { return vertex_.tracksSize()-1; }
00033 
00035        trackRef_iterator secondaryTracks_begin() const { return vertex_.tracks_begin()+1; }
00036 
00038        trackRef_iterator secondaryTracks_end() const { return vertex_.tracks_end(); }
00039 
00041        int seedsSize() const { return seeds_.size(); }
00042 
00044        const TrajectorySeedRefVector& seeds() { return seeds_; }
00045 
00047        seedRef_iterator seeds_begin() const { return seeds_.begin(); }
00048 
00050        seedRef_iterator seeds_end() const { return seeds_.end(); }
00051 
00053        const reco::Vertex& vertex() const { return vertex_; }
00054 
00056        double likelihood() const { return likelihood_; }
00057 
00058      private :
00059 
00061         //reco::Track                 refittedPrimaryTrack_; // to be included in a futur version
00062 
00064         TrajectorySeedRefVector     seeds_;
00065 
00067         reco::Vertex                vertex_;
00068    
00070         double                      likelihood_;
00071      };
00072 }
00073 #endif