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"
35 //______________________________________________________________________________
36 // Allow histograms visualization in 2D and 3D.
40 Double_t pi = TMath::Pi();
42 //______________________________________________________________________________
43 AliEveLego::AliEveLego(const char* name) :
44 TEveElementList(name),
56 fHistopos_all_events(0),
59 fHistoneg_all_events(0),
65 fCalo3d_all_events(0),
70 fHisto2d_all_events_v0(0),
71 fHisto2d_all_events_v1(0),
72 fHisto2d_all_events_v2(0),
73 fHisto2d_all_events_v3(0),
74 fHisto2d_all_events_s0(0),
75 fHisto2d_all_events_s1(0),
76 fHisto2d_all_events_s2(0),
77 fHisto2d_all_events_s3(0),
79 fHisto2d_lego_overlay(0),
80 fHisto2d_all_events_lego_overlay(0),
81 fHisto2d_all_events_slot(0),
89 gEve->AddToListTree(this,0);
91 // Get Current ESD event
92 fEsd = AliEveEventManager::AssertESD();
94 fPhysicsSelection = new AliPhysicsSelection();
95 fPhysicsSelection->Initialize(fEsd->GetRunNumber());
97 fEventSelector = AliEveEventManager::GetMaster()->GetEventSelector();
99 fHistopos = new TH2F("histopos","Histo 2d positive", 100, -1.5, 1.5, 80, -pi, pi);
100 fHistoneg = new TH2F("histoneg","Histo 2d negative", 100, -1.5, 1.5, 80, -pi, pi);
101 // fHistoposclone = new TH2F("histoposclone","Histo 2d positive", 100, -1.5, 1.5, 80, -pi, pi);
102 // fHistonegclone = new TH2F("histonegclone","Histo 2d positive", 100, -1.5, 1.5, 80, -pi, pi);
104 fData = new TEveCaloDataHist();
105 fData->AddHistogram(fHistoneg);
106 fData->RefSliceInfo(0).Setup("NegCg:", 0, kBlue);
107 fData->AddHistogram(fHistopos);
108 fData->RefSliceInfo(1).Setup("PosCg:", 0, kRed);
109 fData->GetEtaBins()->SetTitleFont(120);
110 fData->GetEtaBins()->SetTitle("h");
111 fData->GetPhiBins()->SetTitleFont(120);
112 fData->GetPhiBins()->SetTitle("f");
113 fData->IncDenyDestroy();
115 fCalo3d = new TEveCalo3D(fData);
116 fCalo3d->SetBarrelRadius(550);
117 fCalo3d->SetEndCapPos(550);
120 fLego = new TEveCaloLego(fData);
123 fAl = AliEveMultiView::Instance();
124 fAl->ImportEventRPhi(fCalo3d);
125 fAl->ImportEventRhoZ(fCalo3d);
128 fGButton = new TGLOverlayButton(0, "", 10.0, -10.0, 190.0, 20.0);
129 fGButton->SetAlphaValues(1.5,1.5);
130 fB1 = new TGLOverlayButton(0, "", 10.0, -30.0, 190.0, 20.0);
131 fB1->SetAlphaValues(1.5,1.5);
132 fB2 = new TGLOverlayButton(0, "", 10.0, -50.0, 190.0, 20.0);
133 fB2->SetAlphaValues(1.5,1.5);
139 //______________________________________________________________________________
140 AliEveLego::~AliEveLego()
143 delete fPhysicsSelection;
145 delete fHistopos_all_events;
147 delete fHistoneg_all_events;
150 delete fData_all_events;
152 delete fLego_all_events;
154 delete fCalo3d_all_events;
160 delete fHisto2d_all_events_v0;
161 delete fHisto2d_all_events_v1;
162 delete fHisto2d_all_events_v2;
163 delete fHisto2d_all_events_v3;
164 delete fHisto2d_all_events_s0;
165 delete fHisto2d_all_events_s1;
166 delete fHisto2d_all_events_s2;
167 delete fHisto2d_all_events_s3;
170 delete fHisto2d_lego_overlay;
171 delete fHisto2d_all_events_lego_overlay;
172 delete fHisto2d_all_events_slot;
174 delete fEventSelector;
180 //______________________________________________________________________________
181 Double_t getphi(Double_t phi)
183 Double_t pi = TMath::Pi();
191 //______________________________________________________________________________
192 TEveCaloDataHist* AliEveLego::LoadData()
198 // Getting current tracks, filling histograms
199 for (int n = 0; n < fEsd->GetNumberOfTracks(); ++n) {
201 if (fEsd->GetTrack(n)->GetSign() > 0) {
202 fHistopos->Fill(fEsd->GetTrack(n)->Eta(),
203 getphi(fEsd->GetTrack(n)->Phi()),
204 fabs(fEsd->GetTrack(n)->Pt()));
207 if (fEsd->GetTrack(n)->GetSign() < 0) {
208 fHistoneg->Fill(fEsd->GetTrack(n)->Eta(),
209 getphi(fEsd->GetTrack(n)->Phi()),
210 fabs(fEsd->GetTrack(n)->Pt()));
214 // fHistoposclone = (TH2F*)fHistopos->Clone("histoposclone");
215 // fHistonegclone = (TH2F*)fHistoneg->Clone("histonegclone");
216 // fHistoposclone->SetName("histoposclone");
217 // fHistonegclone->SetName("histonegclone");
219 fData->DataChanged();
226 //______________________________________________________________________________
227 TEveCaloDataHist* AliEveLego::LoadAllData()
230 fHistopos_all_events->Reset();
231 fHistoneg_all_events->Reset();
233 TTree* t = AliEveEventManager::GetMaster()->GetESDTree();
235 // Getting current tracks for each event, filling histograms
236 for (int event = 0; event < t->GetEntries(); event++) {
238 for (int n = 0; n < fEsd->GetNumberOfTracks(); ++n) {
240 if (fEsd->GetTrack(n)->GetSign() > 0) {
241 fHistopos_all_events->Fill(fEsd->GetTrack(n)->Eta(),
242 getphi(fEsd->GetTrack(n)->Phi()),
243 fabs(fEsd->GetTrack(n)->Pt()));
245 fHistoneg_all_events->Fill(fEsd->GetTrack(n)->Eta(),
246 getphi(fEsd->GetTrack(n)->Phi()),
247 fabs(fEsd->GetTrack(n)->Pt()));
252 fData_all_events->DataChanged();
254 return fData_all_events;
257 //______________________________________________________________________________
258 TEveCaloDataHist* AliEveLego::FilterData()
261 if ( fTracksId == 2 )
266 const AliESDVertex *pv = fEsd->GetPrimaryVertex();
268 for (Int_t n = 0; n < pv->GetNIndices(); n++ )
270 AliESDtrack *at = fEsd->GetTrack(pv->GetIndices()[n]);
271 if (at->GetSign() > 0) {
272 fHistopos->Fill(at->Eta(), getphi(at->Phi()), fabs(at->Pt()));
274 if (at->GetSign() < 0) {
275 fHistoneg->Fill(at->Eta(), getphi(at->Phi()), fabs(at->Pt()));
280 fData->DataChanged();
283 if (GetPtMax() >= fMaxPt){
284 for (Int_t binx = 1; binx <= 100; binx++) {
285 for (Int_t biny = 1; biny <= 80; biny++) {
286 if (fHistopos->GetBinContent(binx, biny) >= fMaxPt)
288 fHistopos->SetBinContent(binx, biny, fMaxPt);
290 if (fHistoneg->GetBinContent(binx, biny) >= fMaxPt)
292 fHistoneg->SetBinContent(binx, biny, fMaxPt);
299 if ( fChargeId == 2 ) fHistoneg->Reset();
302 if ( fChargeId == 3 ) fHistopos->Reset();
304 fData->DataChanged();
310 //______________________________________________________________________________
311 TEveCaloDataHist* AliEveLego::FilterAllData()
314 if ( fTracksIdAE == 2 )
316 fHistopos_all_events->Reset();
317 fHistoneg_all_events->Reset();
319 TTree* t = AliEveEventManager::GetMaster()->GetESDTree();
321 // Getting current tracks for each event, filling histograms
322 for (int event = 0; event < t->GetEntries(); event++) {
325 const AliESDVertex *pv = fEsd->GetPrimaryVertex();
327 for (Int_t n = 0; n < pv->GetNIndices(); n++ )
329 AliESDtrack *at = fEsd->GetTrack(pv->GetIndices()[n]);
330 if (at->GetSign() > 0) {
331 fHistopos_all_events->Fill(at->Eta(), getphi(at->Phi()), fabs(at->Pt()));
333 if (at->GetSign() < 0) {
334 fHistoneg_all_events->Fill(at->Eta(), getphi(at->Phi()), fabs(at->Pt()));
342 fData_all_events->DataChanged();
345 if (GetPtMaxAE() >= fMaxPtAE){
346 for (Int_t binx = 1; binx <= 100; binx++) {
347 for (Int_t biny = 1; biny <= 80; biny++) {
348 if (fHistopos_all_events->GetBinContent(binx, biny) >= fMaxPtAE)
350 fHistopos_all_events->SetBinContent(binx, biny, fMaxPtAE);
352 if (fHistoneg_all_events->GetBinContent(binx, biny) >= fMaxPtAE)
354 fHistoneg_all_events->SetBinContent(binx, biny, fMaxPtAE);
361 if ( fChargeIdAE == 2 ) fHistoneg_all_events->Reset();
364 if ( fChargeIdAE == 3 ) fHistopos_all_events->Reset();
366 fData_all_events->DataChanged();
368 gEve->Redraw3D(kTRUE);
370 return fData_all_events;
373 //______________________________________________________________________________
374 void AliEveLego::Update()
379 // Create new histo2d
385 // Show information about event;
386 ShowEventSeletion(fShowEventsInfo, kTRUE);
388 // Update the viewers
389 gEve->Redraw3D(kTRUE);
392 //______________________________________________________________________________
393 TEveCaloLego* AliEveLego::CreateHistoLego()
395 // Viewer initialization, tab creation
396 if (fHisto2d_v == 0) {
397 TEveWindowSlot *fslot = 0;
398 TEveBrowser *fbrowser = gEve->GetBrowser();
400 fslot = TEveWindow::CreateWindowInTab(fbrowser->GetTabRight());
401 fslot->MakeCurrent();
402 fHisto2d_v = gEve->SpawnNewViewer("2D Lego Histogram", "2D Lego Histogram");
403 fHisto2d_s = gEve->SpawnNewScene("2D Lego Histogram", "2D Lego Histogram");
404 fHisto2d_v->AddScene(fHisto2d_s);
405 fHisto2d_v->SetElementName("2D Lego Viewer");
406 fHisto2d_s->SetElementName("2D Lego Scene");
408 fGlv = fHisto2d_v->GetGLViewer();
409 fHisto2d_lego_overlay = new TEveCaloLegoOverlay();
410 fGlv->AddOverlayElement(fHisto2d_lego_overlay);
411 fGlv->SetCurrentCamera(TGLViewer::kCameraPerspXOY);
413 fHisto2d_s->AddElement(fLego);
415 // move to real world coordinates
416 fLego->InitMainTrans();
417 Float_t sc = TMath::Min(fLego->GetEtaRng(), fLego->GetPhiRng());
418 fLego->RefMainTrans().SetScale(sc, sc, sc);
420 // set event handler to move from perspective to orthographic view.
421 fGlv->SetEventHandler(new TEveLegoEventHandler(fGlv->GetGLWidget(), fGlv, fLego));
423 fHisto2d_lego_overlay->SetCaloLego(fLego);
429 //______________________________________________________________________________
430 TEveCaloLego* AliEveLego::CreateHistoLego(TEveWindowSlot *slot)
432 // Viewer initialization, tab creation
433 if (fHisto2d_all_events_v0 == 0) {
436 fHisto2d_all_events_v0 = gEve->SpawnNewViewer("2D Lego Histogram", "2D Lego Histogram");
437 fHisto2d_all_events_s0 = gEve->SpawnNewScene("2D Lego Histogram", "2D Lego Histogram");
438 fHisto2d_all_events_v0->AddScene(fHisto2d_all_events_s0);
439 fHisto2d_all_events_v0->SetElementName("2D Lego Viewer");
440 fHisto2d_all_events_s0->SetElementName("2D Lego Scene");
442 TGLViewer* glv = fHisto2d_all_events_v0->GetGLViewer();
443 fHisto2d_all_events_lego_overlay = new TEveCaloLegoOverlay();
444 glv->AddOverlayElement(fHisto2d_all_events_lego_overlay);
445 glv->SetCurrentCamera(TGLViewer::kCameraPerspXOY);
447 // Plotting histogram lego
448 fLego_all_events = new TEveCaloLego(fData_all_events);
449 fHisto2d_all_events_s0->AddElement(fLego_all_events);
451 // Move to real world coordinates
452 fLego_all_events->InitMainTrans();
453 Float_t sc = TMath::Min(fLego_all_events->GetEtaRng(), fLego_all_events->GetPhiRng());
454 fLego_all_events->RefMainTrans().SetScale(sc, sc, sc);
456 // Set event handler to move from perspective to orthographic view.
457 glv->SetEventHandler(new TEveLegoEventHandler(glv->GetGLWidget(), glv, fLego_all_events));
459 fHisto2d_all_events_lego_overlay->SetCaloLego(fLego_all_events);
462 return fLego_all_events;
465 //______________________________________________________________________________
466 TEveCalo3D* AliEveLego::Create3DView()
469 if (fHisto2d_s2 == 0) {
470 fHisto2d_s2 = gEve->SpawnNewScene("3D Histogram", "3D Histogram");
471 gEve->GetDefaultViewer()->AddScene(fHisto2d_s2);
472 fHisto2d_s2->SetElementName("3D Histogram Scene");
473 fHisto2d_s2->AddElement(fCalo3d);
479 //______________________________________________________________________________
480 TEveCalo3D* AliEveLego::Create3DView(TEveWindowSlot *slot)
482 if ( fHisto2d_all_events_v1 == 0 ) {
485 fHisto2d_all_events_v1 = gEve->SpawnNewViewer("3D Histogram", "3D Histogram");
486 fHisto2d_all_events_s1 = gEve->SpawnNewScene("3D Histogram", "3D Histogram");
487 fHisto2d_all_events_v1->AddScene(fHisto2d_all_events_s1);
488 fHisto2d_all_events_v1->SetElementName("3D Histogram Viewer");
489 fHisto2d_all_events_s1->SetElementName("3D Histogram Scene");
491 fCalo3d_all_events = new TEveCalo3D(fData_all_events);
493 fCalo3d_all_events->SetBarrelRadius(550);
494 fCalo3d_all_events->SetEndCapPos(550);
495 fHisto2d_all_events_s1->AddElement(fCalo3d_all_events);
498 return fCalo3d_all_events;
501 //______________________________________________________________________________
502 void AliEveLego::CreateProjections(TEveWindowSlot* slot1, TEveWindowSlot* slot2){
504 if (fHisto2d_all_events_v2 == 0) {
506 slot1->MakeCurrent();
507 fHisto2d_all_events_v2 = gEve->SpawnNewViewer("RPhi projection", "RPhi projection");
508 fHisto2d_all_events_s2 = gEve->SpawnNewScene("RPhi projection", "RPhi projection");
509 fHisto2d_all_events_v2->AddScene(fHisto2d_all_events_s2);
510 fHisto2d_all_events_v2->SetElementName("RPhi Projection Viewer");
511 fHisto2d_all_events_s2->SetElementName("RPhi Projection Scene");
513 TEveProjectionManager* mng1 = new TEveProjectionManager();
514 mng1->SetProjection(TEveProjection::kPT_RPhi);
516 TEveProjectionAxes* axeg_histo2d_all_events_s1 = new TEveProjectionAxes(mng1);
517 fHisto2d_all_events_s2->AddElement(axeg_histo2d_all_events_s1);
518 TEveCalo2D* fcalo2d1 = (TEveCalo2D*) mng1->ImportElements(fCalo3d_all_events);
519 fHisto2d_all_events_s2->AddElement(fcalo2d1);
521 fHisto2d_all_events_v2->GetGLViewer()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
524 if (fHisto2d_all_events_v3 == 0) {
526 slot2->MakeCurrent();
527 fHisto2d_all_events_v3 = gEve->SpawnNewViewer("RhoZ projection", "RhoZ projection");
528 fHisto2d_all_events_s3 = gEve->SpawnNewScene("RhoZ projection", "RhoZ projection");
529 fHisto2d_all_events_v3->AddScene(fHisto2d_all_events_s3);
530 fHisto2d_all_events_v3->SetElementName("RhoZ Projection Viewer");
531 fHisto2d_all_events_s3->SetElementName("RhoZ Projection Viewer");
533 TEveProjectionManager* mng2 = new TEveProjectionManager();
534 mng2->SetProjection(TEveProjection::kPT_RhoZ);
536 TEveProjectionAxes* axeg_histo2d_all_events_s2 = new TEveProjectionAxes(mng2);
537 fHisto2d_all_events_s3->AddElement(axeg_histo2d_all_events_s2);
538 TEveCalo2D* fcalo2d2 = (TEveCalo2D*) mng2->ImportElements(fCalo3d_all_events);
539 fHisto2d_all_events_s3->AddElement(fcalo2d2);
541 fHisto2d_all_events_v3->GetGLViewer()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
547 //______________________________________________________________________________
548 TEveCaloDataHist* AliEveLego::LoadAllEvents()
550 if ( fHisto2d_all_events_slot == 0 ) {
552 printf("Filling histogram...\n");
554 // Creating 2D histograms
555 fHistopos_all_events = new TH2F("fHistopos_all_events","Histo 2d positive",
556 100,-1.5,1.5,80,-pi,pi);
557 fHistoneg_all_events = new TH2F("fHistoneg_all_events","Histo 2d negative",
558 100,-1.5,1.5,80,-pi,pi);
560 fData_all_events = new TEveCaloDataHist();
561 fData_all_events->AddHistogram(fHistoneg_all_events);
562 fData_all_events->RefSliceInfo(0).Setup("NegCg:", 0, kBlue);
563 fData_all_events->AddHistogram(fHistopos_all_events);
564 fData_all_events->RefSliceInfo(1).Setup("PosCg:", 0, kRed);
565 fData_all_events->GetEtaBins()->SetTitleFont(120);
566 fData_all_events->GetEtaBins()->SetTitle("h");
567 fData_all_events->GetPhiBins()->SetTitleFont(120);
568 fData_all_events->GetPhiBins()->SetTitle("f");
569 fData_all_events->IncDenyDestroy();
572 fHisto2d_all_events_slot = TEveWindow::CreateWindowInTab(gEve->GetBrowser()->GetTabRight());
573 TEveWindowPack* packH = fHisto2d_all_events_slot->MakePack();
574 packH->SetElementName("Projections");
575 packH->SetHorizontal();
576 packH->SetShowTitleBar(kFALSE);
578 fHisto2d_all_events_slot = packH->NewSlot();
579 TEveWindowPack* pack0 = fHisto2d_all_events_slot->MakePack();
580 pack0->SetShowTitleBar(kFALSE);
581 TEveWindowSlot* slotLeftTop = pack0->NewSlot();
582 TEveWindowSlot* slotLeftBottom = pack0->NewSlot();
584 fHisto2d_all_events_slot = packH->NewSlot();
585 TEveWindowPack* pack1 = fHisto2d_all_events_slot->MakePack();
586 pack1->SetShowTitleBar(kFALSE);
587 TEveWindowSlot* slotRightTop = pack1->NewSlot();
588 TEveWindowSlot* slotRightBottom = pack1->NewSlot();
590 // Creating viewers and scenes
591 Create3DView(slotLeftTop);
592 CreateHistoLego(slotLeftBottom);
593 CreateProjections(slotRightTop, slotRightBottom);
597 gEve->Redraw3D(kTRUE);
599 printf("Filling histogram... Finished\n");
602 return fData_all_events;
605 //______________________________________________________________________________
606 Float_t AliEveLego::GetPtMax()
608 return fData->GetMaxVal(fLego->GetPlotEt());
611 //______________________________________________________________________________
612 Float_t AliEveLego::GetPtMaxAE()
614 return fData_all_events->GetMaxVal(fLego_all_events->GetPlotEt());
617 //______________________________________________________________________________
618 void AliEveLego::SetMaxPt(Double_t val)
625 //______________________________________________________________________________
626 void AliEveLego::SetMaxPtAE(Double_t val)
633 //______________________________________________________________________________
634 void AliEveLego::SetThreshold(Double_t val)
636 // Setting up the new threshold for all histograms
637 fData->SetSliceThreshold(0,val);
638 fData->SetSliceThreshold(1,val);
639 fData->DataChanged();
641 gEve->Redraw3D(kTRUE);
644 //______________________________________________________________________________
645 void AliEveLego::SetThresholdAE(Double_t val)
647 // Setting up the new threshold for all histograms
648 fData_all_events->SetSliceThreshold(0,val);
649 fData_all_events->SetSliceThreshold(1,val);
650 fData_all_events->DataChanged();
652 gEve->Redraw3D(kTRUE);
655 //______________________________________________________________________________
656 void AliEveLego::SetEventSelection()
658 if (fShowEventsInfo == 0)
665 ShowEventSeletion(fShowEventsInfo);
668 //______________________________________________________________________________
669 void AliEveLego::ShowEventSeletion(Bool_t show, Bool_t updateonly)
673 gEve->GetDefaultGLViewer()->RemoveOverlayElement(fGButton);
674 fAl->Get3DView()->GetGLViewer()->RemoveOverlayElement(fGButton);
675 fHisto2d_v->GetGLViewer()->RemoveOverlayElement(fGButton);
677 gEve->GetDefaultGLViewer()->RemoveOverlayElement(fB1);
678 fAl->Get3DView()->GetGLViewer()->RemoveOverlayElement(fB1);
679 fHisto2d_v->GetGLViewer()->RemoveOverlayElement(fB1);
681 gEve->GetDefaultGLViewer()->RemoveOverlayElement(fB2);
682 fAl->Get3DView()->GetGLViewer()->RemoveOverlayElement(fB2);
683 fHisto2d_v->GetGLViewer()->RemoveOverlayElement(fB2);
687 //Collision candidate
688 if (updateonly == kFALSE) {
689 gEve->GetDefaultGLViewer()->AddOverlayElement(fGButton);
690 fAl->Get3DView()->GetGLViewer()->AddOverlayElement(fGButton);
691 fHisto2d_v->GetGLViewer()->AddOverlayElement(fGButton);
694 Bool_t ev = fPhysicsSelection->IsCollisionCandidate(fEsd);
698 fGButton->SetText("Collision candidate: YES");
700 fGButton->SetText("Collision candidate: NO ");
703 // Beam 1 & 2 setup: method 1
704 if (updateonly == kFALSE) {
705 gEve->GetDefaultGLViewer()->AddOverlayElement(fB1);
706 fAl->Get3DView()->GetGLViewer()->AddOverlayElement(fB1);
707 fHisto2d_v->GetGLViewer()->AddOverlayElement(fB1);
709 gEve->GetDefaultGLViewer()->AddOverlayElement(fB2);
710 fAl->Get3DView()->GetGLViewer()->AddOverlayElement(fB2);
711 fHisto2d_v->GetGLViewer()->AddOverlayElement(fB2);
714 Bool_t b1 = fEsd->IsTriggerClassFired("CINT1A-ABCE-NOPF-ALL");
715 Bool_t b2 = fEsd->IsTriggerClassFired("CINT1C-ABCE-NOPF-ALL");
716 Bool_t b12 = fEsd->IsTriggerClassFired("CINT1B-ABCE-NOPF-ALL");
718 if (b1 == 1 || b12 == 1)
720 fB1->SetText("Beam 1: YES");
721 fB1->SetBackColor(0x00ff00);
723 fB1->SetText("Beam 1: NO");
724 fB1->SetBackColor(0xff0000);
727 if (b2 == 1 || b12 == 1)
729 fB2->SetText("Beam 2: YES");
730 fB2->SetBackColor(0x00ff00);
732 fB2->SetText("Beam 2: NO");
733 fB2->SetBackColor(0xff0000);
737 gEve->Redraw3D(kTRUE);
741 //______________________________________________________________________________
742 void AliEveLego::SelectEventSelection(Int_t id)
746 fEventSelector->SetSelectOnTriggerType(kFALSE);
748 if (id == 1) fEventSelector->SetTriggerType("CINT1A-ABCE-NOPF-ALL");
749 if (id == 2) fEventSelector->SetTriggerType("CINT1C-ABCE-NOPF-ALL");
750 if (id == 3) fEventSelector->SetTriggerType("CINT1B-ABCE-NOPF-ALL");
751 fEventSelector->SetSelectOnTriggerType(kTRUE);
755 //______________________________________________________________________________
756 void AliEveLego::ShowPrevEvent()
758 AliEveEventManager::GetMaster()->PrevEvent();
761 //______________________________________________________________________________
762 void AliEveLego::ShowNextEvent()
764 AliEveEventManager::GetMaster()->NextEvent();
766 /******************************************************************************/