00001
00002
00003
00004
00005 #include <iostream>
00006
00007 #include "BesVisLib/BesStatus.h"
00008
00009 using namespace std;
00010
00011 #ifndef __CINT__
00012 ClassImp(BesStatus)
00013 #endif
00014
00015
00016
00017
00018
00019
00020 BesStatus::BesStatus() : TObject() {
00021
00022
00023 if ( gDebug ) cout << "BesStatus default ctor called" << endl;
00024 }
00025
00026
00027
00028 BesStatus::~BesStatus() {
00029
00030
00031 if (gDebug) {
00032 cout << "BesStatus default dtor called" << endl;
00033 }
00034 }
00035
00036
00037
00038 void BesStatus::Default(EBESViewType type) {
00039
00040
00041 if ( type & k3DView ) {
00042 if ( gDebug ) cout << "BesStatus default 3D called" << endl;
00043
00044 fMdcGlobal = 1;
00045 fMdcTubes = 1;
00046 fMdcWires = 0;
00047
00048 fTofGlobal = 1;
00049 fTofEast = 1;
00050 fTofBarrel = 1;
00051 fTofWest = 1;
00052
00053 fEmcGlobal = 0;
00054 fEmcEast = 1;
00055 fEmcBarrel = 1;
00056 fEmcWest = 1;
00057 fEmcSide = 0;
00058
00059 fMucGlobal = 1;
00060 fMucEast = 0;
00061 fMucBarrel = 1;
00062 fMucWest = 0;
00063 fMucStrips = 0;
00064
00065 fFull3DMdc = 0;
00066 fFull3DTof = 0;
00067 fFull3DEmc = 0;
00068 fFull3DMuc = 0;
00069
00070 fBeamPipe = 1;
00071 fZRPlaneOnXY = 0;
00072 fAxis = 0;
00073
00074 fMdcHitsGlobal = 1;
00075 fMdcHits = 1;
00076
00077 fTofHitsGlobal = 1;
00078 fTofHitsEast = 1;
00079 fTofHitsBarrel = 1;
00080 fTofHitsWest = 1;
00081
00082 fEmcHitsGlobal = 1;
00083 fEmcHitsEast = 1;
00084 fEmcHitsBarrel = 1;
00085 fEmcHitsWest = 1;
00086 fEmcHitsSide = 0;
00087
00088 fMucHitsGlobal = 1;
00089 fMucHitsEast = 1;
00090 fMucHitsBarrel = 1;
00091 fMucHitsWest = 1;
00092
00093 fTracksGlobal = 1;
00094 fTracksMdc = 1;
00095 fTracksTof = 1;
00096 fTracksEmc = 1;
00097 fTracksMuc = 1;
00098 fTracksExt = 1;
00099
00100 fFishEye = 0;
00101
00102 fPhiRangeMin = 90;
00103 fPhiRangeMax = 120;
00104
00105 } else if ( type & kXYView ) {
00106
00107 if ( gDebug ) cout << "BesStatus default ZR called" << endl;
00108
00109 fMdcGlobal = 1;
00110 fMdcTubes = 0;
00111 fMdcWires = 0;
00112
00113 fTofGlobal = 1;
00114 fTofEast = 0;
00115 fTofBarrel = 1;
00116 fTofWest = 0;
00117
00118 fEmcGlobal = 1;
00119 fEmcEast = 0;
00120 fEmcBarrel = 1;
00121 fEmcWest = 0;
00122 fEmcSide = 0;
00123
00124 fMucGlobal = 1;
00125 fMucEast = 0;
00126 fMucBarrel = 1;
00127 fMucWest = 0;
00128 fMucStrips = 0;
00129
00130 fFull3DMdc = 0;
00131 fFull3DTof = 0;
00132 fFull3DEmc = 0;
00133 fFull3DMuc = 0;
00134
00135 fBeamPipe = 1;
00136 fZRPlaneOnXY = 0;
00137 fAxis = 0;
00138
00139 fMdcHitsGlobal = 1;
00140 fMdcHits = 1;
00141
00142 fTofHitsGlobal = 1;
00143 fTofHitsEast = 1;
00144 fTofHitsBarrel = 1;
00145 fTofHitsWest = 1;
00146
00147 fEmcHitsGlobal = 1;
00148 fEmcHitsEast = 1;
00149 fEmcHitsBarrel = 1;
00150 fEmcHitsWest = 1;
00151 fEmcHitsSide = 0;
00152
00153 fMucHitsGlobal = 1;
00154 fMucHitsEast = 1;
00155 fMucHitsBarrel = 1;
00156 fMucHitsWest = 1;
00157
00158 fTracksGlobal = 1;
00159 fTracksMdc = 1;
00160 fTracksTof = 1;
00161 fTracksEmc = 1;
00162 fTracksMuc = 1;
00163 fTracksExt = 1;
00164
00165 fFishEye = 0;
00166
00167 fPhiRangeMin = 90;
00168 fPhiRangeMax = 120;
00169
00170 fZoom = 1.44;
00171
00172 } else if ( type & kZRView ) {
00173
00174 if ( gDebug ) cout << "BesStatus default ZR called" << endl;
00175
00176 fMdcGlobal = 1;
00177 fMdcTubes = 1;
00178 fMdcWires = 0;
00179
00180 fTofGlobal = 1;
00181 fTofEast = 1;
00182 fTofBarrel = 1;
00183 fTofWest = 1;
00184
00185 fEmcGlobal = 1;
00186 fEmcEast = 1;
00187 fEmcBarrel = 1;
00188 fEmcWest = 1;
00189 fEmcSide = 0;
00190
00191 fMucGlobal = 1;
00192 fMucEast = 1;
00193 fMucBarrel = 1;
00194 fMucWest = 1;
00195 fMucStrips = 0;
00196
00197 fFull3DMdc = 0;
00198 fFull3DTof = 0;
00199 fFull3DEmc = 0;
00200 fFull3DMuc = 0;
00201
00202 fBeamPipe = 1;
00203 fZRPlaneOnXY = 0;
00204 fAxis = 0;
00205
00206 fMdcHitsGlobal = 1;
00207 fMdcHits = 1;
00208
00209 fTofHitsGlobal = 1;
00210 fTofHitsEast = 1;
00211 fTofHitsBarrel = 1;
00212 fTofHitsWest = 1;
00213
00214 fEmcHitsGlobal = 1;
00215 fEmcHitsEast = 1;
00216 fEmcHitsBarrel = 1;
00217 fEmcHitsWest = 1;
00218 fEmcHitsSide = 0;
00219
00220 fMucHitsGlobal = 1;
00221 fMucHitsEast = 1;
00222 fMucHitsBarrel = 1;
00223 fMucHitsWest = 1;
00224
00225 fTracksGlobal = 1;
00226 fTracksMdc = 1;
00227 fTracksTof = 1;
00228 fTracksEmc = 1;
00229 fTracksMuc = 1;
00230 fTracksExt = 1;
00231
00232 fFishEye = 0;
00233
00234 fPhiRangeMin = 90;
00235 fPhiRangeMax = 120;
00236
00237 fZoom = 1.44;
00238 }
00239 }
00240
00241
00242
00243 void BesStatus::Transfer(BesStatus *right, Bool_t set) {
00244
00245
00246
00247 if ( gDebug ) cout << "BesStatus::Transfer(BesStatus *right) called" << endl;
00248
00249 this->TransferGeometryMdc (right, set);
00250 this->TransferGeometryTof (right, set);
00251 this->TransferGeometryEmc (right, set);
00252 this->TransferGeometryMuc (right, set);
00253 this->TransferGeometryFull3D (right, set);
00254 this->TransferGeometryOtherParts (right, set);
00255
00256 this->TransferHitsMdc (right, set);
00257 this->TransferHitsTof (right, set);
00258 this->TransferHitsEmc (right, set);
00259 this->TransferHitsMuc (right, set);
00260
00261 this->TransferTracks (right, set);
00262
00263 this->TransferFishEye (right, set);
00264 this->TransferPhiRange (right, set);
00265 this->TransferZoom (right, set);
00266 }
00267
00268
00269
00270 void BesStatus::TransferGeometryMdc(BesStatus *right, Bool_t set) {
00271
00272 fMdcGlobal = right->fMdcGlobal;
00273 fMdcTubes = right->fMdcTubes;
00274 fMdcWires = right->fMdcWires;
00275 }
00276
00277
00278
00279 void BesStatus::TransferGeometryTof(BesStatus *right, Bool_t set) {
00280
00281 fTofGlobal = right->fTofGlobal;
00282 fTofEast = right->fTofEast;
00283 fTofBarrel = right->fTofBarrel;
00284 fTofWest = right->fTofWest;
00285 }
00286
00287
00288
00289 void BesStatus::TransferGeometryEmc(BesStatus *right, Bool_t set) {
00290
00291 fEmcGlobal = right->fEmcGlobal;
00292 fEmcEast = right->fEmcEast;
00293 fEmcBarrel = right->fEmcBarrel;
00294 fEmcWest = right->fEmcWest;
00295 fEmcSide = right->fEmcSide;
00296 }
00297
00298
00299
00300 void BesStatus::TransferGeometryMuc(BesStatus *right, Bool_t set) {
00301
00302 fMucGlobal = right->fMucGlobal;
00303 fMucEast = right->fMucEast;
00304 fMucBarrel = right->fMucBarrel;
00305 fMucWest = right->fMucWest;
00306 fMucStrips = right->fMucStrips;
00307 }
00308
00309
00310
00311 void BesStatus::TransferGeometryFull3D(BesStatus *right, Bool_t set) {
00312
00313 fFull3DMdc = right->fFull3DMdc;
00314 fFull3DTof = right->fFull3DTof;
00315 fFull3DEmc = right->fFull3DEmc;
00316 fFull3DMuc = right->fFull3DMuc;
00317 }
00318
00319
00320
00321 void BesStatus::TransferGeometryOtherParts(BesStatus *right, Bool_t set) {
00322
00323 fBeamPipe = right->fBeamPipe;
00324 fZRPlaneOnXY = right->fZRPlaneOnXY;
00325 fAxis = right->fAxis;
00326 }
00327
00328
00329
00330 void BesStatus::TransferHitsMdc(BesStatus *right, Bool_t set) {
00331
00332 fMdcHitsGlobal = right->fMdcHitsGlobal;
00333 fMdcHits = right->fMdcHits;
00334 }
00335
00336
00337
00338 void BesStatus::TransferHitsTof(BesStatus *right, Bool_t set) {
00339
00340 fTofHitsGlobal = right->fTofHitsGlobal;
00341 fTofHitsEast = right->fTofHitsEast;
00342 fTofHitsBarrel = right->fTofHitsBarrel;
00343 fTofHitsWest = right->fTofHitsWest;
00344 }
00345
00346
00347
00348 void BesStatus::TransferHitsEmc(BesStatus *right, Bool_t set) {
00349
00350 fEmcHitsGlobal = right->fEmcHitsGlobal;
00351 fEmcHitsEast = right->fEmcHitsEast;
00352 fEmcHitsBarrel = right->fEmcHitsBarrel;
00353 fEmcHitsWest = right->fEmcHitsWest;
00354 fEmcHitsSide = right->fEmcHitsSide;
00355 }
00356
00357
00358
00359 void BesStatus::TransferHitsMuc(BesStatus *right, Bool_t set) {
00360
00361 fMucHitsGlobal = right->fMucHitsGlobal;
00362 fMucHitsEast = right->fMucHitsEast;
00363 fMucHitsBarrel = right->fMucHitsBarrel;
00364 fMucHitsWest = right->fMucHitsWest;
00365 }
00366
00367
00368
00369 void BesStatus::TransferTracks(BesStatus *right, Bool_t set) {
00370
00371 fTracksGlobal = right->fTracksGlobal;
00372 fTracksMdc = right->fTracksMdc;
00373 fTracksTof = right->fTracksTof;
00374 fTracksEmc = right->fTracksEmc;
00375 fTracksMuc = right->fTracksMuc;
00376 fTracksExt = right->fTracksExt;
00377 }
00378
00379
00380
00381 void BesStatus::TransferFishEye(BesStatus *right, Bool_t set) {
00382
00383
00384 if ( gDebug ) cout << "BesStatus::TransferFishEye(BesStatus *right) called" << endl;
00385
00386 fFishEye = right->fFishEye;
00387 }
00388
00389
00390
00391 void BesStatus::TransferPhiRange(BesStatus *right, Bool_t set) {
00392
00393
00394 if ( gDebug ) cout << "BesStatus::TransferPhiRange(BesStatus *right) called" << endl;
00395
00396 fPhiRangeMin = right->fPhiRangeMin;
00397 fPhiRangeMax = right->fPhiRangeMax;
00398 }
00399
00400
00401
00402 void BesStatus::TransferZoom(BesStatus *right, Bool_t set) {
00403
00404
00405 if ( gDebug ) cout << "BesStatus::TransferZoom(BesStatus *right) called" << endl;
00406
00407 fZoom = right->fZoom;
00408 }
00409
00410 istream& operator>> (istream& is,BesStatus& bs) {
00411
00412 unsigned int cMdc, cTof, cEmc, cMuc, cFull3D, cOther, cMdcHits;
00413 unsigned int cTofHits, cEmcHits, cMucHits, cTracks;
00414 Float_t cZoom;
00415
00416 is >> hex >> cMdc >> cTof >> cEmc >> cMuc >> cFull3D >>
00417 cOther >> cMdcHits >> cTofHits >> cEmcHits >> cMucHits >> cTracks >> cZoom;
00418
00419 bs.fMdcGlobal = 1 & (cMdc>>2);
00420 bs.fMdcTubes = 1 & (cMdc>>1);
00421 bs.fMdcWires = 1 & cMdc;
00422
00423 bs.fTofGlobal = 1 & (cTof>>3);
00424 bs.fTofEast = 1 & (cTof>>2);
00425 bs.fTofBarrel = 1 & (cTof>>1);
00426 bs.fTofWest = 1 & cTof;
00427
00428 bs.fEmcGlobal = 1 & (cEmc>>4);
00429 bs.fEmcEast = 1 & (cEmc>>3);
00430 bs.fEmcBarrel = 1 & (cEmc>>2);
00431 bs.fEmcWest = 1 & (cEmc>>1);
00432 bs.fEmcSide = 1 & cEmc;
00433
00434 bs.fMucGlobal = 1 & (cMuc>>4);
00435 bs.fMucEast = 1 & (cMuc>>3);
00436 bs.fMucBarrel = 1 & (cMuc>>2);
00437 bs.fMucWest = 1 & (cMuc>>1);
00438 bs.fMucStrips = 1 & cMuc;
00439
00440 bs.fFull3DMdc = 1 & (cFull3D>>3);
00441 bs.fFull3DTof = 1 & (cFull3D>>2);
00442 bs.fFull3DEmc = 1 & (cFull3D>>1);
00443 bs.fFull3DMuc = 1 & cFull3D;
00444
00445 bs.fBeamPipe = 1 & (cOther>>2);
00446 bs.fZRPlaneOnXY = 1 & (cOther>>1);
00447 bs.fAxis = 1 & cOther;
00448
00449 bs.fMdcHitsGlobal = 1 & (cMdcHits>>1);
00450 bs.fMdcHits = 1 & cMdcHits;
00451
00452 bs.fTofHitsGlobal = 1 & (cTofHits>>3);
00453 bs.fTofHitsEast = 1 & (cTofHits>>2);
00454 bs.fTofHitsBarrel = 1 & (cTofHits>>1);
00455 bs.fTofHitsWest = 1 & cTofHits;
00456
00457 bs.fEmcHitsGlobal = 1 & (cEmcHits>>4);
00458 bs.fEmcHitsEast = 1 & (cEmcHits>>3);
00459 bs.fEmcHitsBarrel = 1 & (cEmcHits>>2);
00460 bs.fEmcHitsWest = 1 & (cEmcHits>>1);
00461 bs.fEmcHitsSide = 1 & cEmcHits;
00462
00463 bs.fMucHitsGlobal = 1 & (cMucHits>>3);
00464 bs.fMucHitsEast = 1 & (cMucHits>>2);
00465 bs.fMucHitsBarrel = 1 & (cMucHits>>1);
00466 bs.fMucHitsWest = 1 & cMucHits;
00467
00468 bs.fTracksGlobal = 1 & (cTracks>>5);
00469 bs.fTracksMdc = 1 & (cTracks>>4);
00470 bs.fTracksTof = 1 & (cTracks>>3);
00471 bs.fTracksEmc = 1 & (cTracks>>2);
00472 bs.fTracksMuc = 1 & (cTracks>>1);
00473 bs.fTracksExt = 1 & cTracks;
00474 bs.fZoom = cZoom;
00475
00476 return is;
00477 }
00478
00479 ostream& operator<< (ostream& os,const BesStatus& bs) {
00480
00481 return os << hex << " "
00482 << (bs.fMdcGlobal<<2) + (bs.fMdcTubes<<1) + bs.fMdcWires << " "
00483 << (bs.fTofGlobal<<3) + (bs.fTofEast<<2) + (bs.fTofBarrel<<1) + bs.fTofWest << " "
00484 << (bs.fEmcGlobal<<4) + (bs.fEmcEast<<3) + (bs.fEmcBarrel<<2) + (bs.fEmcWest<<1) + bs.fEmcSide << " "
00485 << (bs.fMucGlobal<<4) + (bs.fMucEast<<3) + (bs.fMucBarrel<<2) + (bs.fMucWest<<1) + bs.fMucStrips << " "
00486 << (bs.fFull3DMdc<<3) + (bs.fFull3DTof<<2) + (bs.fFull3DEmc<<1) + bs.fFull3DMuc << " "
00487 << (bs.fBeamPipe<<2) + (bs.fZRPlaneOnXY<<1) + bs.fAxis << " "
00488 << (bs.fMdcHitsGlobal<<1) + bs.fMdcHits << " "
00489 << (bs.fTofHitsGlobal<<3) + (bs.fTofHitsEast<<2) + (bs.fTofHitsBarrel<<1) + bs.fTofHitsWest << " "
00490 << (bs.fEmcHitsGlobal<<4) + (bs.fEmcHitsEast<<3) + (bs.fEmcHitsBarrel<<2) + (bs.fEmcHitsWest<<1) + bs.fEmcHitsSide << " "
00491 << (bs.fMucHitsGlobal<<3) + (bs.fMucHitsEast<<2) + (bs.fMucHitsBarrel<<1) + bs.fMucHitsWest << " "
00492 << (bs.fTracksGlobal<<5) + (bs.fTracksMdc<<4) + (bs.fTracksTof<<3) + (bs.fTracksEmc<<2) + (bs.fTracksMuc<<1) + bs.fTracksExt << " " << bs.fZoom;
00493
00494 }