]> git.uio.no Git - u/mrichter/AliRoot.git/blame - macros/display.C
Transition to NewIO
[u/mrichter/AliRoot.git] / macros / display.C
CommitLineData
6793b7db 1// This macro displays the hits belonging to a track for selected detectors
2// Input: in the tracks contains the interesting tracks
3// ntracks is the number of interesing tracks
4// The default values correspond to "Show everything"
5// Note: For the moment it works only with HIJING events, the PYTHIA is
6// still not supported
7void display (const char *filename="galice.root",Int_t nevent=0, Int_t * tracks=0, Int_t ntracks=0) {
fe4da5cc 8// Dynamically link some shared libs
9 if (gClassTable->GetID("AliRun") < 0) {
10 gROOT->LoadMacro("loadlibs.C");
11 loadlibs();
12 } else {
88cb7938 13 delete gAlice->GetRunLoader();
fe4da5cc 14 delete gAlice;
15 gAlice = 0;
16 }
17
18// Connect the Root Galice file containing Geometry, Kine and Hits
88cb7938 19 AliRunLoader *rl = 0x0;
7df70ad2 20 TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(filename);
21 if(file){
22 cout<<"galice.root is already open \n";
23 }
fe4da5cc 24
88cb7938 25
26 rl = AliRunLoader::Open(filename,"DISPLAYED EVENT");
27
28 if (rl == 0x0)
29 {
30 cerr<<"Error <display.C()>: can not get Run Loader. Exiting"<<endl;
31 return;
32 }
fe4da5cc 33// Get AliRun object from file or create it if not on file
88cb7938 34
35 rl->LoadgAlice();
36
37 gAlice = rl->GetAliRun();
fe4da5cc 38 if (!gAlice) {
88cb7938 39 cerr<<"AliTPCHits2Digits.C : AliRun object not found on file\n";
40 return;
41 }
42
fe4da5cc 43// Create Event Display object
44 AliDisplay *edisplay = new AliDisplay(750);
6793b7db 45 if (ntracks>0) edisplay->SetTracksToDisplay(tracks, ntracks);
fe4da5cc 46
7df70ad2 47// Display the requested event
88cb7938 48 rl->GetEvent(nevent);
49 rl->LoadKinematics();
50 rl->LoadHeader();
51 rl->LoadHits();
52
53 AliDisplay *edisplay = new AliDisplay(750);
54
fe4da5cc 55 edisplay->ShowNextEvent(0);
7df70ad2 56
57// Define the buttons to switch on/off the existing modules
58 Float_t nodet=0.;
59 TObjArray *moduli = gAlice->Modules();
60 Int_t nomod=moduli->GetEntriesFast();
61 AliModule *modu;
62 for (Int_t j=0; j<nomod; j++){
63 modu=(AliModule*)moduli->At(j);
64 char *avoid=strstr("BODY MAG ABSO DIPO HALL FRAME SHIL PIPE",modu->GetName());
65 if(avoid)continue;
66 nodet++;
67 }
68 TDialogCanvas *dialog = new TDialogCanvas("Modules"," ",150,30*nodet);
69 Float_t yval1=1./nodet*0.9*0.05;
70 Float_t yval2=1./nodet*0.9*0.95;
71 char action[50];
72 char title[30];
73 char bname[30];
74 TButton *butto1;
75 for (Int_t j=0; j<nomod; j++){
76 modu=(AliModule*)moduli->At(j);
77 char *avoid=strstr(" BODY MAG ABSO DIPO HALL FRAME SHIL PIPE",modu->GetName());
78 if(avoid)continue;
79 sprintf(action,"swioff(\"%s\")",modu->GetName());
80 sprintf(title,"%s is on",modu->GetName());
81 sprintf(bname,"but%s",modu->GetName());
82 butto1 = new TButton(title,action,.05,yval1,.95,yval2);
83 butto1->SetName(bname);
84 butto1->SetFillColor(3);
85 butto1->Draw();
86 yval1+=1./nodet;
87 yval2+=1./nodet;
88 }
89}
90
91void swioff(const char *dete){
92 gAlice->Display()->DisableDetector(dete);
93 gAlice->Display()->Pad()->Modified();
94 gAlice->Display()->Pad()->Update();
95 char bname[30];
96 char action[50];
97 char title[30];
98 sprintf(bname,"but%s",dete);
99 TDialogCanvas *dia = (TDialogCanvas *)gROOT->FindObject("Modules");
100 TButton *bt = (TButton *)dia->FindObject(bname);
101 bt->SetFillColor(2);
102 sprintf(action,"swion(\"%s\")",dete);
103 bt->SetMethod(action);
104 sprintf(title,"%s is off",dete);
105 bt->SetTitle(title);
106 dia->Draw();
fe4da5cc 107}
7df70ad2 108
109void swion(const char *dete){
110 gAlice->Display()->EnableDetector(dete);
111 gAlice->Display()->Pad()->Modified();
112 gAlice->Display()->Pad()->Update();
113 TDialogCanvas *dia = (TDialogCanvas *)gROOT->FindObject("Modules");
114 char bname[30];
115 char action[50];
116 char title[30];
117 sprintf(bname,"but%s",dete);
118 TButton *bt = (TButton *)dia->FindObject(bname);
119 bt->SetFillColor(3);
120 sprintf(action,"swioff(\"%s\")",dete);
121 bt->SetMethod(action);
122 sprintf(title,"%s is on",dete);
123 bt->SetTitle(title);
124 dia->Draw();
125}
126