Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:31

0001 #ifndef DataFormatsL1TCorrelator_TkTau_h
0002 #define DataFormatsL1TCorrelator_TkTau_h
0003 
0004 // -*- C++ -*-
0005 //
0006 // Package:     L1Trigger
0007 // Class  :     TkTau
0008 //
0009 
0010 #include "DataFormats/L1Trigger/interface/L1Candidate.h"
0011 #include "DataFormats/Common/interface/Ref.h"
0012 #include "DataFormats/Common/interface/Ptr.h"
0013 
0014 #include "DataFormats/L1TCorrelator/interface/TkEm.h"
0015 
0016 #include "DataFormats/L1Trigger/interface/Tau.h"
0017 
0018 namespace l1t {
0019 
0020   class TkTau : public L1Candidate {
0021   public:
0022     typedef TTTrack<Ref_Phase2TrackerDigi_> L1TTTrackType;
0023     typedef std::vector<L1TTTrackType> L1TTTrackCollection;
0024 
0025     TkTau();
0026 
0027     TkTau(const LorentzVector& p4,
0028           const edm::Ref<TauBxCollection>& tauCaloRef,  // null for stand-alone TkTaus
0029           const edm::Ptr<L1TTTrackType>& trkPtr,
0030           const edm::Ptr<L1TTTrackType>& trkPtr2,  // null for tau -> 1 prong
0031           const edm::Ptr<L1TTTrackType>& trkPtr3,  // null for tau -> 1 prong
0032           float tkisol = -999.);
0033 
0034     // ---------- const member functions ---------------------
0035 
0036     const edm::Ref<TauBxCollection>& tauCaloRef() const { return tauCaloRef_; }
0037 
0038     const edm::Ptr<L1TTTrackType>& trkPtr() const { return trkPtr_; }
0039 
0040     const edm::Ptr<L1TTTrackType>& trkPtr2() const { return trkPtr2_; }
0041     const edm::Ptr<L1TTTrackType>& trkPtr3() const { return trkPtr3_; }
0042 
0043     float trkzVtx() const { return TrkzVtx_; }
0044     float trkIsol() const { return TrkIsol_; }
0045 
0046     // ---------- member functions ---------------------------
0047 
0048     void setTrkzVtx(float TrkzVtx) { TrkzVtx_ = TrkzVtx; }
0049     void setTrkIsol(float TrkIsol) { TrkIsol_ = TrkIsol; }
0050     int bx() const;
0051 
0052   private:
0053     edm::Ref<TauBxCollection> tauCaloRef_;
0054 
0055     edm::Ptr<L1TTTrackType> trkPtr_;
0056     edm::Ptr<L1TTTrackType> trkPtr2_;
0057     edm::Ptr<L1TTTrackType> trkPtr3_;
0058 
0059     float TrkIsol_;
0060     float TrkzVtx_;
0061   };
0062 }  // namespace l1t
0063 
0064 #endif