00001 //------------------------------------------------- 00002 // 00011 // 00012 //-------------------------------------------------- 00013 #ifndef DT_CONFIG_BTI_H 00014 #define DT_CONFIG_BTI_H 00015 00016 //--------------- 00017 // C++ Headers -- 00018 //--------------- 00019 00020 //---------------------- 00021 // Base Class Headers -- 00022 //---------------------- 00023 00024 //------------------------------------ 00025 // Collaborating Class Declarations -- 00026 //------------------------------------ 00027 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00028 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfig.h" 00029 #include "L1TriggerConfig/DTTPGConfig/interface/BitArray.h" 00030 00031 #include <boost/cstdint.hpp> 00032 00033 // --------------------- 00034 // -- Class Interface -- 00035 // --------------------- 00036 00037 00038 class DTConfigBti : DTConfig { 00039 00040 public: 00041 00042 /* //! constants: first and last step to start trigger finding 00043 static const unsigned int NSTEPL=24, NSTEPF=9; 00044 */ 00045 00047 DTConfigBti(const edm::ParameterSet& ps); 00048 00050 DTConfigBti() {;} 00051 00053 DTConfigBti(unsigned short int * buffer); 00054 00056 ~DTConfigBti(); 00057 00059 void setDefaults(const edm::ParameterSet& ps); 00060 00062 inline int debug() const { return m_debug; } 00063 00065 inline float ST() const { 00066 return (float)( 0.75 * ST43() + 0.25 * RE43() ); } 00067 00069 inline int KCut() const { return m_kcut; } 00070 00072 inline int KAccTheta() const { return m_kacctheta; } 00073 00075 inline bool XON() const { return m_xon; } 00076 00078 inline int LTS() const { return m_lts; } 00079 00081 inline int SET() const { return m_set; } 00082 00084 inline int AccPattAC1() const { return m_ac1; } 00085 00087 inline int AccPattAC2() const { return m_ac2; } 00088 00090 inline int AccPattACH() const { return m_ach; } 00091 00093 inline int AccPattACL() const { return m_acl; } 00094 00096 inline bool RONflag() const { return m_ron; } 00097 00099 inline int PTMSflag(int patt) const { return m_pattmask.element(patt); } 00100 00102 inline int WENflag(int wire) const { return m_wiremask.element(wire-1); } 00103 00105 inline int LL() const { return m_ll; } 00106 00108 inline int LH() const { return m_lh; } 00109 00111 inline int CL() const { return m_cl; } 00112 00114 inline int CH() const { return m_ch; } 00115 00117 inline int RL() const { return m_rl; } 00118 00120 inline int RH() const { return m_rh; } 00121 00123 inline int ST43() const { return m_4st3; } 00124 inline int RE43() const { return m_4re3; } 00125 00127 inline int DEADpar() const { return m_dead;} 00128 00131 inline void setDebug(int debug) { m_debug=debug; } 00132 00134 inline void setKCut(int KCut) { m_kcut=KCut; } 00135 00137 inline void setKAccTheta(int KAccTh) { m_kacctheta=KAccTh; } 00138 00140 inline void setXON(bool XON) { m_xon=XON; } 00141 00143 inline void setLTS(int LTS) { m_lts=LTS; } 00144 00146 inline void setSET(int SET) { m_set=SET; } 00147 00149 inline void setAccPattAC1(int AC1) { m_ac1=AC1; } 00150 00152 inline void setAccPattAC2(int AC2) { m_ac2=AC2; } 00153 00155 inline void setAccPattACH(int ACH) { m_ach=ACH; } 00156 00158 inline void setAccPattACL(int ACL) { m_acl=ACL; } 00159 00161 inline void setRONflag(bool RON) { m_ron=RON; } 00162 00164 inline void setPTMSflag(int mask, int patt) { m_pattmask.set(patt,mask); } 00165 00167 inline void setWENflag(int mask, int wire) { m_wiremask.set(wire-1,mask); } 00168 00170 inline void setLL(int LL) { m_ll=LL; } 00171 00173 inline void setLH(int LH) { m_lh=LH; } 00174 00176 inline void setCL(int CL) { m_cl=CL; } 00177 00179 inline void setCH(int CH) { m_ch=CH; } 00180 00182 inline void setRL(int RL) { m_rl=RL; } 00183 00185 inline void setRH(int RH) { m_rh=RH; } 00186 00188 inline void setST43(int ST43) { m_4st3=ST43; } 00189 inline void setRE43(int RE43) { m_4re3=RE43; } 00190 00192 inline void setDEADpar(int DEAD) { m_dead=DEAD;} 00193 00195 void print() const ; 00196 00197 /* //! Return pointer to parameter set */ 00198 /* const edm::ParameterSet* getParameterSet() { return m_ps; } */ 00199 00200 00201 private: 00202 // const edm::ParameterSet* m_ps; 00203 00204 int8_t m_debug; 00205 int8_t m_kcut; 00206 int8_t m_kacctheta; 00207 bool m_xon; 00208 int8_t m_lts; 00209 int8_t m_set; 00210 int8_t m_ac1; 00211 int8_t m_ac2; 00212 int8_t m_ach; 00213 int8_t m_acl; 00214 bool m_ron; 00215 BitArray<32> m_pattmask; 00216 BitArray<9> m_wiremask; 00217 int8_t m_ll; 00218 int8_t m_lh; 00219 int8_t m_cl; 00220 int8_t m_ch; 00221 int8_t m_rl; 00222 int8_t m_rh; 00223 int8_t m_4st3; 00224 int8_t m_4re3; 00225 int8_t m_dead; 00226 }; 00227 00228 #endif