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