CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/DataFormats/JetReco/interface/TrackJet.h

Go to the documentation of this file.
00001 #ifndef DataFormats_JetReco_TrackJet_h
00002 #define DataFormats_JetReco_TrackJet_h
00003 
00004 
00021 #include "DataFormats/JetReco/interface/Jet.h"
00022 #include "DataFormats/RecoCandidate/interface/RecoChargedRefCandidate.h"
00023 #include "DataFormats/VertexReco/interface/VertexFwd.h"
00024 
00025 
00026 namespace reco {
00027 
00028   class TrackJet : public Jet {
00029 
00030     public:
00031 
00033       TrackJet();
00035       TrackJet(const LorentzVector & fP4, const Point & fVertex);
00037       TrackJet(const LorentzVector & fP4, const Point & fVertex, const Jet::Constituents & fConstituents);
00039       virtual ~TrackJet() {}
00041       virtual TrackJet * clone () const;
00042 
00044       size_t numberOfTracks() const { return numberOfDaughters(); }
00046       virtual edm::Ptr<reco::Track> track(size_t i) const;
00048       std::vector<edm::Ptr<reco::Track> > tracks() const;
00049 
00051       void resetCharge();
00053       const reco::VertexRef primaryVertex() const;
00055       void setPrimaryVertex(const reco::VertexRef & vtx);
00057       bool fromHardVertex() const { return (this->primaryVertex().index() == 0); }
00058 
00060       virtual std::string print () const;
00061 
00062     private:
00063 
00065       virtual bool overlap(const Candidate & dummy) const;
00066 
00067     private:
00068 
00070       reco::VertexRef vtx_;
00071 
00072   };
00073 
00074 }
00075 
00076 #endif