File indexing completed on 2024-04-06 12:04:31
0001 #ifndef DataFormatsL1TCorrelator_TkElectron_h
0002 #define DataFormatsL1TCorrelator_TkElectron_h
0003
0004
0005
0006
0007
0008
0009
0010 #include "DataFormats/Common/interface/Ptr.h"
0011
0012 #include "DataFormats/L1Trigger/interface/EGamma.h"
0013
0014 #include "DataFormats/L1TCorrelator/interface/TkEm.h"
0015 #include "DataFormats/L1TCorrelator/interface/TkEmFwd.h"
0016
0017 #include "DataFormats/L1TrackTrigger/interface/TTTypes.h"
0018
0019 #include <vector>
0020
0021 namespace l1t {
0022
0023 class TkElectron : public TkEm {
0024 public:
0025 typedef TTTrack<Ref_Phase2TrackerDigi_> L1TTTrackType;
0026 typedef std::vector<L1TTTrackType> L1TTTrackCollection;
0027
0028 TkElectron();
0029
0030 TkElectron(const LorentzVector& p4,
0031 const edm::Ptr<L1Candidate>& egCaloPtr,
0032 const edm::Ptr<L1TTTrackType>& trkPtr,
0033 float tkisol = -999.);
0034
0035 TkElectron(const LorentzVector& p4, float tkisol = -999.);
0036
0037
0038
0039 const edm::Ptr<L1TTTrackType>& trkPtr() const { return trkPtr_; }
0040
0041 float trkzVtx() const { return trkzVtx_; }
0042 float idScore() const { return idScore_; }
0043
0044
0045 void setTrkPtr(const edm::Ptr<L1TTTrackType>& tkPtr) { trkPtr_ = tkPtr; }
0046 void setTrkzVtx(float TrkzVtx) { trkzVtx_ = TrkzVtx; }
0047 void setIdScore(float score) { idScore_ = score; }
0048
0049 l1gt::Electron hwObj() const {
0050 if (encoding() != HWEncoding::GT) {
0051 throw cms::Exception("RuntimeError") << "TkElectron::hwObj : encoding is not in GT format!" << std::endl;
0052 }
0053 return l1gt::Electron::unpack_ap(egBinaryWord<l1gt::Electron::BITWIDTH>());
0054 }
0055
0056 private:
0057 edm::Ptr<L1TTTrackType> trkPtr_;
0058 float trkzVtx_;
0059 float idScore_;
0060 };
0061 }
0062 #endif