]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/alice-macros/its_raw.C
Corrected code to visualize the ITS raw data. Subject to further changes
[u/mrichter/AliRoot.git] / EVE / alice-macros / its_raw.C
CommitLineData
961e5e6c 1void its_raw(const char *input = "rawdata.root",
2 Int_t mode = 63,
3 Int_t event = 0,
4 Bool_t accumulate = kFALSE)
9d7caeed 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
9d7caeed 23 Alieve::ITSDigitsInfo* di = new Alieve::ITSDigitsInfo();
961e5e6c 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 }
540e156e 37 if (accumulate) di->ReadRaw(rawReader,mode);
961e5e6c 38 } while (++ev < event);
39
540e156e 40 if ( ! accumulate) di->ReadRaw(rawReader,mode);
961e5e6c 41
9d7caeed 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);
32e219c2 74 gReve->AddRenderElement(relSector, l);
9d7caeed 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);
32e219c2 80 gReve->AddRenderElement(relStave, relSector);
961e5e6c 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);
32e219c2 86 gReve->AddRenderElement(m, relStave);
961e5e6c 87 }
88 ++i;
9d7caeed 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);
32e219c2 107 gReve->AddRenderElement(relSector, l);
9d7caeed 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);
32e219c2 113 gReve->AddRenderElement(relStave, relSector);
961e5e6c 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);
32e219c2 119 gReve->AddRenderElement(m, relStave);
961e5e6c 120 }
121 ++i;
9d7caeed 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);
32e219c2 140 gReve->AddRenderElement(relLadder, l);
9d7caeed 141 for(nMod=0; nMod<6; nMod++) {
142 Alieve::ITSModule* m = new Alieve::ITSModule(i++, di);
32e219c2 143 gReve->AddRenderElement(m, relLadder);
9d7caeed 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);
32e219c2 160 gReve->AddRenderElement(relLadder, l);
9d7caeed 161 for(nMod=0; nMod<8; nMod++) {
162 Alieve::ITSModule* m = new Alieve::ITSModule(i++, di);
32e219c2 163 gReve->AddRenderElement(m, relLadder);
9d7caeed 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);
32e219c2 180 gReve->AddRenderElement(relLadder, l);
9d7caeed 181 for(nMod=0; nMod<22; nMod++) {
182 Alieve::ITSModule* m = new Alieve::ITSModule(i++, di);
32e219c2 183 gReve->AddRenderElement(m, relLadder);
9d7caeed 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);
32e219c2 200 gReve->AddRenderElement(relLadder, l);
9d7caeed 201 for(nMod=0; nMod<25; nMod++) {
202 Alieve::ITSModule* m = new Alieve::ITSModule(i++, di);
32e219c2 203 gReve->AddRenderElement(m, relLadder);
9d7caeed 204 }
205 }
206 } else {
207 i += 38*25;
208 }
209
210 gReve->EnableRedraw();
211}