Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef DataFormatsL1TCorrelator_TkCaloTkTau_h
0002 #define DataFormatsL1TCorrelator_TkCaloTkTau_h
0003 
0004 // -*- C++ -*-
0005 //
0006 // Package:     L1Trigger
0007 // Class  :     L1CaloTkTau
0008 //
0009 
0010 #include "DataFormats/L1Trigger/interface/L1Candidate.h"
0011 #include "DataFormats/Common/interface/Ref.h"
0012 
0013 #include "DataFormats/L1Trigger/interface/Tau.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 L1CaloTkTau;
0024 
0025   typedef std::vector<L1CaloTkTau> L1CaloTkTauCollection;
0026 
0027   typedef edm::Ref<L1CaloTkTauCollection> L1CaloTkTauRef;
0028   typedef edm::RefVector<L1CaloTkTauCollection> L1CaloTkTauRefVector;
0029   typedef std::vector<L1CaloTkTauRef> L1CaloTkTauVectorRef;
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 
0036   class L1CaloTkTau : public L1Candidate {
0037   public:
0038     L1CaloTkTau();
0039 
0040     L1CaloTkTau(const LorentzVector& p4,  // caloTau calibrated p4
0041                 const LorentzVector& tracksP4,
0042                 const std::vector<L1TTTrackRefPtr>& clustTracks,
0043                 Tau& caloTau,
0044                 float vtxIso = -999.);
0045 
0046     // ---------- const member functions ---------------------
0047 
0048     const L1TTTrackRefPtr seedTrk() const { return clustTracks_.at(0); }
0049 
0050     float vtxIso() const { return vtxIso_; }
0051 
0052     LorentzVector trackBasedP4() const { return tracksP4_; }
0053 
0054     float trackBasedEt() const { return tracksP4_.Et(); }
0055 
0056     Tau caloTau() const { return caloTau_; }
0057 
0058     // ---------- member functions ---------------------------
0059 
0060     void setVtxIso(float VtxIso) { vtxIso_ = VtxIso; }
0061 
0062   private:
0063     LorentzVector tracksP4_;
0064     std::vector<L1TTTrackRefPtr> clustTracks_;
0065     Tau caloTau_;
0066     float vtxIso_;
0067   };
0068 }  // namespace l1t
0069 
0070 #endif