/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/EventDisplay/BesVisLib/BesVisLib-00-04-04/src/BesStatus.cxx

Go to the documentation of this file.
00001 //
00002 // BesStatus.cxx
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 // BesStatus
00017 // holds view status flags
00018 //
00019 //
00020 BesStatus::BesStatus() : TObject() {
00021     //
00022     // BesStatus default constructor
00023     if ( gDebug ) cout << "BesStatus default ctor called" << endl;
00024 }
00025 
00026 //__________________________________________________________
00027 
00028 BesStatus::~BesStatus() {
00029     //
00030     // BesStatus default destructor
00031     if (gDebug) {
00032         cout << "BesStatus default dtor called" << endl;
00033     }
00034 }
00035 
00036 //__________________________________________________________
00037 
00038 void BesStatus::Default(EBESViewType type) {
00039     //
00040     // default view settings
00041     if ( type & k3DView ) {
00042         if ( gDebug ) cout << "BesStatus default 3D called" << endl;
00043 
00044         fMdcGlobal = 1;    // nothing
00045         fMdcTubes  = 1;    // tubes
00046         fMdcWires  = 0;    // wires
00047 
00048         fTofGlobal = 1;    // nothing
00049         fTofEast   = 1;    // scintilator
00050         fTofBarrel = 1;    // scintilator
00051         fTofWest   = 1;    // scintilator
00052 
00053         fEmcGlobal = 0;    // nothing
00054         fEmcEast   = 1;    // east frame, one cirlcle
00055         fEmcBarrel = 1;    // frame,
00056         fEmcWest   = 1;    // west frame, one circle
00057         fEmcSide   = 0;    // side
00058 
00059         fMucGlobal = 1;    // nothing
00060         fMucEast   = 0;    // gap
00061         fMucBarrel = 1;    // gap
00062         fMucWest   = 0;    // gap
00063         fMucStrips = 0;    // strips
00064 
00065         fFull3DMdc = 0;
00066         fFull3DTof = 0;
00067         fFull3DEmc = 0;
00068         fFull3DMuc = 0;
00069 
00070         fBeamPipe       = 1; // beamPipe
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;    // nothing
00110         fMdcTubes  = 0;    // tubes
00111         fMdcWires  = 0;    // wires
00112 
00113         fTofGlobal = 1;    // nothing
00114         fTofEast   = 0;    // circle
00115         fTofBarrel = 1;    // circle
00116         fTofWest   = 0;    // circle
00117 
00118         fEmcGlobal = 1;    // nothing
00119         fEmcEast   = 0;    // east ec crystals
00120         fEmcBarrel = 1;    // 120 crystals
00121         fEmcWest   = 0;    // west ec crystals
00122         fEmcSide   = 0;    // side
00123 
00124         fMucGlobal = 1;    // nothing
00125         fMucEast   = 0;    // shape of bakelite or chamber
00126         fMucBarrel = 1;    // gap
00127         fMucWest   = 0;    // shape of bakelite or chamber
00128         fMucStrips = 0;    // strips
00129 
00130         fFull3DMdc = 0;
00131         fFull3DTof = 0;
00132         fFull3DEmc = 0;
00133         fFull3DMuc = 0;
00134 
00135         fBeamPipe       = 1; // circle
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;    // nothing
00177         fMdcTubes  = 1;    // nothing
00178         fMdcWires  = 0;    // wire
00179 
00180         fTofGlobal = 1;    // nothing
00181         fTofEast   = 1;    // box
00182         fTofBarrel = 1;    // box
00183         fTofWest   = 1;    // box
00184 
00185         fEmcGlobal = 1;    // nothing
00186         fEmcEast   = 1;    // intersect ec crystals
00187         fEmcBarrel = 1;    // 44 crystals
00188         fEmcWest   = 1;    // intersect ec crystals
00189         fEmcSide   = 0;    // side
00190 
00191         fMucGlobal = 1;    // nothing
00192         fMucEast   = 1;    // project of bakelite or chamber
00193         fMucBarrel = 1;    // gap
00194         fMucWest   = 1;    // shape of bakelite or chamber
00195         fMucStrips = 0;    // strips
00196 
00197         fFull3DMdc = 0;
00198         fFull3DTof = 0;
00199         fFull3DEmc = 0;
00200         fFull3DMuc = 0;
00201 
00202         fBeamPipe       = 1; // box
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     // transfer status informations from one status instance to
00246     // another, from here, all components transfer functions are called
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     // transfer function for fish eye flag
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     // transfer function for fish phi range
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     // transfer function for zoom
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 }

Generated on Tue Nov 29 23:12:04 2016 for BOSS_7.0.2 by  doxygen 1.4.7