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