1 #if !defined(__CINT__) || defined(__MAKECINT__)
4 #include <TStopwatch.h>
8 #include "AliRawReaderDate.h"
9 #include "AliRawReaderRoot.h"
10 #include "AliITSRawStreamSDD.h"
13 // Macro for a z-phi event display of the SDD Raw Data
14 // Origin: F. Prino, prino@to.infn.it
16 void DisplaySDDRawData(Char_t *datafil, Int_t firstEv=0, Int_t lastEv=5){
19 Int_t DDLid_range= 24;
21 AliITSDDLModuleMapSDD* ddlmap=new AliITSDDLModuleMapSDD();
22 ddlmap->SetJun08Map();
24 TH2F* hzphi3=new TH2F("hzphi3","Layer 3",1536,-0.5,1535.5,3584,-0.5,3584.5);
25 TH2F* hzphi4=new TH2F("hzphi4","Layer 4",2048,-0.5,2047.5,5632,-0.5,5631.5);
27 TLine** lA3=new TLine*[5];
28 for(Int_t ilin=0;ilin<5;ilin++){
29 lA3[ilin]=new TLine((ilin+1)*256,0,(ilin+1)*256,3584.5);
30 lA3[ilin]->SetLineColor(kGray);
31 lA3[ilin]->SetLineStyle(2);
33 TLine** lT3=new TLine*[13];
34 for(Int_t ilin=0;ilin<13;ilin++){
35 lT3[ilin]=new TLine(0,(ilin+1)*256,1535.5,(ilin+1)*256);
36 lT3[ilin]->SetLineColor(kGray);
37 lT3[ilin]->SetLineStyle(2);
40 TLine** lA4=new TLine*[7];
41 for(Int_t ilin=0;ilin<7;ilin++){
42 lA4[ilin]=new TLine((ilin+1)*256,0,(ilin+1)*256,5631.5);
43 lA4[ilin]->SetLineColor(kGray);
44 lA4[ilin]->SetLineStyle(2);
46 TLine** lT4=new TLine*[21];
47 for(Int_t ilin=0;ilin<21;ilin++){
48 lT4[ilin]=new TLine(0,(ilin+1)*256,2047.5,(ilin+1)*256);
49 lT4[ilin]->SetLineColor(kGray);
50 lT4[ilin]->SetLineStyle(2);
58 if(strstr(datafil,".root")!=0){
59 rd=new AliRawReaderRoot(datafil,iev);
61 rd=new AliRawReaderDate(datafil,iev);
63 TStopwatch *evtime=new TStopwatch();
64 TCanvas* c0 = new TCanvas("cd0","c0",800,800);
65 gStyle->SetPalette(1);
69 c0->Divide(1,2,0.001,0.001);
72 printf("Event # %d\n",iev);
73 rd->SelectEquipment(17,eqOffset,eqOffset+DDLid_range);
77 AliITSRawStreamSDD s(rd);
78 rd->SelectEquipment(17,eqOffset,eqOffset+DDLid_range);
83 if(s.IsCompletedModule()==kFALSE){
85 Int_t modID=ddlmap->GetModuleNumber(rd->GetDDLID(),s.GetCarlosId());
86 AliITSgeomTGeo::GetModuleId(modID,lay,lad,det);
87 Int_t iz=s.GetCoord1()+256*(det-1);
88 Int_t iphi=s.GetCoord2()+256*(lad-1)+128*s.GetChannel();
90 hzphi3->SetBinContent(iz+1,iphi+1,s.GetSignal());
92 hzphi4->SetBinContent(iz+1,iphi+1,s.GetSignal());
98 printf("**** Event=%d ID=%d\n",iev,idev);
104 hzphi3->Draw("colz");
105 for(Int_t ilin=0;ilin<5;ilin++) lA3[ilin]->Draw("same");
106 for(Int_t ilin=0;ilin<13;ilin++) lT3[ilin]->Draw("same");
107 hzphi3->GetXaxis()->SetTitle("Z (anode)");
108 hzphi3->GetYaxis()->SetTitle("PHI (time bin)");
111 hzphi4->Draw("colz");
112 for(Int_t ilin=0;ilin<7;ilin++) lA4[ilin]->Draw("same");
113 for(Int_t ilin=0;ilin<21;ilin++) lT4[ilin]->Draw("same");
114 hzphi4->GetXaxis()->SetTitle("Z (anode)");
115 hzphi4->GetYaxis()->SetTitle("PHI (time bin)");
117 }while(rd->NextEvent()&&iev<=lastEv);
121 void DisplaySDDRawData(Int_t nrun, Int_t n2, Int_t nchunk=10, Int_t firstEv=1, Int_t lastEv=20){
122 TGrid::Connect("alien:",0,0,"t");
124 sprintf(filnam,"alien:///alice/data/2008/LHC08c/%09d/raw/08%09d%03d.%02d.root",nrun,nrun,n2,nchunk);
125 printf("Open file %s\n",filnam);
126 DisplaySDDRawData(filnam,firstEv,lastEv);