File indexing completed on 2023-03-17 10:50:21
0001 #ifndef DataFormatsL1TCorrelator_TkPhiCandidate_h
0002 #define DataFormatsL1TCorrelator_TkPhiCandidate_h
0003
0004
0005
0006
0007
0008
0009
0010 #include "DataFormats/Common/interface/Ref.h"
0011 #include "DataFormats/Common/interface/Ptr.h"
0012
0013 #include "DataFormats/L1Trigger/interface/L1Candidate.h"
0014 #include "DataFormats/L1TrackTrigger/interface/TTTypes.h"
0015
0016 namespace l1t {
0017
0018 class TkPhiCandidate : public L1Candidate {
0019 public:
0020 static constexpr double kmass = 0.493;
0021 static constexpr double phi_polemass = 1.019445;
0022
0023 using L1TTTrackType = TTTrack<Ref_Phase2TrackerDigi_>;
0024 using L1TTTrackCollection = std::vector<L1TTTrackType>;
0025
0026 TkPhiCandidate();
0027 TkPhiCandidate(const LorentzVector& p4,
0028 const edm::Ptr<L1TTTrackType>& trkPtr1,
0029 const edm::Ptr<L1TTTrackType>& trkPtr2);
0030
0031 ~TkPhiCandidate() override {}
0032
0033
0034 const edm::Ptr<L1TTTrackType>& trkPtr(size_t i) const { return trkPtrList_.at(i); }
0035
0036
0037
0038
0039 double dRTrkPair() const;
0040
0041
0042 double dmass() const;
0043
0044
0045 double dxyTrkPair() const;
0046 double dzTrkPair() const;
0047
0048 double vx() const override;
0049 double vy() const override;
0050 double vz() const override;
0051
0052 private:
0053 std::vector<edm::Ptr<L1TTTrackType>> trkPtrList_;
0054 };
0055 }
0056 #endif