Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-07-16 02:43:03

0001 #ifndef PHASE2GMT_CONEVRTEDTTRACK
0002 #define PHASE2GMT_CONEVRTEDTTRACK
0003 #include "DataFormats/L1TrackTrigger/interface/TTTypes.h"
0004 #include "DataFormats/L1TMuonPhase2/interface/Constants.h"
0005 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0006 #include <ap_int.h>
0007 
0008 namespace Phase2L1GMT {
0009 
0010   class ConvertedTTTrack {
0011   public:
0012     ConvertedTTTrack(const ap_uint<1>& charge,
0013                      const ap_int<BITSTTCURV>& curvature,
0014                      const ap_int<BITSETA - 1>& abseta,
0015                      const ap_uint<BITSPT>& pt,
0016                      const ap_int<BITSETA>& eta,
0017                      const ap_int<BITSPHI>& phi,
0018                      const ap_int<BITSZ0>& z0,
0019                      const ap_int<BITSD0>& d0,
0020                      const ap_uint<1>& quality,
0021                      const ap_uint<96>& word)
0022         : charge_(charge),
0023           curvature_(curvature),
0024           abseta_(abseta),
0025           pt_(pt),
0026           eta_(eta),
0027           phi_(phi),
0028           z0_(z0),
0029           d0_(d0),
0030           quality_(quality),
0031           word_(word) {}
0032 
0033     const ap_uint<1> charge() const { return charge_; }
0034 
0035     const ap_int<BITSTTCURV> curvature() const { return curvature_; }
0036     const ap_uint<BITSETA - 1> abseta() const { return abseta_; }
0037 
0038     const ap_uint<BITSPT> pt() const { return pt_; }
0039 
0040     const ap_int<BITSETA> eta() const { return eta_; }
0041     const ap_int<BITSPHI> phi() const { return phi_; }
0042 
0043     void setPhi(ap_int<BITSPHI> phi) { phi_ = phi; }
0044 
0045     const ap_int<BITSZ0> z0() const { return z0_; }
0046     const ap_int<BITSD0> d0() const { return d0_; }
0047     const ap_uint<1> quality() const { return quality_; }
0048     const float offline_pt() const { return offline_pt_; }
0049     const float offline_eta() const { return offline_eta_; }
0050     const float offline_phi() const { return offline_phi_; }
0051 
0052     const ap_uint<96>& word() const { return word_; }
0053     void setOfflineQuantities(float pt, float eta, float phi) {
0054       offline_pt_ = pt;
0055       offline_eta_ = eta;
0056       offline_phi_ = phi;
0057     }
0058 
0059     void print() const {
0060       LogDebug("ConvertedTTTrack") << "converted track : charge=" << charge_ << " curvature=" << curvature_
0061                                    << " pt=" << offline_pt_ << "," << pt_ << " eta=" << offline_eta_ << "," << eta_
0062                                    << " phi=" << offline_phi_ << "," << phi_ << " z0=" << z0_ << " d0=" << d0_
0063                                    << " quality=" << quality_;
0064     }
0065 
0066     void printWord() const {
0067       LogDebug("ConvertedTTTrack") << "converted track : word=" << std::setfill('0') << std::setw(8) << std::hex
0068                                    << (long long unsigned int)((word_ >> 64).to_uint64()) << std::setfill('0')
0069                                    << std::setw(16) << std::hex
0070                                    << (long long unsigned int)((word_ & 0xffffffffffffffff).to_uint64());
0071     }
0072 
0073     void setTrkPtr(const edm::Ptr<TTTrack<Ref_Phase2TrackerDigi_> >& trkPtr) { trkPtr_ = trkPtr; }
0074 
0075     const edm::Ptr<TTTrack<Ref_Phase2TrackerDigi_> > trkPtr() const { return trkPtr_; }
0076 
0077   private:
0078     ap_uint<1> charge_;
0079     ap_int<BITSTTCURV> curvature_;
0080     ap_uint<BITSETA - 1> abseta_;
0081     ap_uint<BITSPT> pt_;
0082     ap_int<BITSETA> eta_;
0083     ap_int<BITSPHI> phi_;
0084     ap_int<BITSZ0> z0_;
0085     ap_int<BITSD0> d0_;
0086     ap_uint<1> quality_;
0087     float offline_pt_;
0088     float offline_eta_;
0089     float offline_phi_;
0090     ap_uint<96> word_;
0091 
0092     edm::Ptr<TTTrack<Ref_Phase2TrackerDigi_> > trkPtr_;
0093   };
0094 }  // namespace Phase2L1GMT
0095 
0096 #endif