1 #if !defined(__CINT__) || defined(__MAKECINT__)
5 #include <TStopwatch.h>
7 #include "AliRawReaderDate.h"
8 #include "AliRawReaderRoot.h"
9 #include "AliITSRawStreamSDD.h"
10 #include "AliITSRawStreamSDDCompressed.h"
13 // Macro to display the SDD Raw Data for 1 DDL
14 // Origin: F. Prino, prino@to.infn.it
16 void PlotSDDRawData(Char_t datafil[100],
23 const Int_t nHybrids=24;
24 Bool_t writtenoutput=kFALSE;
25 TH2F** histo = new TH2F*[nHybrids];
26 for(Int_t i=0;i<nHybrids;i++){
27 histo[i]=new TH2F(Form("histo%d",i),"",256,-0.5,255.5,256,-0.5,255.5);
28 histo[i]->SetStats(0);
31 Bool_t isSingleMod=kFALSE;
39 if(nDDL>=240 && nDDL<500){
41 AliITSDDLModuleMapSDD* dmap=new AliITSDDLModuleMapSDD();
43 dmap->FindInDDLMap(iMod,nDDL,nCarlos);
44 histo[nCarlos*2]->SetTitle(Form("Module %d Side 0",iMod));
45 histo[nCarlos*2+1]->SetTitle(Form("Module %d Side 1",iMod));
56 if(strstr(datafil,".root")!=0){
57 rd=new AliRawReaderRoot(datafil,iev);
59 rd=new AliRawReaderDate(datafil,iev);
61 TStopwatch *evtime=new TStopwatch();
62 TCanvas* c0 = new TCanvas("cd0","c0",xsiz,ysiz);
63 gStyle->SetPalette(1);
67 c0->Divide(npx,npy,0.001,0.001);
70 printf("Event # %d\n",iev);
72 for(Int_t i=0;i<nHybrids;i++) histo[i]->Reset();
73 UChar_t cdhAttr=AliITSRawStreamSDD::ReadBlockAttributes(rd);
74 UInt_t amSamplFreq=AliITSRawStreamSDD::ReadAMSamplFreqFromCDH(cdhAttr);
75 AliITSRawStream* s=AliITSRawStreamSDD::CreateRawStreamSDD(rd,cdhAttr);
77 printf("Use %s raw stream, sampling frequency %d MHz\n",s->ClassName(),amSamplFreq);
84 if(s->IsCompletedModule()==kFALSE && s->IsCompletedDDL()==kFALSE){
85 Int_t i=s->GetCarlosId()*2+s->GetChannel();
86 if(rd->GetDDLID()==nDDL) histo[i]->Fill(s->GetCoord2(),s->GetCoord1(),s->GetSignal());
90 printf("**** Event=%d \n",iev);
95 for(Int_t i=0;i<nHybrToPlot;i++){
98 histo[nCarlos*2+i]->DrawCopy("colz");
100 histo[i]->DrawCopy("colz");
104 // if(histo[nCarlos*2]->GetMaximum()>1) getchar();
105 }while(rd->NextEvent()&&iev<=lastEv);
109 void PlotSDDRawData(Int_t nrun,
112 Char_t* dir="LHC11d_SDD",
117 // Get file directly from alien
119 TGrid::Connect("alien:",0,0,"t");
121 sprintf(filnam,"alien:///alice/data/%d/%s/%09d/raw/%02d%09d%03d.10.root",year,dir,nrun,year-2000,nrun,n2);
122 printf("Open file %s\n",filnam);
123 PlotSDDRawData(filnam,nDDL,firstEv,lastEv);
126 void PlotSDDRawData(Char_t datafil[100],
133 // plot raw data for single module starting from
134 // Layer, Ladder and detector numbers (counted from 1)
135 Int_t modIndex=AliITSgeomTGeo::GetModuleIndex(nLay,nLad,nDet);
136 PlotSDDRawData(datafil,modIndex,firstEv,lastEv);