File indexing completed on 2024-04-06 12:04:24
0001 #ifndef DataFormats_JetReco_TrackJet_h
0002 #define DataFormats_JetReco_TrackJet_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #include "DataFormats/JetReco/interface/Jet.h"
0019 #include "DataFormats/RecoCandidate/interface/RecoChargedRefCandidate.h"
0020 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0021
0022 namespace reco {
0023
0024 class TrackJet : public Jet {
0025 public:
0026
0027 TrackJet();
0028
0029 TrackJet(const LorentzVector& fP4, const Point& fVertex);
0030
0031 TrackJet(const LorentzVector& fP4, const Point& fVertex, const Jet::Constituents& fConstituents);
0032
0033 ~TrackJet() override {}
0034
0035 TrackJet* clone() const override;
0036
0037
0038 size_t numberOfTracks() const { return numberOfDaughters(); }
0039
0040 virtual edm::Ptr<reco::Track> track(size_t i) const;
0041
0042 std::vector<edm::Ptr<reco::Track> > tracks() const;
0043
0044
0045 void resetCharge();
0046
0047 const reco::VertexRef primaryVertex() const;
0048
0049 void setPrimaryVertex(const reco::VertexRef& vtx);
0050
0051 bool fromHardVertex() const { return (this->primaryVertex().index() == 0); }
0052
0053
0054 std::string print() const override;
0055
0056 private:
0057
0058 bool overlap(const Candidate& dummy) const override;
0059
0060 private:
0061
0062 reco::VertexRef vtx_;
0063 };
0064
0065 }
0066
0067 #endif