Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:36:41

0001 #ifndef CSCTrackFinder_CSCTrackFinderDataTypes_h
0002 #define CSCTrackFinder_CSCTrackFinderDataTypes_h
0003 
0004 // Address Types
0005 typedef class local_phi_address {
0006 public:
0007   unsigned int strip : 8;
0008   unsigned int clct_pattern : 3;
0009   unsigned int pattern_type : 1;  // 1 is half strip 0 is di strip
0010   unsigned int quality : 4;
0011   unsigned int lr : 1;
0012   unsigned int spare : 2;
0013   unsigned int zero : 13;
0014 
0015   local_phi_address() : strip(0), clct_pattern(0), pattern_type(0), quality(0), lr(0), spare(0), zero(0) {}
0016   local_phi_address(const unsigned& u) { this->operator=(u); }
0017 
0018   local_phi_address& operator=(const unsigned& u);
0019   unsigned toint() const;
0020 
0021 } lclphiadd;
0022 
0023 typedef class global_phi_address {
0024 public:
0025   unsigned int phi_local : 10;
0026   unsigned int wire_group : 5;  // bits 2-6 of wg
0027   unsigned int cscid : 4;
0028   unsigned int zero : 13;
0029 
0030   global_phi_address() : phi_local(0), wire_group(0), cscid(0), zero(0) {}
0031   global_phi_address(const unsigned& u) { this->operator=(u); }
0032 
0033   global_phi_address& operator=(const unsigned& u);
0034   unsigned toint() const;
0035 
0036 } gblphiadd;
0037 
0038 typedef class global_eta_address {
0039 public:
0040   unsigned int phi_bend : 6;
0041   unsigned int phi_local : 2;
0042   unsigned int wire_group : 7;
0043   unsigned int cscid : 4;
0044   unsigned int zero : 13;
0045 
0046   global_eta_address() : phi_bend(0), phi_local(0), wire_group(0), cscid(0), zero(0) {}
0047   global_eta_address(const unsigned& u) { this->operator=(u); }
0048 
0049   global_eta_address& operator=(const unsigned& u);
0050   unsigned toint() const;
0051 
0052 } gbletaadd;
0053 
0054 typedef class pt_address {
0055 public:
0056   unsigned int delta_phi_12 : 8;
0057   unsigned int delta_phi_23 : 4;
0058   unsigned int track_eta : 4;
0059   unsigned int track_mode : 4;
0060   unsigned int delta_phi_sign : 1;
0061   unsigned int track_fr : 1;
0062 
0063   pt_address() : delta_phi_12(0), delta_phi_23(0), track_eta(0), track_mode(0), delta_phi_sign(0), track_fr(0) {}
0064   pt_address(const unsigned& us) { this->operator=(us); }
0065 
0066   pt_address& operator=(const unsigned&);
0067   unsigned toint() const;
0068 
0069   unsigned delta_phi() const;  // for 2 stn track
0070 } ptadd;
0071 
0072 /// Data Types
0073 typedef class local_phi_data {
0074 public:
0075   unsigned short phi_local : 10;
0076   unsigned short phi_bend_local : 6;
0077 
0078   local_phi_data() : phi_local(0), phi_bend_local(0) {}
0079   local_phi_data(const unsigned short& us) { this->operator=(us); }
0080 
0081   local_phi_data& operator=(const unsigned short& us);
0082   unsigned short toint() const;
0083 
0084 } lclphidat;
0085 
0086 typedef class global_phi_data {
0087 public:
0088   unsigned short global_phi : 12;
0089   unsigned short spare : 4;
0090 
0091   global_phi_data() : global_phi(0), spare(0) {}
0092   global_phi_data(const unsigned short& us) { this->operator=(us); }
0093 
0094   global_phi_data& operator=(const unsigned short& us);
0095   unsigned short toint() const;
0096 
0097 } gblphidat;
0098 
0099 typedef class global_eta_data {
0100 public:
0101   unsigned short global_eta : 7;
0102   unsigned short global_bend : 5;
0103   unsigned short spare : 4;
0104 
0105   global_eta_data() : global_eta(0), global_bend(0), spare(0) {}
0106   global_eta_data(const unsigned short& us) { this->operator=(us); }
0107 
0108   global_eta_data& operator=(const unsigned short& us);
0109   unsigned short toint() const;
0110 
0111 } gbletadat;
0112 
0113 typedef class pt_data {
0114 public:
0115   unsigned short front_rank : 7;
0116   unsigned short charge_valid_front : 1;
0117   unsigned short rear_rank : 7;
0118   unsigned short charge_valid_rear : 1;
0119 
0120   pt_data() : front_rank(0), charge_valid_front(0), rear_rank(0), charge_valid_rear(0) {}
0121   pt_data(const unsigned short& us) { this->operator=(us); }
0122 
0123   pt_data& operator=(const unsigned short&);
0124   unsigned short toint() const;
0125 
0126 } ptdat;
0127 
0128 #endif