Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 12:53:52

0001 #ifndef DataFormatsL1TCorrelator_TkGlbMuon_h
0002 #define DataFormatsL1TCorrelator_TkGlbMuon_h
0003 
0004 // -*- C++ -*-
0005 //
0006 // Package:     L1Trigger
0007 // Class  :     TkGlbMuon
0008 
0009 #include "DataFormats/L1Trigger/interface/L1Candidate.h"
0010 #include "DataFormats/Common/interface/Ref.h"
0011 #include "DataFormats/Common/interface/Ptr.h"
0012 
0013 #include "DataFormats/L1TCorrelator/interface/TkEm.h"
0014 
0015 #include "DataFormats/L1Trigger/interface/Muon.h"
0016 
0017 namespace l1t {
0018   class TkGlbMuon : public L1Candidate {
0019   public:
0020     typedef TTTrack<Ref_Phase2TrackerDigi_> L1TTTrackType;
0021     typedef std::vector<L1TTTrackType> L1TTTrackCollection;
0022 
0023     TkGlbMuon() : theIsolation(-999.), TrkzVtx_(999.), quality_(999) {}
0024 
0025     TkGlbMuon(const LorentzVector& p4,
0026               const edm::Ref<MuonBxCollection>& muRef,
0027               const edm::Ptr<L1TTTrackType>& trkPtr,
0028               float tkisol = -999.);
0029 
0030     //! more basic constructor, in case refs/ptrs can't be set or to be set separately
0031     TkGlbMuon(const L1Candidate& cand) : L1Candidate(cand), theIsolation(-999.), TrkzVtx_(999.), quality_(999) {}
0032 
0033     const edm::Ptr<L1TTTrackType>& trkPtr() const { return trkPtr_; }
0034 
0035     const edm::Ref<MuonBxCollection>& muRef() const { return muRef_; }
0036 
0037     float trkIsol() const { return theIsolation; }
0038     float trkzVtx() const { return TrkzVtx_; }
0039 
0040     float dR() const { return dR_; }
0041     int nTracksMatched() const { return nTracksMatch_; }
0042 
0043     unsigned int quality() const { return quality_; }
0044 
0045     void setTrkPtr(const edm::Ptr<L1TTTrackType>& p) { trkPtr_ = p; }
0046 
0047     void setTrkzVtx(float TrkzVtx) { TrkzVtx_ = TrkzVtx; }
0048     void setTrkIsol(float TrkIsol) { theIsolation = TrkIsol; }
0049 
0050     void setdR(float dR) { dR_ = dR; }
0051     void setNTracksMatched(int nTracksMatch) { nTracksMatch_ = nTracksMatch; }
0052 
0053     void setQuality(unsigned int q) { quality_ = q; }
0054 
0055   private:
0056     // used for the Naive producer
0057     edm::Ref<MuonBxCollection> muRef_;
0058 
0059     edm::Ptr<L1TTTrackType> trkPtr_;
0060 
0061     float theIsolation;
0062     float TrkzVtx_;
0063     unsigned int quality_;
0064     float dR_;
0065     int nTracksMatch_;
0066   };
0067 }  // namespace l1t
0068 
0069 #endif