]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alice-macros/its_raw.C
Comment code, hide public data-members.
[u/mrichter/AliRoot.git] / EVE / alice-macros / its_raw.C
1 // $Id$
2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 * 
8  **************************************************************************/
9 void its_raw(const char *input = "rawdata.root",
10              Int_t  mode       = 63,
11              Int_t  event      = 0,
12              Bool_t accumulate = kFALSE)
13 {
14   if (gSystem->AccessPathName(input, kReadPermission))
15   {
16     Error("its_raw", "file '%s' not found.", input);
17     return;
18   }
19
20   AliRawReader *rawReader = NULL;
21   TString fileName(input);
22   if (fileName.EndsWith("/")) {
23     rawReader = new AliRawReaderFile(fileName);
24   } else if (fileName.EndsWith(".root")) {
25     rawReader = new AliRawReaderRoot(fileName);
26   } else if (!fileName.IsNull()) {
27     rawReader = new AliRawReaderDate(fileName);
28     rawReader->SelectEvents(7);
29   }
30
31   AliEveITSDigitsInfo* di = new AliEveITSDigitsInfo();
32
33   if (accumulate) AliLog::SetGlobalLogLevel(AliLog::kError);
34   Int_t ev = 0;
35   do {
36     if (ev % 100 == 0) printf("AliEveEventManager: %d\n", ev);
37     if (rawReader->NextEvent() == kFALSE)
38     {
39       Error("its_raw", "Reading event %d failed (requested event %d).", ev, event);
40       if (accumulate)
41         break;
42       else
43         return;
44     }
45     if (accumulate) di->ReadRaw(rawReader,mode);
46   } while (++ev < event);
47
48   if ( ! accumulate) di->ReadRaw(rawReader,mode);
49
50   di->Dump();
51
52   delete rawReader;
53   // Could initialize AliEveITSModule statics (?)
54
55   AliITSgeom* g = di->fGeom;
56
57   gStyle->SetPalette(1, 0);
58   // Initialize palettes (?)
59
60   gEve->DisableRedraw();
61
62   TString sSector;
63   TString bsSector="Sector";
64   TString sStave;
65   TString bsStave="Stave";
66   TString sLadder;
67   TString bsLadder="Ladder";
68
69   Int_t i=0;
70   Int_t nsec, nstave, nlad, nMod;
71
72   if (mode & 1) {
73     TEveElementList* l = new TEveElementList("SPD0");
74     l->SetTitle("SPDs' first layer");
75     l->SetMainColor((Color_t)2);
76     gEve->AddElement(l);
77     for (nsec=0; nsec<10; nsec++) {
78       sSector  = bsSector;
79       sSector += nsec;
80       TEveElementList* relSector = new TEveElementList(sSector.Data());
81       relSector->SetMainColor((Color_t)2);
82       gEve->AddElement(relSector, l);
83       for (nstave=0; nstave<2; nstave++){
84         sStave  = bsStave;
85         sStave += nstave;
86         TEveElementList* relStave = new TEveElementList(sStave.Data());
87         relStave->SetMainColor((Color_t)2);
88         gEve->AddElement(relStave, relSector);
89         for (nMod=0; nMod<4; nMod++)
90         {
91           if (di->GetDigits(i, 0) && di->GetDigits(i, 0)->GetEntriesFast() > 0)
92           {
93             AliEveITSModule* m = new AliEveITSModule(i, di);
94             gEve->AddElement(m, relStave);
95           }
96           ++i;
97         }
98       }
99     }
100   } else {
101     i += 10*2*4;
102   }
103
104   if (mode & 2) {
105     TEveElementList* l = new TEveElementList("SPD1");
106     l->SetTitle("SPDs' second layer");
107     l->SetMainColor((Color_t)2);
108     gEve->AddElement(l);
109
110     for (nsec=0; nsec<10; nsec++) {
111       sSector  = bsSector;
112       sSector += nsec;
113       TEveElementList* relSector = new TEveElementList(sSector.Data());
114       relSector->SetMainColor((Color_t)2);
115       gEve->AddElement(relSector, l);
116       for (nstave=0; nstave<4; nstave++){
117         sStave  = bsStave;
118         sStave += nstave;
119         TEveElementList* relStave = new TEveElementList(sStave.Data());
120         relStave->SetMainColor((Color_t)2);
121         gEve->AddElement(relStave, relSector);
122         for (nMod=0; nMod<4; nMod++)
123         {
124           if (di->GetDigits(i, 0) && di->GetDigits(i, 0)->GetEntriesFast() > 0)
125           {
126             AliEveITSModule* m = new AliEveITSModule(i, di);
127             gEve->AddElement(m, relStave);
128           }
129           ++i;
130         }
131       }
132     }
133   } else {
134     i += 10*4*4;
135   }
136
137   if (mode & 4) {
138     TEveElementList* l = new TEveElementList("SDD2");
139     l->SetTitle("SDDs' first layer");
140     l->SetMainColor((Color_t)3);
141     gEve->AddElement(l);
142
143     for (nlad=0; nlad<14; nlad++) {
144       sLadder  = bsLadder;
145       sLadder += nlad;
146       TEveElementList* relLadder = new TEveElementList(sLadder.Data());
147       relLadder->SetMainColor((Color_t)3);
148       gEve->AddElement(relLadder, l);
149       for (nMod=0; nMod<6; nMod++) {
150         AliEveITSModule* m = new AliEveITSModule(i++, di);
151         gEve->AddElement(m, relLadder);
152       }
153     }
154   } else {
155     i += 14*6;
156   }
157
158   if (mode & 8) {
159     TEveElementList* l = new TEveElementList("SDD3");
160     l->SetTitle("SDDs' second layer");
161     l->SetMainColor((Color_t)3);
162     gEve->AddElement(l);
163     for (nlad=0; nlad<22; nlad++) {
164       sLadder  = bsLadder;
165       sLadder += nlad;
166       TEveElementList* relLadder = new TEveElementList(sLadder.Data());
167       relLadder->SetMainColor((Color_t)3);
168       gEve->AddElement(relLadder, l);
169       for (nMod=0; nMod<8; nMod++) {
170         AliEveITSModule* m = new AliEveITSModule(i++, di);
171         gEve->AddElement(m, relLadder);
172       }
173     }
174   } else {
175     i += 22*8;
176   }
177
178   if (mode & 16) {
179     TEveElementList* l = new TEveElementList("SSD4");
180     l->SetTitle("SSDs' first layer");
181     l->SetMainColor((Color_t)4);
182     gEve->AddElement(l);
183     for (nlad=0; nlad<34; nlad++) {
184       sLadder  = bsLadder;
185       sLadder += nlad;
186       TEveElementList* relLadder = new TEveElementList(sLadder.Data());
187       relLadder->SetMainColor((Color_t)4);
188       gEve->AddElement(relLadder, l);
189       for (nMod=0; nMod<22; nMod++) {
190         AliEveITSModule* m = new AliEveITSModule(i++, di);
191         gEve->AddElement(m, relLadder);
192       }
193     }
194   } else {
195     i += 34*22;
196   }
197
198   if (mode & 32) {
199     TEveElementList* l = new TEveElementList("SSD5");
200     l->SetTitle("SSDs' second layer");
201     l->SetMainColor((Color_t)4);
202     gEve->AddElement(l);
203     for (nlad=0; nlad<38; nlad++) {
204       sLadder  = bsLadder;
205       sLadder += nlad;
206       TEveElementList* relLadder = new TEveElementList(sLadder.Data());
207       relLadder->SetMainColor((Color_t)4);
208       gEve->AddElement(relLadder, l);
209       for (nMod=0; nMod<25; nMod++) {
210         AliEveITSModule* m = new AliEveITSModule(i++, di);
211         gEve->AddElement(m, relLadder);
212       }
213     }
214   } else {
215     i += 38*25;
216   }
217
218   gEve->EnableRedraw();
219 }