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
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
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 }
0117
0118 #endif