Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef DataFormatsL1TCorrelator_TkEGTau_h
0002 #define DataFormatsL1TCorrelator_TkEGTau_h
0003 
0004 // -*- C++ -*-
0005 //
0006 // Package:     L1Trigger
0007 // Class  :     TkEGTau
0008 //
0009 
0010 #include "DataFormats/L1Trigger/interface/L1Candidate.h"
0011 #include "DataFormats/Common/interface/Ref.h"
0012 
0013 #include "DataFormats/L1Trigger/interface/EGamma.h"
0014 #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
0015 
0016 #include "DataFormats/L1TrackTrigger/interface/TTTrack.h"
0017 #include "DataFormats/L1TrackTrigger/interface/TTTypes.h"
0018 
0019 #include <vector>
0020 
0021 namespace l1t {
0022 
0023   class TkEGTau;
0024 
0025   typedef std::vector<TkEGTau> TkEGTauCollection;
0026 
0027   typedef edm::Ref<TkEGTauCollection> TkEGTauRef;
0028   typedef edm::RefVector<TkEGTauCollection> TkEGTauRefVector;
0029   typedef std::vector<TkEGTauRef> TkEGTauVectorRef;
0030 
0031   typedef TTTrack<Ref_Phase2TrackerDigi_> L1TTTrackType;
0032   typedef std::vector<L1TTTrackType> L1TTTrackCollection;
0033   typedef edm::Ptr<L1TTTrackType> L1TTTrackRefPtr;
0034   typedef std::vector<L1TTTrackRefPtr> L1TTTrackRefPtr_Collection;
0035   typedef edm::Ref<EGammaBxCollection> EGammaRef;
0036   typedef std::vector<EGammaRef> EGammaVectorRef;
0037 
0038   class TkEGTau : public L1Candidate {
0039   public:
0040     TkEGTau();
0041 
0042     TkEGTau(const LorentzVector& p4,
0043             const std::vector<L1TTTrackRefPtr>& clustTracks,
0044             const std::vector<EGammaRef>& clustEGs,
0045             float iso = -999.);
0046 
0047     // ---------- const member functions ---------------------
0048 
0049     const L1TTTrackRefPtr seedTrk() const { return clustTracks_.at(0); }
0050 
0051     const std::vector<L1TTTrackRefPtr> trks() const { return clustTracks_; }
0052 
0053     const std::vector<EGammaRef> EGs() const { return clustEGs_; }
0054 
0055     float iso() const { return iso_; }
0056 
0057     // ---------- member functions ---------------------------
0058 
0059     void setVtxIso(float iso) { iso_ = iso; }
0060 
0061   private:
0062     std::vector<L1TTTrackRefPtr> clustTracks_;
0063     std::vector<EGammaRef> clustEGs_;
0064     float iso_;
0065   };
0066 }  // namespace l1t
0067 
0068 #endif