CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
BesStatus.cxx
Go to the documentation of this file.
1//
2// BesStatus.cxx
3//
4
5#include <iostream>
6
8
9using namespace std;
10
11#ifndef __CINT__
13#endif
14
15//__________________________________________________________
16// BesStatus
17// holds view status flags
18//
19//
20BesStatus::BesStatus() : TObject() {
21 //
22 // BesStatus default constructor
23 Default(kXYView); //Long Peixun's update: Give an initial value
24 if ( gDebug ) cout << "BesStatus default ctor called" << endl;
25}
26
27//__________________________________________________________
28
30 //
31 // BesStatus default destructor
32 if (gDebug) {
33 cout << "BesStatus default dtor called" << endl;
34 }
35}
36
37//__________________________________________________________
38
40 //
41 // default view settings
42 if ( type & k3DView ) {
43 if ( gDebug ) cout << "BesStatus default 3D called" << endl;
44
45 //Long Peixun's update: Add CGEM option
46 fCgemGlobal = 0;
47 fCgemLayers = 1;
48 fCgemXStrips = 0;
49 fCgemVStrips = 0;
50
51 //Long Peixun's update: Change some default value
52 fMdcGlobal = 0; // nothing, Long Peixun: 1 -> 0
53 fMdcTubes = 1; // tubes
54 fMdcWires = 0; // wires
55
56 fTofGlobal = 0; // nothing, Long Peixun: 1 -> 0
57 fTofEast = 1; // scintilator
58 fTofBarrel = 1; // scintilator
59 fTofWest = 1; // scintilator
60
61 fEmcGlobal = 0; // nothing, Long Peixun: 1 -> 0
62 fEmcEast = 1; // east frame, one cirlcle
63 fEmcBarrel = 1; // frame,
64 fEmcWest = 1; // west frame, one circle
65 fEmcSide = 0; // side
66
67 fMucGlobal = 0; // nothing, Long Peixun: 1 -> 0
68 fMucEast = 0; // gap
69 fMucBarrel = 1; // gap
70 fMucWest = 0; // gap
71 fMucStrips = 0; // strips
72
73 fFull3DMdc = 0;
74 fFull3DTof = 0;
75 fFull3DEmc = 0;
76 fFull3DMuc = 0;
77
78 fBeamPipe = 0; // beamPipe, Long Peixun: 1 -> 0
79 fZRPlaneOnXY = 0;
80 fAxis = 0;
81
82 //Long Peixun's update: add Cgem hits status
88
90 fMdcHits = 1;
91
93 fTofHitsEast = 1;
95 fTofHitsWest = 1;
96
98 fEmcHitsEast = 1;
100 fEmcHitsWest = 1;
101 fEmcHitsSide = 0;
102
103 fMucHitsGlobal = 1;
104 fMucHitsEast = 1;
105 fMucHitsBarrel = 1;
106 fMucHitsWest = 1;
107
108 fTracksGlobal = 1;
109 fTracksMdc = 1;
110 fTracksIdeal = 0;
111 fTracksTof = 1;
112 fTracksEmc = 1;
113 fTracksMuc = 1;
114 fTracksExt = 1;
115
116 //Update: Follow Peter's work
117 fMCTruthTrack = 0;
118
119 fFishEye = 0;
120 fPhiRangeMin = 90;
121 fPhiRangeMax = 120;
122 fZoom = 1.0; //Long Peixun's update: Initialize fZoom in 3D view
123
124 } else if ( type & kXYView ) {
125
126 if ( gDebug ) cout << "BesStatus default XY called" << endl;
127
128 //Long Peixun's update: Add CGEM option
129 fCgemGlobal = 1;
130 fCgemLayers = 0;
131 fCgemXStrips = 0;
132 fCgemVStrips = 0;
133
134 fMdcGlobal = 1; // nothing
135 fMdcTubes = 0; // tubes
136 fMdcWires = 0; // wires
137
138 fTofGlobal = 1; // nothing
139 fTofEast = 0; // circle
140 fTofBarrel = 1; // circle
141 fTofWest = 0; // circle
142
143 fEmcGlobal = 1; // nothing
144 fEmcEast = 0; // east ec crystals
145 fEmcBarrel = 1; // 120 crystals
146 fEmcWest = 0; // west ec crystals
147 fEmcSide = 0; // side
148
149 fMucGlobal = 1; // nothing
150 fMucEast = 0; // shape of bakelite or chamber
151 fMucBarrel = 1; // gap
152 fMucWest = 0; // shape of bakelite or chamber
153 fMucStrips = 0; // strips
154
155 fFull3DMdc = 0;
156 fFull3DTof = 0;
157 fFull3DEmc = 0;
158 fFull3DMuc = 0;
159
160 fBeamPipe = 1; // circle
161 fZRPlaneOnXY = 0;
162 fAxis = 0;
163
164 //Long Peixun's update: add Cgem hits status
165 fCgemHitsGlobal = 1;
166 fCgemHitsXStrip = 1;
167 fCgemHitsVStrip = 0;
170
171 fMdcHitsGlobal = 1;
172 fMdcHits = 1;
173
174 fTofHitsGlobal = 1;
175 fTofHitsEast = 1;
176 fTofHitsBarrel = 1;
177 fTofHitsWest = 1;
178
179 fEmcHitsGlobal = 1;
180 fEmcHitsEast = 1;
181 fEmcHitsBarrel = 1;
182 fEmcHitsWest = 1;
183 fEmcHitsSide = 0;
184
185 fMucHitsGlobal = 1;
186 fMucHitsEast = 1;
187 fMucHitsBarrel = 1;
188 fMucHitsWest = 1;
189
190 fTracksGlobal = 1;
191 fTracksMdc = 1;
192 fTracksIdeal = 0;
193 fTracksTof = 1;
194 fTracksEmc = 1;
195 fTracksMuc = 1;
196 fTracksExt = 1;
197
198 //Update: Follow Peter's work
199 fMCTruthTrack = 0;
200
201 fFishEye = 0;
202 fPhiRangeMin = 90;
203 fPhiRangeMax = 120;
204 fZoom = 1.44;
205
206 } else if ( type & kZRView ) {
207
208 if ( gDebug ) cout << "BesStatus default ZR called" << endl;
209
210 //Long Peixun's update: Add CGEM option
211 fCgemGlobal = 1;
212 fCgemLayers = 0;
213 fCgemXStrips = 0;
214 fCgemVStrips = 0;
215
216 fMdcGlobal = 1; // nothing
217 fMdcTubes = 1; // nothing
218 fMdcWires = 0; // wire
219
220 fTofGlobal = 1; // nothing
221 fTofEast = 1; // box
222 fTofBarrel = 1; // box
223 fTofWest = 1; // box
224
225 fEmcGlobal = 1; // nothing
226 fEmcEast = 1; // intersect ec crystals
227 fEmcBarrel = 1; // 44 crystals
228 fEmcWest = 1; // intersect ec crystals
229 fEmcSide = 0; // side
230
231 fMucGlobal = 1; // nothing
232 fMucEast = 1; // project of bakelite or chamber
233 fMucBarrel = 1; // gap
234 fMucWest = 1; // shape of bakelite or chamber
235 fMucStrips = 0; // strips
236
237 fFull3DMdc = 0;
238 fFull3DTof = 0;
239 fFull3DEmc = 0;
240 fFull3DMuc = 0;
241
242 fBeamPipe = 1; // box
243 fZRPlaneOnXY = 0;
244 fAxis = 0;
245
246 //Long Peixun's update: add Cgem hits status
247 fCgemHitsGlobal = 1;
248 fCgemHitsXStrip = 1;
249 fCgemHitsVStrip = 1;
252
253 fMdcHitsGlobal = 1;
254 fMdcHits = 1;
255
256 fTofHitsGlobal = 1;
257 fTofHitsEast = 1;
258 fTofHitsBarrel = 1;
259 fTofHitsWest = 1;
260
261 fEmcHitsGlobal = 1;
262 fEmcHitsEast = 1;
263 fEmcHitsBarrel = 1;
264 fEmcHitsWest = 1;
265 fEmcHitsSide = 0;
266
267 fMucHitsGlobal = 1;
268 fMucHitsEast = 1;
269 fMucHitsBarrel = 1;
270 fMucHitsWest = 1;
271
272 fTracksGlobal = 1;
273 fTracksMdc = 1;
274 fTracksIdeal = 0;
275 fTracksTof = 1;
276 fTracksEmc = 1;
277 fTracksMuc = 1;
278 fTracksExt = 1;
279
280 //Update: Follow Peter's work
281 fMCTruthTrack = 0;
282
283 fFishEye = 0;
284 fPhiRangeMin = 90;
285 fPhiRangeMax = 120;
286 fZoom = 1.44;
287 }
288
289 //Long Peixun's update: Add CGEM unfolded view for each layer
290 else if (type & kCgemUFView0)
291 {
292 if ( gDebug ) cout << "BesStatus default CGEM UF0 called" << endl;
293
294 fCgemGlobal = 1;
295 fCgemLayers = 1;
296 fCgemXStrips = 0;
297 fCgemVStrips = 0;
298
299 fMdcGlobal = 1; // nothing
300 fMdcTubes = 0; // tubes
301 fMdcWires = 0; // wires
302
303 fTofGlobal = 1; // nothing
304 fTofEast = 0; // circle
305 fTofBarrel = 1; // circle
306 fTofWest = 0; // circle
307
308 fEmcGlobal = 1; // nothing
309 fEmcEast = 0; // east ec crystals
310 fEmcBarrel = 1; // 120 crystals
311 fEmcWest = 0; // west ec crystals
312 fEmcSide = 0; // side
313
314 fMucGlobal = 1; // nothing
315 fMucEast = 0; // shape of bakelite or chamber
316 fMucBarrel = 1; // gap
317 fMucWest = 0; // shape of bakelite or chamber
318 fMucStrips = 0; // strips
319
320 fFull3DMdc = 0;
321 fFull3DTof = 0;
322 fFull3DEmc = 0;
323 fFull3DMuc = 0;
324
325 fBeamPipe = 1; // circle
326 fZRPlaneOnXY = 0;
327 fAxis = 0;
328
329 fCgemHitsGlobal = 1;
330 fCgemHitsXStrip = 1;
331 fCgemHitsVStrip = 1;
334
335 fMdcHitsGlobal = 1;
336 fMdcHits = 1;
337
338 fTofHitsGlobal = 1;
339 fTofHitsEast = 1;
340 fTofHitsBarrel = 1;
341 fTofHitsWest = 1;
342
343 fEmcHitsGlobal = 1;
344 fEmcHitsEast = 1;
345 fEmcHitsBarrel = 1;
346 fEmcHitsWest = 1;
347 fEmcHitsSide = 0;
348
349 fMucHitsGlobal = 1;
350 fMucHitsEast = 1;
351 fMucHitsBarrel = 1;
352 fMucHitsWest = 1;
353
354 fTracksGlobal = 1;
355 fTracksMdc = 1;
356 fTracksIdeal = 0;
357 fTracksTof = 1;
358 fTracksEmc = 1;
359 fTracksMuc = 1;
360 fTracksExt = 1;
361
362 //Update: Follow Peter's work
363 fMCTruthTrack = 0;
364
365 fFishEye = 0;
366 fPhiRangeMin = 90;
367 fPhiRangeMax = 120;
368 fZoom = 13.0;
369 }
370 else if (type & kCgemUFView1)
371 {
372 if ( gDebug ) cout << "BesStatus default CGEM UF1 called" << endl;
373
374 fCgemGlobal = 1;
375 fCgemLayers = 1;
376 fCgemXStrips = 0;
377 fCgemVStrips = 0;
378
379 fMdcGlobal = 1; // nothing
380 fMdcTubes = 0; // tubes
381 fMdcWires = 0; // wires
382
383 fTofGlobal = 1; // nothing
384 fTofEast = 0; // circle
385 fTofBarrel = 1; // circle
386 fTofWest = 0; // circle
387
388 fEmcGlobal = 1; // nothing
389 fEmcEast = 0; // east ec crystals
390 fEmcBarrel = 1; // 120 crystals
391 fEmcWest = 0; // west ec crystals
392 fEmcSide = 0; // side
393
394 fMucGlobal = 1; // nothing
395 fMucEast = 0; // shape of bakelite or chamber
396 fMucBarrel = 1; // gap
397 fMucWest = 0; // shape of bakelite or chamber
398 fMucStrips = 0; // strips
399
400 fFull3DMdc = 0;
401 fFull3DTof = 0;
402 fFull3DEmc = 0;
403 fFull3DMuc = 0;
404
405 fBeamPipe = 1; // circle
406 fZRPlaneOnXY = 0;
407 fAxis = 0;
408
409 //Long Peixun's update: add Cgem hits status
410 fCgemHitsGlobal = 1;
411 fCgemHitsXStrip = 1;
412 fCgemHitsVStrip = 1;
415
416 fMdcHitsGlobal = 1;
417 fMdcHits = 1;
418
419 fTofHitsGlobal = 1;
420 fTofHitsEast = 1;
421 fTofHitsBarrel = 1;
422 fTofHitsWest = 1;
423
424 fEmcHitsGlobal = 1;
425 fEmcHitsEast = 1;
426 fEmcHitsBarrel = 1;
427 fEmcHitsWest = 1;
428 fEmcHitsSide = 0;
429
430 fMucHitsGlobal = 1;
431 fMucHitsEast = 1;
432 fMucHitsBarrel = 1;
433 fMucHitsWest = 1;
434
435 fTracksGlobal = 1;
436 fTracksMdc = 1;
437 fTracksIdeal = 0;
438 fTracksTof = 1;
439 fTracksEmc = 1;
440 fTracksMuc = 1;
441 fTracksExt = 1;
442
443 //Update: Follow Peter's work
444 fMCTruthTrack = 0;
445
446 fFishEye = 0;
447 fPhiRangeMin = 90;
448 fPhiRangeMax = 120;
449 fZoom = 9.0;
450 }
451 else if (type & kCgemUFView2)
452 {
453 if ( gDebug ) cout << "BesStatus default CGEM UF2 called" << endl;
454
455 fCgemGlobal = 1;
456 fCgemLayers = 1;
457 fCgemXStrips = 0;
458 fCgemVStrips = 0;
459
460 fMdcGlobal = 1; // nothing
461 fMdcTubes = 0; // tubes
462 fMdcWires = 0; // wires
463
464 fTofGlobal = 1; // nothing
465 fTofEast = 0; // circle
466 fTofBarrel = 1; // circle
467 fTofWest = 0; // circle
468
469 fEmcGlobal = 1; // nothing
470 fEmcEast = 0; // east ec crystals
471 fEmcBarrel = 1; // 120 crystals
472 fEmcWest = 0; // west ec crystals
473 fEmcSide = 0; // side
474
475 fMucGlobal = 1; // nothing
476 fMucEast = 0; // shape of bakelite or chamber
477 fMucBarrel = 1; // gap
478 fMucWest = 0; // shape of bakelite or chamber
479 fMucStrips = 0; // strips
480
481 fFull3DMdc = 0;
482 fFull3DTof = 0;
483 fFull3DEmc = 0;
484 fFull3DMuc = 0;
485
486 fBeamPipe = 1; // circle
487 fZRPlaneOnXY = 0;
488 fAxis = 0;
489
490 //Long Peixun's update: add Cgem hits status
491 fCgemHitsGlobal = 1;
492 fCgemHitsXStrip = 1;
493 fCgemHitsVStrip = 1;
496
497 fMdcHitsGlobal = 1;
498 fMdcHits = 1;
499
500 fTofHitsGlobal = 1;
501 fTofHitsEast = 1;
502 fTofHitsBarrel = 1;
503 fTofHitsWest = 1;
504
505 fEmcHitsGlobal = 1;
506 fEmcHitsEast = 1;
507 fEmcHitsBarrel = 1;
508 fEmcHitsWest = 1;
509 fEmcHitsSide = 0;
510
511 fMucHitsGlobal = 1;
512 fMucHitsEast = 1;
513 fMucHitsBarrel = 1;
514 fMucHitsWest = 1;
515
516 fTracksGlobal = 1;
517 fTracksMdc = 1;
518 fTracksIdeal = 0;
519 fTracksTof = 1;
520 fTracksEmc = 1;
521 fTracksMuc = 1;
522 fTracksExt = 1;
523
524 //Update: Follow Peter's work
525 fMCTruthTrack = 0;
526
527 fFishEye = 0;
528 fPhiRangeMin = 90;
529 fPhiRangeMax = 120;
530 fZoom = 7.0;
531 }
532}
533
534//__________________________________________________________
535
536void BesStatus::Transfer(BesStatus *right, Bool_t set) {
537 //
538 // transfer status informations from one status instance to
539 // another, from here, all components transfer functions are called
540 if ( gDebug ) cout << "BesStatus::Transfer(BesStatus *right) called" << endl;
541
542 this->TransferGeometryCgem (right, set); //Long Peixun's update: for CGEM
543 this->TransferGeometryMdc (right, set);
544 this->TransferGeometryTof (right, set);
545 this->TransferGeometryEmc (right, set);
546 this->TransferGeometryMuc (right, set);
547 this->TransferGeometryFull3D (right, set);
548 this->TransferGeometryOtherParts (right, set);
549
550 this->TransferHitsCgem(right, set);
551 this->TransferHitsMdc (right, set);
552 this->TransferHitsTof (right, set);
553 this->TransferHitsEmc (right, set);
554 this->TransferHitsMuc (right, set);
555
556 this->TransferTracks (right, set);
557
558 this->TransferFishEye (right, set);
559 this->TransferPhiRange (right, set);
560 this->TransferZoom (right, set);
561}
562
563//__________________________________________________________
564//Long Peixun's update: for CGEM
566{
567 fCgemGlobal = right->fCgemGlobal;
568 fCgemLayers = right->fCgemLayers;
569 fCgemXStrips = right->fCgemXStrips;
570 fCgemVStrips = right->fCgemVStrips;
571}
572
573//__________________________________________________________
574
576
577 fMdcGlobal = right->fMdcGlobal;
578 fMdcTubes = right->fMdcTubes;
579 fMdcWires = right->fMdcWires;
580}
581
582// ____________________________________________________________
583
585
586 fTofGlobal = right->fTofGlobal;
587 fTofEast = right->fTofEast;
588 fTofBarrel = right->fTofBarrel;
589 fTofWest = right->fTofWest;
590}
591
592//__________________________________________________________
593
595
596 fEmcGlobal = right->fEmcGlobal;
597 fEmcEast = right->fEmcEast;
598 fEmcBarrel = right->fEmcBarrel;
599 fEmcWest = right->fEmcWest;
600 fEmcSide = right->fEmcSide;
601}
602
603// ____________________________________________________________
604
606
607 fMucGlobal = right->fMucGlobal;
608 fMucEast = right->fMucEast;
609 fMucBarrel = right->fMucBarrel;
610 fMucWest = right->fMucWest;
611 fMucStrips = right->fMucStrips;
612}
613
614// ____________________________________________________________
615
617{
618 fFull3DCgem = right->fFull3DCgem; //Long Peixun's update: for CGEM
619 fFull3DMdc = right->fFull3DMdc;
620 fFull3DTof = right->fFull3DTof;
621 fFull3DEmc = right->fFull3DEmc;
622 fFull3DMuc = right->fFull3DMuc;
623}
624
625// ____________________________________________________________
626
628
629 fBeamPipe = right->fBeamPipe;
630 fZRPlaneOnXY = right->fZRPlaneOnXY;
631 fAxis = right->fAxis;
632}
633
634//__________________________________________________________
635//Long Peixun's update: for CGEM
636void BesStatus::TransferHitsCgem(BesStatus *right, Bool_t set) {
637
643}
644
645//__________________________________________________________
646
647void BesStatus::TransferHitsMdc(BesStatus *right, Bool_t set) {
648
650 fMdcHits = right->fMdcHits;
651}
652
653//__________________________________________________________
654
655void BesStatus::TransferHitsTof(BesStatus *right, Bool_t set) {
656
658 fTofHitsEast = right->fTofHitsEast;
660 fTofHitsWest = right->fTofHitsWest;
661}
662
663//__________________________________________________________
664
665void BesStatus::TransferHitsEmc(BesStatus *right, Bool_t set) {
666
668 fEmcHitsEast = right->fEmcHitsEast;
670 fEmcHitsWest = right->fEmcHitsWest;
671 fEmcHitsSide = right->fEmcHitsSide;
672}
673
674//__________________________________________________________
675
676void BesStatus::TransferHitsMuc(BesStatus *right, Bool_t set) {
677
679 fMucHitsEast = right->fMucHitsEast;
681 fMucHitsWest = right->fMucHitsWest;
682}
683
684//__________________________________________________________
685
686void BesStatus::TransferTracks(BesStatus *right, Bool_t set) {
687
689 fTracksMdc = right->fTracksMdc;
690 fTracksIdeal = right->fTracksIdeal;
691 fTracksTof = right->fTracksTof;
692 fTracksEmc = right->fTracksEmc;
693 fTracksMuc = right->fTracksMuc;
694 fTracksExt = right->fTracksExt;
696}
697
698//__________________________________________________________
699
700void BesStatus::TransferFishEye(BesStatus *right, Bool_t set) {
701 //
702 // transfer function for fish eye flag
703 if ( gDebug ) cout << "BesStatus::TransferFishEye(BesStatus *right) called" << endl;
704
705 fFishEye = right->fFishEye;
706}
707
708//__________________________________________________________
709
710void BesStatus::TransferPhiRange(BesStatus *right, Bool_t set) {
711 //
712 // transfer function for fish phi range
713 if ( gDebug ) cout << "BesStatus::TransferPhiRange(BesStatus *right) called" << endl;
714
715 fPhiRangeMin = right->fPhiRangeMin;
716 fPhiRangeMax = right->fPhiRangeMax;
717}
718
719//__________________________________________________________
720
721void BesStatus::TransferZoom(BesStatus *right, Bool_t set) {
722 //
723 // transfer function for zoom
724 if ( gDebug ) cout << "BesStatus::TransferZoom(BesStatus *right) called" << endl;
725
726 fZoom = right->fZoom;
727}
728
729istream& operator>> (istream& is,BesStatus& bs)
730{
731 //Long Peixun's update: Add CGEM flags;
732 unsigned int cMdc, cTof, cEmc, cMuc, cFull3D, cOther, cMdcHits, cCgem, cCgemHits;
733 unsigned int cTofHits, cEmcHits, cMucHits, cTracks;
734 Float_t cZoom;
735
736 is >> hex >> cMdc >> cTof >> cEmc >> cMuc >> cFull3D >>
737 cOther >> cMdcHits >> cTofHits >> cEmcHits >> cMucHits >> cTracks >> cZoom
738 >> cCgem >> cCgemHits; //Long Peixun's update: for CGEM
739
740 bs.fMdcGlobal = 1 & (cMdc>>2);
741 bs.fMdcTubes = 1 & (cMdc>>1);
742 bs.fMdcWires = 1 & cMdc;
743
744 bs.fTofGlobal = 1 & (cTof>>3);
745 bs.fTofEast = 1 & (cTof>>2);
746 bs.fTofBarrel = 1 & (cTof>>1);
747 bs.fTofWest = 1 & cTof;
748
749 bs.fEmcGlobal = 1 & (cEmc>>4);
750 bs.fEmcEast = 1 & (cEmc>>3);
751 bs.fEmcBarrel = 1 & (cEmc>>2);
752 bs.fEmcWest = 1 & (cEmc>>1);
753 bs.fEmcSide = 1 & cEmc;
754
755 bs.fMucGlobal = 1 & (cMuc>>4);
756 bs.fMucEast = 1 & (cMuc>>3);
757 bs.fMucBarrel = 1 & (cMuc>>2);
758 bs.fMucWest = 1 & (cMuc>>1);
759 bs.fMucStrips = 1 & cMuc;
760
761 bs.fFull3DMdc = 1 & (cFull3D>>3);
762 bs.fFull3DTof = 1 & (cFull3D>>2);
763 bs.fFull3DEmc = 1 & (cFull3D>>1);
764 bs.fFull3DMuc = 1 & cFull3D;
765
766 bs.fBeamPipe = 1 & (cOther>>2);
767 bs.fZRPlaneOnXY = 1 & (cOther>>1);
768 bs.fAxis = 1 & cOther;
769
770 bs.fMdcHitsGlobal = 1 & (cMdcHits>>1);
771 bs.fMdcHits = 1 & cMdcHits;
772
773 bs.fTofHitsGlobal = 1 & (cTofHits>>3);
774 bs.fTofHitsEast = 1 & (cTofHits>>2);
775 bs.fTofHitsBarrel = 1 & (cTofHits>>1);
776 bs.fTofHitsWest = 1 & cTofHits;
777
778 bs.fEmcHitsGlobal = 1 & (cEmcHits>>4);
779 bs.fEmcHitsEast = 1 & (cEmcHits>>3);
780 bs.fEmcHitsBarrel = 1 & (cEmcHits>>2);
781 bs.fEmcHitsWest = 1 & (cEmcHits>>1);
782 bs.fEmcHitsSide = 1 & cEmcHits;
783
784 bs.fMucHitsGlobal = 1 & (cMucHits>>3);
785 bs.fMucHitsEast = 1 & (cMucHits>>2);
786 bs.fMucHitsBarrel = 1 & (cMucHits>>1);
787 bs.fMucHitsWest = 1 & cMucHits;
788
789 bs.fTracksIdeal = 1 & (cTracks>>7); // flag for ideal track, by wangll
790 bs.fMCTruthTrack = 1 & (cTracks>>6); //Long Peixun's update: Read MC Truth track flag
791 bs.fTracksGlobal = 1 & (cTracks>>5);
792 bs.fTracksMdc = 1 & (cTracks>>4);
793 bs.fTracksTof = 1 & (cTracks>>3);
794 bs.fTracksEmc = 1 & (cTracks>>2);
795 bs.fTracksMuc = 1 & (cTracks>>1);
796 bs.fTracksExt = 1 & cTracks;
797 bs.fZoom = cZoom;
798
799 //Long Peixun's update: Read CGEM flags
800 bs.fCgemGlobal = 1 & (cCgem >> 3);
801 bs.fCgemLayers = 1 & (cCgem >> 2);
802 bs.fCgemXStrips = 1 & (cCgem >> 1);
803 bs.fCgemVStrips = 1 & cCgem;
804 bs.fCgemHitsGlobal = 1 & (cCgemHits >> 4);
805 bs.fCgemHitsXStrip = 1 & (cCgemHits >> 3);
806 bs.fCgemHitsVStrip = 1 & (cCgemHits >> 2);
807 bs.fCgemHitsClusters = 1 & (cCgemHits >> 1);
808 bs.fCgemHitsFiredHL = 1 & cCgemHits;
809
810 return is;
811}
812
813ostream& operator<< (ostream& os,const BesStatus& bs) {
814 return os << hex << " "
815 << (bs.fMdcGlobal<<2) + (bs.fMdcTubes<<1) + bs.fMdcWires << " "
816 << (bs.fTofGlobal<<3) + (bs.fTofEast<<2) + (bs.fTofBarrel<<1) + bs.fTofWest << " "
817 << (bs.fEmcGlobal<<4) + (bs.fEmcEast<<3) + (bs.fEmcBarrel<<2) + (bs.fEmcWest<<1) + bs.fEmcSide << " "
818 << (bs.fMucGlobal<<4) + (bs.fMucEast<<3) + (bs.fMucBarrel<<2) + (bs.fMucWest<<1) + bs.fMucStrips << " "
819 << (bs.fFull3DMdc<<3) + (bs.fFull3DTof<<2) + (bs.fFull3DEmc<<1) + bs.fFull3DMuc << " "
820 << (bs.fBeamPipe<<2) + (bs.fZRPlaneOnXY<<1) + bs.fAxis << " "
821 << (bs.fMdcHitsGlobal<<1) + bs.fMdcHits << " "
822 << (bs.fTofHitsGlobal<<3) + (bs.fTofHitsEast<<2) + (bs.fTofHitsBarrel<<1) + bs.fTofHitsWest << " "
823 << (bs.fEmcHitsGlobal<<4) + (bs.fEmcHitsEast<<3) + (bs.fEmcHitsBarrel<<2) + (bs.fEmcHitsWest<<1) + bs.fEmcHitsSide << " "
824 << (bs.fMucHitsGlobal<<3) + (bs.fMucHitsEast<<2) + (bs.fMucHitsBarrel<<1) + bs.fMucHitsWest << " "
825 //Long Peixun's update: Write MC truth track flag
826 << (bs.fTracksIdeal<<7) + (bs.fMCTruthTrack<<6) + (bs.fTracksGlobal<<5) + (bs.fTracksMdc<<4) + (bs.fTracksTof<<3) + (bs.fTracksEmc<<2) + (bs.fTracksMuc<<1) + bs.fTracksExt << " "
827 << bs.fZoom << " "
828 //Long Peixun's update: Write CGEM flags
829 << (bs.fCgemGlobal << 3) + (bs.fCgemLayers << 2) + (bs.fCgemXStrips << 1) + bs.fCgemVStrips << " "
830 << (bs.fCgemHitsGlobal << 4) + (bs.fCgemHitsXStrip << 3) + (bs.fCgemHitsVStrip << 2) + (bs.fCgemHitsClusters << 1) + bs.fCgemHitsFiredHL;
831}
ostream & operator<<(ostream &os, const BesStatus &bs)
Definition: BesStatus.cxx:813
ClassImp(BesStatus) BesStatus
Definition: BesStatus.cxx:12
istream & operator>>(istream &is, BesStatus &bs)
Definition: BesStatus.cxx:729
EBESViewType
Definition: BesStatus.h:13
@ kCgemUFView2
Definition: BesStatus.h:20
@ kCgemUFView0
Definition: BesStatus.h:18
@ kXYView
Definition: BesStatus.h:15
@ k3DView
Definition: BesStatus.h:14
@ kCgemUFView1
Definition: BesStatus.h:19
@ kZRView
Definition: BesStatus.h:16
float Float_t
Bool_t fTracksEmc
visibility flag for Tof Tracks
Definition: BesStatus.h:122
Bool_t fCgemGlobal
Definition: BesStatus.h:35
Bool_t fMucHitsEast
visibility flag for global Muc Hits
Definition: BesStatus.h:112
void TransferGeometryMdc(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:575
Bool_t fTofHitsEast
visibility flag for global Tof Hits
Definition: BesStatus.h:97
Bool_t fMucBarrel
visivility flag for Muc east EC
Definition: BesStatus.h:65
Bool_t fFull3DCgem
visivility flag for Muc strips
Definition: BesStatus.h:71
Bool_t fFull3DMdc
Definition: BesStatus.h:72
Bool_t fTracksMdc
visibility flag for global Tracks
Definition: BesStatus.h:119
Bool_t fMCTruthTrack
visibility flag for Ext Tracks
Definition: BesStatus.h:128
Bool_t fTofBarrel
visibility flag for Tof east EC
Definition: BesStatus.h:50
Bool_t fMucGlobal
visivility flag for Emc side
Definition: BesStatus.h:63
Bool_t fTracksExt
visibility flag for Muc Tracks
Definition: BesStatus.h:124
Bool_t fCgemHitsGlobal
visibility flag for axis
Definition: BesStatus.h:84
void TransferPhiRange(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:710
void TransferHitsMdc(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:647
void TransferGeometryMuc(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:605
Bool_t fMucStrips
visivility flag for Muc west EC
Definition: BesStatus.h:67
Bool_t fFishEye
visibility flag for MC truth tracks
Definition: BesStatus.h:132
void TransferGeometryFull3D(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:616
void TransferHitsMuc(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:676
void TransferGeometryEmc(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:594
Bool_t fCgemLayers
Definition: BesStatus.h:36
void TransferGeometryTof(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:584
Bool_t fAxis
visibility flag for ZRPlaneOnXY
Definition: BesStatus.h:81
Bool_t fEmcHitsGlobal
visibility flag for Tof Hits West
Definition: BesStatus.h:103
Bool_t fMucHitsWest
visibility flag for Muc Hits Barrel
Definition: BesStatus.h:114
void TransferHitsTof(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:655
Bool_t fZRPlaneOnXY
visibility flag for beam pipe
Definition: BesStatus.h:80
Bool_t fMucWest
visivility flag for Muc barrel
Definition: BesStatus.h:66
Bool_t fMucEast
visivility flag for global Muc
Definition: BesStatus.h:64
Bool_t fMdcWires
visibility flag for Mdc main tubes
Definition: BesStatus.h:44
Bool_t fFull3DMuc
visivility flag for full 3D Emc
Definition: BesStatus.h:75
Bool_t fEmcGlobal
visibility flag for Tof west EC
Definition: BesStatus.h:55
void TransferGeometryOtherParts(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:627
Bool_t fTofHitsWest
visibility flag for Tof Hits Barrel
Definition: BesStatus.h:99
Bool_t fCgemXStrips
Definition: BesStatus.h:37
Bool_t fFull3DEmc
visivility flag for full 3D Tof
Definition: BesStatus.h:74
Bool_t fTofHitsBarrel
visibility flag for Tof Hits East
Definition: BesStatus.h:98
void TransferHitsCgem(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:636
Bool_t fEmcWest
visivility flag for Emc barrel
Definition: BesStatus.h:58
Bool_t fTofWest
visibility flag for Tof barrel
Definition: BesStatus.h:51
Bool_t fTracksIdeal
visibility flag for Mdc Tracks
Definition: BesStatus.h:120
Float_t fPhiRangeMin
flags for fish eye view
Definition: BesStatus.h:136
Bool_t fTofEast
visibility flag for global Tof
Definition: BesStatus.h:49
Bool_t fMdcGlobal
Definition: BesStatus.h:42
Bool_t fCgemVStrips
Definition: BesStatus.h:38
Bool_t fTofHitsGlobal
visibility flag for Mdc Hits
Definition: BesStatus.h:96
Bool_t fEmcHitsBarrel
visibility flag for Emc Hits East
Definition: BesStatus.h:105
Bool_t fEmcEast
visivility flag for global Emc
Definition: BesStatus.h:56
Bool_t fMdcHits
visibility flag for global Mdc Hits
Definition: BesStatus.h:92
Bool_t fMdcTubes
visibility flag for global Mdc
Definition: BesStatus.h:43
Float_t fPhiRangeMax
Definition: BesStatus.h:137
Bool_t fEmcHitsSide
visibility flag for Emc Hits West
Definition: BesStatus.h:107
Bool_t fEmcHitsWest
visibility flag for Emc Hits Barrel
Definition: BesStatus.h:106
Bool_t fEmcSide
visivility flag for Emc west EC
Definition: BesStatus.h:59
Bool_t fFull3DTof
visivility flag for full 3D Mdc
Definition: BesStatus.h:73
Bool_t fTracksMuc
visibility flag for Emc Tracks
Definition: BesStatus.h:123
Bool_t fTofGlobal
visibility flag for Mdc wires
Definition: BesStatus.h:48
void TransferZoom(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:721
Float_t fZoom
Definition: BesStatus.h:140
Bool_t fBeamPipe
visivility flag for full 3D Muc
Definition: BesStatus.h:79
void TransferFishEye(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:700
Bool_t fCgemHitsXStrip
Definition: BesStatus.h:85
void TransferGeometryCgem(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:565
Bool_t fMucHitsBarrel
visibility flag for Muc Hits East
Definition: BesStatus.h:113
Bool_t fEmcHitsEast
visibility flag for global Emc Hits
Definition: BesStatus.h:104
Bool_t fCgemHitsClusters
Definition: BesStatus.h:87
Bool_t fTracksTof
visibility flag for Ideal Tracks, added by wangll
Definition: BesStatus.h:121
Bool_t fEmcBarrel
visivility flag for Emc east EC
Definition: BesStatus.h:57
void Transfer(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:536
Bool_t fMucHitsGlobal
visibility flag for Emc Hits Side
Definition: BesStatus.h:111
Bool_t fMdcHitsGlobal
Definition: BesStatus.h:91
Bool_t fCgemHitsFiredHL
Definition: BesStatus.h:88
virtual ~BesStatus()
Definition: BesStatus.cxx:29
void TransferTracks(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:686
void Default(EBESViewType type)
Definition: BesStatus.cxx:39
void TransferHitsEmc(BesStatus *right, Bool_t set)
Definition: BesStatus.cxx:665
Bool_t fCgemHitsVStrip
Definition: BesStatus.h:86
Bool_t fTracksGlobal
visibility flag for Muc Hits West
Definition: BesStatus.h:118