Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef DataFormats_L1TMuonPhase2_EMTFTrack_h
0002 #define DataFormats_L1TMuonPhase2_EMTFTrack_h
0003 
0004 #include <array>
0005 #include <cstdint>
0006 #include <vector>
0007 
0008 namespace l1t::phase2 {
0009 
0010   class EMTFTrack {
0011   public:
0012     typedef std::vector<int16_t> features_t;
0013     typedef std::vector<uint16_t> site_hits_t;
0014     typedef std::vector<uint16_t> site_segs_t;
0015     typedef std::vector<uint8_t> site_mask_t;
0016 
0017     EMTFTrack();
0018     ~EMTFTrack() = default;
0019 
0020     // Setters
0021     void setEndcap(int16_t aEndcap) { endcap_ = aEndcap; }
0022     void setSector(int16_t aSector) { sector_ = aSector; }
0023     void setBx(int16_t aBx) { bx_ = aBx; }
0024     void setUnconstrained(bool aUnconstrained) { unconstrained_ = aUnconstrained; }
0025     void setValid(bool aValid) { valid_ = aValid; }
0026 
0027     void setModelPtAddress(int16_t aAddress) { model_pt_address_ = aAddress; }
0028     void setModelRelsAddress(int16_t aAddress) { model_rels_address_ = aAddress; }
0029     void setModelDxyAddress(int16_t aAddress) { model_dxy_address_ = aAddress; }
0030     void setModelPattern(int16_t aModelPattern) { model_pattern_ = aModelPattern; }
0031     void setModelQual(int16_t aModelQual) { model_qual_ = aModelQual; }
0032     void setModelPhi(int32_t aModelPhi) { model_phi_ = aModelPhi; }
0033     void setModelEta(int32_t aModelEta) { model_eta_ = aModelEta; }
0034     void setModelFeatures(const features_t& aModelFeatures) { model_features_ = aModelFeatures; }
0035 
0036     void setEmtfQ(int16_t aEmtfQ) { emtf_q_ = aEmtfQ; }
0037     void setEmtfPt(int32_t aEmtfPt) { emtf_pt_ = aEmtfPt; }
0038     void setEmtfRels(int32_t aEmtfRels) { emtf_rels_ = aEmtfRels; }
0039     void setEmtfD0(int32_t aEmtfD0) { emtf_d0_ = aEmtfD0; }
0040     void setEmtfZ0(int32_t aEmtfZ0) { emtf_z0_ = aEmtfZ0; }
0041     void setEmtfBeta(int32_t aEmtfBeta) { emtf_beta_ = aEmtfBeta; }
0042     void setEmtfModeV1(int16_t aEmtfModeV1) { emtf_mode_v1_ = aEmtfModeV1; }
0043     void setEmtfModeV2(int16_t aEmtfModeV2) { emtf_mode_v2_ = aEmtfModeV2; }
0044     void setEmtfQuality(int16_t aEmtfQuality) { emtf_quality_ = aEmtfQuality; }
0045 
0046     void setSiteHits(const site_hits_t& aSiteHits) { site_hits_ = aSiteHits; }
0047     void setSiteSegs(const site_segs_t& aSiteSegs) { site_segs_ = aSiteSegs; }
0048     void setSiteMask(const site_mask_t& aSiteMask) { site_mask_ = aSiteMask; }
0049     void setSiteRMMask(const site_mask_t& aSiteMask) { site_rm_mask_ = aSiteMask; }
0050 
0051     // Getters
0052     int16_t endcap() const { return endcap_; }
0053     int16_t sector() const { return sector_; }
0054     int16_t bx() const { return bx_; }
0055     bool unconstrained() const { return unconstrained_; }
0056     bool valid() const { return valid_; }
0057 
0058     int16_t modelPtAddress() const { return model_pt_address_; }
0059     int16_t modelRelsAddress() const { return model_rels_address_; }
0060     int16_t modelDxyAddress() const { return model_dxy_address_; }
0061     int16_t modelPattern() const { return model_pattern_; }
0062     int16_t modelQual() const { return model_qual_; }
0063     int32_t modelPhi() const { return model_phi_; }
0064     int32_t modelEta() const { return model_eta_; }
0065     const features_t& modelFeatures() const { return model_features_; }
0066 
0067     int16_t emtfQ() const { return emtf_q_; }
0068     int32_t emtfPt() const { return emtf_pt_; }
0069     int32_t emtfRels() const { return emtf_rels_; }
0070     int32_t emtfD0() const { return emtf_d0_; }
0071     int32_t emtfZ0() const { return emtf_z0_; }
0072     int32_t emtfBeta() const { return emtf_beta_; }
0073     int16_t emtfModeV1() const { return emtf_mode_v1_; }
0074     int16_t emtfModeV2() const { return emtf_mode_v2_; }
0075     int16_t emtfQuality() const { return emtf_quality_; }
0076 
0077     const site_hits_t& siteHits() const { return site_hits_; }
0078     const site_segs_t& siteSegs() const { return site_segs_; }
0079     const site_mask_t& siteMask() const { return site_mask_; }
0080     const site_mask_t& siteRMMask() const { return site_rm_mask_; }
0081 
0082   private:
0083     int16_t endcap_;
0084     int16_t sector_;
0085     int16_t bx_;
0086     bool unconstrained_;
0087     bool valid_;
0088 
0089     int16_t model_pt_address_;
0090     int16_t model_rels_address_;
0091     int16_t model_dxy_address_;
0092     int16_t model_pattern_;
0093     int16_t model_qual_;
0094     int32_t model_phi_;
0095     int32_t model_eta_;
0096     features_t model_features_;
0097 
0098     int16_t emtf_q_;
0099     int32_t emtf_pt_;
0100     int32_t emtf_rels_;
0101     int32_t emtf_d0_;
0102     int32_t emtf_z0_;
0103     int32_t emtf_beta_;
0104     int16_t emtf_mode_v1_;
0105     int16_t emtf_mode_v2_;
0106     int16_t emtf_quality_;
0107 
0108     site_hits_t site_hits_;
0109     site_segs_t site_segs_;
0110     site_mask_t site_mask_;
0111     site_mask_t site_rm_mask_;
0112   };
0113 
0114   typedef std::vector<EMTFTrack> EMTFTrackCollection;
0115 
0116 }  // namespace l1t::phase2
0117 
0118 #endif  // DataFormats_L1TMuonPhase2_EMTFTrack_h not defined