Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 10:50:21

0001 #ifndef DataFormatsL1TCorrelator_TkPhiCandidate_h
0002 #define DataFormatsL1TCorrelator_TkPhiCandidate_h
0003 
0004 // -*- C++ -*-
0005 //
0006 // Package:     DataFormats/L1TCorrelator
0007 // Class:       TkPhiCandidate
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;            // GeV
0021     static constexpr double phi_polemass = 1.019445;  // GeV
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     // ---------- const member functions ---------------------
0034     const edm::Ptr<L1TTTrackType>& trkPtr(size_t i) const { return trkPtrList_.at(i); }
0035 
0036     // ---------- member functions ---------------------------
0037 
0038     // deltaR between track pair
0039     double dRTrkPair() const;
0040 
0041     // difference from nominal mass
0042     double dmass() const;
0043 
0044     // position difference between track pair
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 }  // namespace l1t
0056 #endif