2 // Author: Stefano Carrazza 2010
4 /**************************************************************************
5 * Copyright(c) 1998-2009, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
7 * full copyright notice. *
8 **************************************************************************/
10 #include "AliESDEvent.h"
11 #include "AliEveLego.h"
12 #include "AliEveEventManager.h"
13 #include "AliEveMultiView.h"
14 #include "AliPhysicsSelection.h"
15 #include "AliEveEventSelector.h"
19 #include "TGLViewer.h"
20 #include "TEveWindow.h"
21 #include "TEveManager.h"
22 #include "TEveBrowser.h"
23 #include "TEveViewer.h"
24 #include "TEveScene.h"
25 #include "TEveCaloLegoOverlay.h"
27 #include "TEveCaloData.h"
28 #include "TEveLegoEventHandler.h"
29 #include "TEveTrans.h"
30 #include "TEveProjectionManager.h"
31 #include "TEveProjectionAxes.h"
32 #include "TGLWidget.h"
33 #include "TGLOverlayButton.h"
34 #include "TStopwatch.h"
36 //______________________________________________________________________________
37 // Allow histograms visualization in 2D and 3D.
41 Double_t pi = TMath::Pi();
43 //______________________________________________________________________________
44 AliEveLego::AliEveLego(const char* name) :
45 TEveElementList(name),
57 fHistopos_all_events(0),
60 fHistoneg_all_events(0),
66 fCalo3d_all_events(0),
71 fHisto2d_all_events_v0(0),
72 fHisto2d_all_events_v1(0),
73 fHisto2d_all_events_v2(0),
74 fHisto2d_all_events_v3(0),
75 fHisto2d_all_events_s0(0),
76 fHisto2d_all_events_s1(0),
77 fHisto2d_all_events_s2(0),
78 fHisto2d_all_events_s3(0),
80 fHisto2d_lego_overlay(0),
81 fHisto2d_all_events_lego_overlay(0),
82 fHisto2d_all_events_slot(0),
90 gEve->AddToListTree(this,0);
92 // Get Current ESD event
93 fEsd = AliEveEventManager::AssertESD();
95 fPhysicsSelection = new AliPhysicsSelection();
96 fPhysicsSelection->Initialize(fEsd->GetRunNumber());
98 fEventSelector = AliEveEventManager::GetMaster()->GetEventSelector();
100 fHistopos = new TH2F("histopos","Histo 2d positive", 100, -1.5, 1.5, 80, -pi, pi);
101 fHistoneg = new TH2F("histoneg","Histo 2d negative", 100, -1.5, 1.5, 80, -pi, pi);
103 fHistopos->SetDirectory(0);
104 fHistoneg->SetDirectory(0);
106 fData = new TEveCaloDataHist();
107 fData->AddHistogram(fHistoneg);
108 fData->RefSliceInfo(0).Setup("NegCg:", 0, kBlue);
109 fData->AddHistogram(fHistopos);
110 fData->RefSliceInfo(1).Setup("PosCg:", 0, kRed);
111 fData->GetEtaBins()->SetTitleFont(120);
112 fData->GetEtaBins()->SetTitle("h");
113 fData->GetPhiBins()->SetTitleFont(120);
114 fData->GetPhiBins()->SetTitle("f");
115 fData->IncDenyDestroy();
117 fCalo3d = new TEveCalo3D(fData);
118 fCalo3d->SetBarrelRadius(550);
119 fCalo3d->SetEndCapPos(550);
122 fLego = new TEveCaloLego(fData);
125 fAl = AliEveMultiView::Instance();
126 fAl->ImportEventRPhi(fCalo3d);
127 fAl->ImportEventRhoZ(fCalo3d);
130 fGButton = new TGLOverlayButton(0, "", 10.0, -10.0, 190.0, 20.0);
131 fGButton->SetAlphaValues(1.5,1.5);
132 fB1 = new TGLOverlayButton(0, "", 10.0, -30.0, 190.0, 20.0);
133 fB1->SetAlphaValues(1.5,1.5);
134 fB2 = new TGLOverlayButton(0, "", 10.0, -50.0, 190.0, 20.0);
135 fB2->SetAlphaValues(1.5,1.5);
141 //______________________________________________________________________________
142 AliEveLego::~AliEveLego()
145 delete fPhysicsSelection;
147 delete fHistopos_all_events;
149 delete fHistoneg_all_events;
152 delete fData_all_events;
154 delete fLego_all_events;
156 delete fCalo3d_all_events;
162 delete fHisto2d_all_events_v0;
163 delete fHisto2d_all_events_v1;
164 delete fHisto2d_all_events_v2;
165 delete fHisto2d_all_events_v3;
166 delete fHisto2d_all_events_s0;
167 delete fHisto2d_all_events_s1;
168 delete fHisto2d_all_events_s2;
169 delete fHisto2d_all_events_s3;
172 delete fHisto2d_lego_overlay;
173 delete fHisto2d_all_events_lego_overlay;
174 delete fHisto2d_all_events_slot;
176 delete fEventSelector;
182 //______________________________________________________________________________
183 Double_t getphi(Double_t phi)
185 Double_t pi = TMath::Pi();
193 //______________________________________________________________________________
194 TEveCaloDataHist* AliEveLego::LoadData()
200 // Getting current tracks, filling histograms
201 for (int n = 0; n < fEsd->GetNumberOfTracks(); ++n) {
203 if (fEsd->GetTrack(n)->GetSign() > 0) {
204 fHistopos->Fill(fEsd->GetTrack(n)->Eta(),
205 getphi(fEsd->GetTrack(n)->Phi()),
206 fabs(fEsd->GetTrack(n)->Pt()));
209 if (fEsd->GetTrack(n)->GetSign() < 0) {
210 fHistoneg->Fill(fEsd->GetTrack(n)->Eta(),
211 getphi(fEsd->GetTrack(n)->Phi()),
212 fabs(fEsd->GetTrack(n)->Pt()));
216 // fHistoposclone = (TH2F*)fHistopos->Clone("histoposclone");
217 // fHistonegclone = (TH2F*)fHistoneg->Clone("histonegclone");
218 // fHistoposclone->SetName("histoposclone");
219 // fHistonegclone->SetName("histonegclone");
221 fData->DataChanged();
228 //______________________________________________________________________________
229 TEveCaloDataHist* AliEveLego::LoadAllData()
232 fHistopos_all_events->Reset();
233 fHistoneg_all_events->Reset();
235 TTree* t = AliEveEventManager::GetMaster()->GetESDTree();
237 // Getting current tracks for each event, filling histograms
238 for (int event = 0; event < t->GetEntries(); event++) {
240 for (int n = 0; n < fEsd->GetNumberOfTracks(); ++n) {
242 if (fEsd->GetTrack(n)->GetSign() > 0) {
243 fHistopos_all_events->Fill(fEsd->GetTrack(n)->Eta(),
244 getphi(fEsd->GetTrack(n)->Phi()),
245 fabs(fEsd->GetTrack(n)->Pt()));
247 fHistoneg_all_events->Fill(fEsd->GetTrack(n)->Eta(),
248 getphi(fEsd->GetTrack(n)->Phi()),
249 fabs(fEsd->GetTrack(n)->Pt()));
254 fData_all_events->DataChanged();
256 return fData_all_events;
259 //______________________________________________________________________________
260 TEveCaloDataHist* AliEveLego::FilterData()
263 if ( fTracksId == 2 )
268 const AliESDVertex *pv = fEsd->GetPrimaryVertex();
270 for (Int_t n = 0; n < pv->GetNIndices(); n++ )
272 AliESDtrack *at = fEsd->GetTrack(pv->GetIndices()[n]);
273 if (at->GetSign() > 0) {
274 fHistopos->Fill(at->Eta(), getphi(at->Phi()), fabs(at->Pt()));
276 if (at->GetSign() < 0) {
277 fHistoneg->Fill(at->Eta(), getphi(at->Phi()), fabs(at->Pt()));
282 fData->DataChanged();
285 if (GetPtMax() >= fMaxPt){
286 for (Int_t binx = 1; binx <= 100; binx++) {
287 for (Int_t biny = 1; biny <= 80; biny++) {
288 if (fHistopos->GetBinContent(binx, biny) >= fMaxPt)
290 fHistopos->SetBinContent(binx, biny, fMaxPt);
292 if (fHistoneg->GetBinContent(binx, biny) >= fMaxPt)
294 fHistoneg->SetBinContent(binx, biny, fMaxPt);
301 if ( fChargeId == 2 ) fHistoneg->Reset();
304 if ( fChargeId == 3 ) fHistopos->Reset();
306 fData->DataChanged();
312 //______________________________________________________________________________
313 TEveCaloDataHist* AliEveLego::FilterAllData()
316 if ( fTracksIdAE == 2 )
318 fHistopos_all_events->Reset();
319 fHistoneg_all_events->Reset();
321 TTree* t = AliEveEventManager::GetMaster()->GetESDTree();
323 // Getting current tracks for each event, filling histograms
324 for (int event = 0; event < t->GetEntries(); event++) {
328 const AliESDVertex *pv = fEsd->GetPrimaryVertex();
330 for (Int_t n = 0; n < pv->GetNIndices(); n++ )
332 AliESDtrack *at = fEsd->GetTrack(pv->GetIndices()[n]);
334 if (at->GetSign() > 0) {
335 fHistopos_all_events->Fill(at->Eta(), getphi(at->Phi()), fabs(at->Pt()));
337 if (at->GetSign() < 0) {
338 fHistoneg_all_events->Fill(at->Eta(), getphi(at->Phi()), fabs(at->Pt()));
346 fData_all_events->DataChanged();
349 if (GetPtMaxAE() >= fMaxPtAE){
350 for (Int_t binx = 1; binx <= 100; binx++) {
351 for (Int_t biny = 1; biny <= 80; biny++) {
352 if (fHistopos_all_events->GetBinContent(binx, biny) >= fMaxPtAE)
354 fHistopos_all_events->SetBinContent(binx, biny, fMaxPtAE);
356 if (fHistoneg_all_events->GetBinContent(binx, biny) >= fMaxPtAE)
358 fHistoneg_all_events->SetBinContent(binx, biny, fMaxPtAE);
365 if ( fChargeIdAE == 2 ) fHistoneg_all_events->Reset();
368 if ( fChargeIdAE == 3 ) fHistopos_all_events->Reset();
370 fData_all_events->DataChanged();
372 gEve->Redraw3D(kTRUE);
374 return fData_all_events;
377 //______________________________________________________________________________
378 void AliEveLego::Update()
383 // Create new histo2d
389 // Show information about event;
390 ShowEventSeletion(fShowEventsInfo, kTRUE);
392 // Update the viewers
393 gEve->Redraw3D(kTRUE);
396 //______________________________________________________________________________
397 TEveCaloLego* AliEveLego::CreateHistoLego()
399 // Viewer initialization, tab creation
400 if (fHisto2d_v == 0) {
401 TEveWindowSlot *fslot = 0;
402 TEveBrowser *fbrowser = gEve->GetBrowser();
404 fslot = TEveWindow::CreateWindowInTab(fbrowser->GetTabRight());
405 fslot->MakeCurrent();
406 fHisto2d_v = gEve->SpawnNewViewer("2D Lego Histogram", "2D Lego Histogram");
407 fHisto2d_s = gEve->SpawnNewScene("2D Lego Histogram", "2D Lego Histogram");
408 fHisto2d_v->AddScene(fHisto2d_s);
409 fHisto2d_v->SetElementName("2D Lego Viewer");
410 fHisto2d_s->SetElementName("2D Lego Scene");
412 fGlv = fHisto2d_v->GetGLViewer();
413 fHisto2d_lego_overlay = new TEveCaloLegoOverlay();
414 fGlv->AddOverlayElement(fHisto2d_lego_overlay);
415 fGlv->SetCurrentCamera(TGLViewer::kCameraPerspXOY);
417 fHisto2d_s->AddElement(fLego);
419 // move to real world coordinates
420 fLego->InitMainTrans();
421 Float_t sc = TMath::Min(fLego->GetEtaRng(), fLego->GetPhiRng());
422 fLego->RefMainTrans().SetScale(sc, sc, sc);
424 // set event handler to move from perspective to orthographic view.
425 fGlv->SetEventHandler(new TEveLegoEventHandler(fGlv->GetGLWidget(), fGlv, fLego));
427 fHisto2d_lego_overlay->SetCaloLego(fLego);
433 //______________________________________________________________________________
434 TEveCaloLego* AliEveLego::CreateHistoLego(TEveWindowSlot *slot)
436 // Viewer initialization, tab creation
437 if (fHisto2d_all_events_v0 == 0) {
440 fHisto2d_all_events_v0 = gEve->SpawnNewViewer("2D Lego Histogram", "2D Lego Histogram");
441 fHisto2d_all_events_s0 = gEve->SpawnNewScene("2D Lego Histogram", "2D Lego Histogram");
442 fHisto2d_all_events_v0->AddScene(fHisto2d_all_events_s0);
443 fHisto2d_all_events_v0->SetElementName("2D Lego Viewer");
444 fHisto2d_all_events_s0->SetElementName("2D Lego Scene");
446 TGLViewer* glv = fHisto2d_all_events_v0->GetGLViewer();
447 fHisto2d_all_events_lego_overlay = new TEveCaloLegoOverlay();
448 glv->AddOverlayElement(fHisto2d_all_events_lego_overlay);
449 glv->SetCurrentCamera(TGLViewer::kCameraPerspXOY);
451 // Plotting histogram lego
452 fLego_all_events = new TEveCaloLego(fData_all_events);
453 fHisto2d_all_events_s0->AddElement(fLego_all_events);
455 // Move to real world coordinates
456 fLego_all_events->InitMainTrans();
457 Float_t sc = TMath::Min(fLego_all_events->GetEtaRng(), fLego_all_events->GetPhiRng());
458 fLego_all_events->RefMainTrans().SetScale(sc, sc, sc);
460 // Set event handler to move from perspective to orthographic view.
461 glv->SetEventHandler(new TEveLegoEventHandler(glv->GetGLWidget(), glv, fLego_all_events));
463 fHisto2d_all_events_lego_overlay->SetCaloLego(fLego_all_events);
466 return fLego_all_events;
469 //______________________________________________________________________________
470 TEveCalo3D* AliEveLego::Create3DView()
473 if (fHisto2d_s2 == 0) {
474 fHisto2d_s2 = gEve->SpawnNewScene("3D Histogram", "3D Histogram");
475 gEve->GetDefaultViewer()->AddScene(fHisto2d_s2);
476 fHisto2d_s2->SetElementName("3D Histogram Scene");
477 fHisto2d_s2->AddElement(fCalo3d);
483 //______________________________________________________________________________
484 TEveCalo3D* AliEveLego::Create3DView(TEveWindowSlot *slot)
486 if ( fHisto2d_all_events_v1 == 0 ) {
489 fHisto2d_all_events_v1 = gEve->SpawnNewViewer("3D Histogram", "3D Histogram");
490 fHisto2d_all_events_s1 = gEve->SpawnNewScene("3D Histogram", "3D Histogram");
491 fHisto2d_all_events_v1->AddScene(fHisto2d_all_events_s1);
492 fHisto2d_all_events_v1->SetElementName("3D Histogram Viewer");
493 fHisto2d_all_events_s1->SetElementName("3D Histogram Scene");
495 fCalo3d_all_events = new TEveCalo3D(fData_all_events);
497 fCalo3d_all_events->SetBarrelRadius(550);
498 fCalo3d_all_events->SetEndCapPos(550);
499 fHisto2d_all_events_s1->AddElement(fCalo3d_all_events);
502 return fCalo3d_all_events;
505 //______________________________________________________________________________
506 void AliEveLego::CreateProjections(TEveWindowSlot* slot1, TEveWindowSlot* slot2){
508 if (fHisto2d_all_events_v2 == 0) {
510 slot1->MakeCurrent();
511 fHisto2d_all_events_v2 = gEve->SpawnNewViewer("RPhi projection", "RPhi projection");
512 fHisto2d_all_events_s2 = gEve->SpawnNewScene("RPhi projection", "RPhi projection");
513 fHisto2d_all_events_v2->AddScene(fHisto2d_all_events_s2);
514 fHisto2d_all_events_v2->SetElementName("RPhi Projection Viewer");
515 fHisto2d_all_events_s2->SetElementName("RPhi Projection Scene");
517 TEveProjectionManager* mng1 = new TEveProjectionManager();
518 mng1->SetProjection(TEveProjection::kPT_RPhi);
520 TEveProjectionAxes* axeg_histo2d_all_events_s1 = new TEveProjectionAxes(mng1);
521 fHisto2d_all_events_s2->AddElement(axeg_histo2d_all_events_s1);
522 TEveCalo2D* fcalo2d1 = (TEveCalo2D*) mng1->ImportElements(fCalo3d_all_events);
523 fHisto2d_all_events_s2->AddElement(fcalo2d1);
525 fHisto2d_all_events_v2->GetGLViewer()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
528 if (fHisto2d_all_events_v3 == 0) {
530 slot2->MakeCurrent();
531 fHisto2d_all_events_v3 = gEve->SpawnNewViewer("RhoZ projection", "RhoZ projection");
532 fHisto2d_all_events_s3 = gEve->SpawnNewScene("RhoZ projection", "RhoZ projection");
533 fHisto2d_all_events_v3->AddScene(fHisto2d_all_events_s3);
534 fHisto2d_all_events_v3->SetElementName("RhoZ Projection Viewer");
535 fHisto2d_all_events_s3->SetElementName("RhoZ Projection Viewer");
537 TEveProjectionManager* mng2 = new TEveProjectionManager();
538 mng2->SetProjection(TEveProjection::kPT_RhoZ);
540 TEveProjectionAxes* axeg_histo2d_all_events_s2 = new TEveProjectionAxes(mng2);
541 fHisto2d_all_events_s3->AddElement(axeg_histo2d_all_events_s2);
542 TEveCalo2D* fcalo2d2 = (TEveCalo2D*) mng2->ImportElements(fCalo3d_all_events);
543 fHisto2d_all_events_s3->AddElement(fcalo2d2);
545 fHisto2d_all_events_v3->GetGLViewer()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
551 //______________________________________________________________________________
552 TEveCaloDataHist* AliEveLego::LoadAllEvents()
554 if ( fHisto2d_all_events_slot == 0 ) {
556 printf("Filling histogram...\n");
560 // Creating 2D histograms
561 fHistopos_all_events = new TH2F("fHistopos_all_events","Histo 2d positive",
562 100,-1.5,1.5,80,-pi,pi);
563 fHistoneg_all_events = new TH2F("fHistoneg_all_events","Histo 2d negative",
564 100,-1.5,1.5,80,-pi,pi);
566 fHistopos_all_events->SetDirectory(0);
567 fHistoneg_all_events->SetDirectory(0);
569 fData_all_events = new TEveCaloDataHist();
570 fData_all_events->AddHistogram(fHistoneg_all_events);
571 fData_all_events->RefSliceInfo(0).Setup("NegCg:", 0, kBlue);
572 fData_all_events->AddHistogram(fHistopos_all_events);
573 fData_all_events->RefSliceInfo(1).Setup("PosCg:", 0, kRed);
574 fData_all_events->GetEtaBins()->SetTitleFont(120);
575 fData_all_events->GetEtaBins()->SetTitle("h");
576 fData_all_events->GetPhiBins()->SetTitleFont(120);
577 fData_all_events->GetPhiBins()->SetTitle("f");
578 fData_all_events->IncDenyDestroy();
581 fHisto2d_all_events_slot = TEveWindow::CreateWindowInTab(gEve->GetBrowser()->GetTabRight());
582 TEveWindowPack* packH = fHisto2d_all_events_slot->MakePack();
583 packH->SetElementName("Projections");
584 packH->SetHorizontal();
585 packH->SetShowTitleBar(kFALSE);
587 fHisto2d_all_events_slot = packH->NewSlot();
588 TEveWindowPack* pack0 = fHisto2d_all_events_slot->MakePack();
589 pack0->SetShowTitleBar(kFALSE);
590 TEveWindowSlot* slotLeftTop = pack0->NewSlot();
591 TEveWindowSlot* slotLeftBottom = pack0->NewSlot();
593 fHisto2d_all_events_slot = packH->NewSlot();
594 TEveWindowPack* pack1 = fHisto2d_all_events_slot->MakePack();
595 pack1->SetShowTitleBar(kFALSE);
596 TEveWindowSlot* slotRightTop = pack1->NewSlot();
597 TEveWindowSlot* slotRightBottom = pack1->NewSlot();
599 // Creating viewers and scenes
600 Create3DView(slotLeftTop);
601 CreateHistoLego(slotLeftBottom);
602 CreateProjections(slotRightTop, slotRightBottom);
606 gEve->Redraw3D(kTRUE);
608 printf("Filling histogram... Finished\n");
614 return fData_all_events;
617 //______________________________________________________________________________
618 Float_t AliEveLego::GetPtMax()
620 return fData->GetMaxVal(fLego->GetPlotEt());
623 //______________________________________________________________________________
624 Float_t AliEveLego::GetPtMaxAE()
626 return fData_all_events->GetMaxVal(fLego_all_events->GetPlotEt());
629 //______________________________________________________________________________
630 void AliEveLego::SetMaxPt(Double_t val)
637 //______________________________________________________________________________
638 void AliEveLego::SetMaxPtAE(Double_t val)
645 //______________________________________________________________________________
646 void AliEveLego::SetThreshold(Double_t val)
648 // Setting up the new threshold for all histograms
649 fData->SetSliceThreshold(0,val);
650 fData->SetSliceThreshold(1,val);
651 fData->DataChanged();
653 gEve->Redraw3D(kTRUE);
656 //______________________________________________________________________________
657 void AliEveLego::SetThresholdAE(Double_t val)
659 // Setting up the new threshold for all histograms
660 fData_all_events->SetSliceThreshold(0,val);
661 fData_all_events->SetSliceThreshold(1,val);
662 fData_all_events->DataChanged();
664 gEve->Redraw3D(kTRUE);
667 //______________________________________________________________________________
668 void AliEveLego::SetEventSelection()
670 if (fShowEventsInfo == 0)
677 ShowEventSeletion(fShowEventsInfo);
680 //______________________________________________________________________________
681 void AliEveLego::ShowEventSeletion(Bool_t show, Bool_t updateonly)
685 gEve->GetDefaultGLViewer()->RemoveOverlayElement(fGButton);
686 fAl->Get3DView()->GetGLViewer()->RemoveOverlayElement(fGButton);
687 fHisto2d_v->GetGLViewer()->RemoveOverlayElement(fGButton);
689 gEve->GetDefaultGLViewer()->RemoveOverlayElement(fB1);
690 fAl->Get3DView()->GetGLViewer()->RemoveOverlayElement(fB1);
691 fHisto2d_v->GetGLViewer()->RemoveOverlayElement(fB1);
693 gEve->GetDefaultGLViewer()->RemoveOverlayElement(fB2);
694 fAl->Get3DView()->GetGLViewer()->RemoveOverlayElement(fB2);
695 fHisto2d_v->GetGLViewer()->RemoveOverlayElement(fB2);
699 //Collision candidate
700 if (updateonly == kFALSE) {
701 gEve->GetDefaultGLViewer()->AddOverlayElement(fGButton);
702 fAl->Get3DView()->GetGLViewer()->AddOverlayElement(fGButton);
703 fHisto2d_v->GetGLViewer()->AddOverlayElement(fGButton);
706 Bool_t ev = fPhysicsSelection->IsCollisionCandidate(fEsd);
710 fGButton->SetText("Collision candidate: YES");
712 fGButton->SetText("Collision candidate: NO ");
715 // Beam 1 & 2 setup: method 1
716 if (updateonly == kFALSE) {
717 gEve->GetDefaultGLViewer()->AddOverlayElement(fB1);
718 fAl->Get3DView()->GetGLViewer()->AddOverlayElement(fB1);
719 fHisto2d_v->GetGLViewer()->AddOverlayElement(fB1);
721 gEve->GetDefaultGLViewer()->AddOverlayElement(fB2);
722 fAl->Get3DView()->GetGLViewer()->AddOverlayElement(fB2);
723 fHisto2d_v->GetGLViewer()->AddOverlayElement(fB2);
726 Bool_t b1 = fEsd->IsTriggerClassFired("CINT1A-ABCE-NOPF-ALL");
727 Bool_t b2 = fEsd->IsTriggerClassFired("CINT1C-ABCE-NOPF-ALL");
728 Bool_t b12 = fEsd->IsTriggerClassFired("CINT1B-ABCE-NOPF-ALL");
730 if (b1 == 1 || b12 == 1)
732 fB1->SetText("Beam 1: YES");
733 fB1->SetBackColor(0x00ff00);
735 fB1->SetText("Beam 1: NO");
736 fB1->SetBackColor(0xff0000);
739 if (b2 == 1 || b12 == 1)
741 fB2->SetText("Beam 2: YES");
742 fB2->SetBackColor(0x00ff00);
744 fB2->SetText("Beam 2: NO");
745 fB2->SetBackColor(0xff0000);
749 gEve->Redraw3D(kTRUE);
753 //______________________________________________________________________________
754 void AliEveLego::SelectEventSelection(Int_t id)
758 fEventSelector->SetSelectOnTriggerType(kFALSE);
760 if (id == 1) fEventSelector->SetTriggerType("CINT1A-ABCE-NOPF-ALL");
761 if (id == 2) fEventSelector->SetTriggerType("CINT1C-ABCE-NOPF-ALL");
762 if (id == 3) fEventSelector->SetTriggerType("CINT1B-ABCE-NOPF-ALL");
763 fEventSelector->SetSelectOnTriggerType(kTRUE);
767 //______________________________________________________________________________
768 void AliEveLego::ShowPrevEvent()
770 AliEveEventManager::GetMaster()->PrevEvent();
773 //______________________________________________________________________________
774 void AliEveLego::ShowNextEvent()
776 AliEveEventManager::GetMaster()->NextEvent();
778 /******************************************************************************/