File indexing completed on 2024-04-06 12:04:31
0001 #ifndef DataFormatsL1TCorrelator_TkCaloTkTau_h
0002 #define DataFormatsL1TCorrelator_TkCaloTkTau_h
0003
0004
0005
0006
0007
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,
0041 const LorentzVector& tracksP4,
0042 const std::vector<L1TTTrackRefPtr>& clustTracks,
0043 Tau& caloTau,
0044 float vtxIso = -999.);
0045
0046
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
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 }
0069
0070 #endif