00001 // Interface Object Class : TMuiPseudoBLT 00002 // Author: chun zhang 00003 // Data: 12/03/03 00004 // Description: Class for muon identifier road 00005 00006 #ifndef _TMUIPseudoBLTO_H_ 00007 #define _TMUIPseudoBLTO_H_ 00008 00009 // CINT compatible headers// 00010 // 00011 #include<TDataType.h> 00012 #include<PHKey.hh> 00013 #include<PHException.h> 00014 #include<MUIOO.h> 00015 00016 00018 00019 00028 class TMuiPseudoBLTO : public PHKey { 00029 00030 public: 00031 00033 00034 00036 TMuiPseudoBLTO(){;} 00037 00039 virtual ~TMuiPseudoBLTO(){;} 00040 00042 TMuiPseudoBLTO(const Key& key) : 00043 PHKey(key){;} 00044 00046 TMuiPseudoBLTO(const Key&, 00047 UShort_t arm, 00048 UShort_t index){;} 00049 00051 00053 00054 00056 virtual void fire_2D() {;} 00057 00059 virtual void fire_1D1S() {;} 00060 00062 virtual void fire_1D(const UShort_t iquad) {;} 00063 00065 virtual void fire_1S(const UShort_t iquad) {;} 00066 00068 00069 00070 00072 virtual void fire_reco_2D() {;} 00073 00075 virtual void fire_reco_1D1S() {;} 00076 00078 virtual void fire_reco_1D(const UShort_t iquad) {;} 00079 00081 virtual void fire_reco_1S(const UShort_t iquad) {;} 00082 00084 00086 00087 00089 virtual bool is_2D_fired() const { return false;} 00090 00092 virtual bool is_1D1S_fired() const { return false;} 00093 00095 virtual bool is_1D_fired(const UShort_t iquad) const { return false;} 00096 00098 virtual bool is_1S_fired(const UShort_t iquad) const { return false;} 00099 00101 00103 00104 00105 virtual bool check_2D_trigger() const { return false;} 00106 00108 virtual bool check_1D1S_trigger() const { return false;} 00109 00111 00113 virtual bool is_reco_2D_fired() const { return false;} 00114 00116 virtual bool is_reco_1D1S_fired() const { return false;} 00117 00119 virtual bool is_reco_1D_fired(const UShort_t iquad) const { return false;} 00120 00122 virtual bool is_reco_1S_fired(const UShort_t iquad) const { return false;} 00123 00125 00127 00128 00129 virtual bool check_2D_with_reco() const { return false;} 00130 00132 virtual bool check_1D1S_with_reco() const { return false;} 00133 00135 00137 00138 00139 virtual void set_arm( UShort_t arm) {} 00140 00142 virtual void set_index( UShort_t index) {} 00143 00145 virtual UShort_t get_arm() const {return 0;} 00146 00148 virtual UShort_t get_index() const {return 0;} 00149 00151 00153 00154 00155 virtual void print(std::ostream& os = std::cout) const {} 00156 00158 00159 ClassDef(TMuiPseudoBLTO,1) 00160 00161 }; 00162 00163 00164 class TMuiPseudoBLTO_v1 : public TMuiPseudoBLTO { 00165 00166 public: 00167 00168 TMuiPseudoBLTO_v1(); 00169 00170 virtual ~TMuiPseudoBLTO_v1(){;} 00171 00172 TMuiPseudoBLTO_v1(const Key&, 00173 UShort_t arm, 00174 UShort_t index); 00175 00176 00177 TMuiPseudoBLTO_v1(const TMuiPseudoBLTO*); 00178 00179 TMuiPseudoBLTO_v1(const TMuiPseudoBLTO&); 00180 00181 void fire_2D() { _is_2D = true;} 00182 00183 void fire_1D1S() { _is_1D1S = true;} 00184 00185 void fire_1D( const UShort_t iquad) { 00186 switch(iquad) 00187 { 00188 case 0: 00189 _is_1D_quad0 = true; 00190 break; 00191 case 1: 00192 _is_1D_quad1 = true; 00193 break; 00194 case 2: 00195 _is_1D_quad2 = true; 00196 break; 00197 case 3: 00198 _is_1D_quad3 = true; 00199 } 00200 } 00201 00202 void fire_1S( const UShort_t iquad) { 00203 switch(iquad) 00204 { 00205 case 0: 00206 _is_1S_quad0 = true; 00207 break; 00208 case 1: 00209 _is_1S_quad1 = true; 00210 break; 00211 case 2: 00212 _is_1S_quad2 = true; 00213 break; 00214 case 3: 00215 _is_1S_quad3 = true; 00216 } 00217 } 00218 00219 bool check_2D_trigger() const; 00220 bool check_1D1S_trigger() const; 00221 00222 bool is_2D_fired() const { return _is_2D;} 00223 00224 bool is_1D1S_fired() const { return _is_1D1S;} 00225 00226 bool is_1D_fired(const UShort_t iquad) const { 00227 switch(iquad) 00228 { 00229 case 0: 00230 return _is_1D_quad0; 00231 case 1: 00232 return _is_1D_quad0; 00233 case 2: 00234 return _is_1D_quad0; 00235 case 3: 00236 return _is_1D_quad0; 00237 default: 00238 return false; 00239 } 00240 } 00241 00242 bool is_1S_fired(const UShort_t iquad) const { 00243 switch(iquad) 00244 { 00245 case 0: 00246 return _is_1S_quad0; 00247 case 1: 00248 return _is_1S_quad0; 00249 case 2: 00250 return _is_1S_quad0; 00251 case 3: 00252 return _is_1S_quad0; 00253 default: 00254 return false; 00255 } 00256 } 00257 00258 void fire_reco_2D() { _is_reco_2D = true;} 00259 00260 void fire_reco_1D1S() { _is_reco_1D1S = true;} 00261 00262 void fire_reco_1D( const UShort_t iquad) { 00263 switch(iquad) 00264 { 00265 case 0: 00266 _is_reco_1D_quad0 = true; 00267 break; 00268 case 1: 00269 _is_reco_1D_quad1 = true; 00270 break; 00271 case 2: 00272 _is_reco_1D_quad2 = true; 00273 break; 00274 case 3: 00275 _is_reco_1D_quad3 = true; 00276 } 00277 } 00278 00279 void fire_reco_1S( const UShort_t iquad) { 00280 switch(iquad) 00281 { 00282 case 0: 00283 _is_reco_1S_quad0 = true; 00284 break; 00285 case 1: 00286 _is_reco_1S_quad1 = true; 00287 break; 00288 case 2: 00289 _is_reco_1S_quad2 = true; 00290 break; 00291 case 3: 00292 _is_reco_1S_quad3 = true; 00293 } 00294 } 00295 00296 bool is_reco_2D_fired() const { return _is_reco_2D;} 00297 00298 bool is_reco_1D1S_fired() const { return _is_reco_1D1S;} 00299 00300 bool is_reco_1D_fired(const UShort_t iquad) const { 00301 switch(iquad) 00302 { 00303 case 0: 00304 return _is_reco_1D_quad0; 00305 case 1: 00306 return _is_reco_1D_quad0; 00307 case 2: 00308 return _is_reco_1D_quad0; 00309 case 3: 00310 return _is_reco_1D_quad0; 00311 default: 00312 return false; 00313 } 00314 } 00315 00316 bool is_reco_1S_fired(const UShort_t iquad) const { 00317 switch(iquad) 00318 { 00319 case 0: 00320 return _is_reco_1S_quad0; 00321 case 1: 00322 return _is_reco_1S_quad0; 00323 case 2: 00324 return _is_reco_1S_quad0; 00325 case 3: 00326 return _is_reco_1S_quad0; 00327 default: 00328 return false; 00329 } 00330 } 00331 00332 bool check_2D_with_reco() const { 00333 if(_is_reco_2D == _is_2D) return true; 00334 return false; 00335 } 00336 00337 bool check_1D1S_with_reco() const { 00338 if(_is_reco_1D1S == _is_1D1S) return true; 00339 return false; 00340 } 00341 00342 void set_arm( UShort_t arm) { _arm=arm;} 00343 00344 void set_index( UShort_t index) { _index=index;} 00345 00346 UShort_t get_arm() const {return _arm;} 00347 00348 UShort_t get_index() const {return _index;} 00349 00350 void print(std::ostream& os = std::cout) const { 00351 MUIOO::PRINT(os,GetName()); 00352 os << " arm: " << _arm << std::endl; 00353 os << " index: " << _index << std::endl; 00354 os << " is_2D: " << _is_2D << std::endl; 00355 os << " is_1D1S: " << _is_1D1S << std::endl; 00356 os << " is_1D_quad0: " << _is_1D_quad0 << std::endl; 00357 os << " is_1D_quad1: " << _is_1D_quad1 << std::endl; 00358 os << " is_1D_quad2: " << _is_1D_quad2 << std::endl; 00359 os << " is_1D_quad3: " << _is_1D_quad3 << std::endl; 00360 os << " is_1S_quad0: " << _is_1S_quad0 << std::endl; 00361 os << " is_1S_quad1: " << _is_1S_quad1 << std::endl; 00362 os << " is_1S_quad2: " << _is_1S_quad2 << std::endl; 00363 os << " is_1S_quad3: " << _is_1S_quad3 << std::endl; 00364 os << " trigger decisions from reconstructed hits. " << std::endl; 00365 os << " is_reco_2D: " << _is_reco_2D << std::endl; 00366 os << " is_reco_1D1S: " << _is_reco_1D1S << std::endl; 00367 os << " is_reco_1D_quad0: " << _is_reco_1D_quad0 << std::endl; 00368 os << " is_reco_1D_quad1: " << _is_reco_1D_quad1 << std::endl; 00369 os << " is_reco_1D_quad2: " << _is_reco_1D_quad2 << std::endl; 00370 os << " is_reco_1D_quad3: " << _is_reco_1D_quad3 << std::endl; 00371 os << " is_reco_1S_quad0: " << _is_reco_1S_quad0 << std::endl; 00372 os << " is_reco_1S_quad1: " << _is_reco_1S_quad1 << std::endl; 00373 os << " is_reco_1S_quad2: " << _is_reco_1S_quad2 << std::endl; 00374 os << " is_reco_1S_quad3: " << _is_reco_1S_quad3 << std::endl; 00375 MUIOO::PRINT(os,"**"); 00376 } 00377 00378 private: 00379 00380 UShort_t _arm; 00381 UShort_t _index; 00382 00383 bool _is_2D; 00384 bool _is_1D1S; 00385 bool _is_1D_quad0; 00386 bool _is_1D_quad1; 00387 bool _is_1D_quad2; 00388 bool _is_1D_quad3; 00389 bool _is_1S_quad0; 00390 bool _is_1S_quad1; 00391 bool _is_1S_quad2; 00392 bool _is_1S_quad3; 00393 00394 bool _is_reco_2D; 00395 bool _is_reco_1D1S; 00396 bool _is_reco_1D_quad0; 00397 bool _is_reco_1D_quad1; 00398 bool _is_reco_1D_quad2; 00399 bool _is_reco_1D_quad3; 00400 bool _is_reco_1S_quad0; 00401 bool _is_reco_1S_quad1; 00402 bool _is_reco_1S_quad2; 00403 bool _is_reco_1S_quad3; 00404 00405 ClassDef(TMuiPseudoBLTO_v1,1) 00406 }; 00407 00408 #endif /* _TMUIPSEUDOBLTO_H_ */ 00409 00410 00411 00412 00413 00414 00415 00416 00417