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], Int_t nDDL, Int_t firstEv=18, Int_t lastEv=20){
18 const Int_t nHybrids=24;
19 Bool_t writtenoutput=kFALSE;
20 TH2F** histo = new TH2F*[nHybrids];
22 for(Int_t i=0;i<nHybrids;i++){
23 sprintf(nome,"histo%d",i);
24 histo[i]=new TH2F(nome,"",256,-0.5,255.5,256,-0.5,255.5);
25 histo[i]->SetStats(0);
30 if(strstr(datafil,".root")!=0){
31 rd=new AliRawReaderRoot(datafil,iev);
33 rd=new AliRawReaderDate(datafil,iev);
35 TStopwatch *evtime=new TStopwatch();
36 TCanvas* c0 = new TCanvas("cd0","c0",900,900);
37 gStyle->SetPalette(1);
41 c0->Divide(4,6,0.001,0.001);
44 printf("Event # %d\n",iev);
46 for(Int_t i=0;i<nHybrids;i++) histo[i]->Reset();
47 UChar_t cdhAttr=AliITSRawStreamSDD::ReadBlockAttributes(rd);
48 UInt_t amSamplFreq=AliITSRawStreamSDD::ReadAMSamplFreqFromCDH(cdhAttr);
49 AliITSRawStream* s=AliITSRawStreamSDD::CreateRawStreamSDD(rd,cdhAttr);
51 printf("Use %s raw stream, sampling frequency %d MHz\n",s->ClassName(),amSamplFreq);
58 if(s->IsCompletedModule()==kFALSE && s->IsCompletedDDL()==kFALSE){
59 Int_t i=s->GetCarlosId()*2+s->GetChannel();
60 if(rd->GetDDLID()==nDDL) histo[i]->Fill(s->GetCoord2(),s->GetCoord1(),s->GetSignal());
64 printf("**** Event=%d \n",iev);
69 for(Int_t i=0;i<nHybrids;i++){
71 histo[i]->DrawCopy("colz");
74 }while(rd->NextEvent()&&iev<=lastEv);
78 void PlotSDDRawData(Int_t nrun, Int_t n2, Int_t year=2009, Char_t* dir="LHC09b_SDD",
83 TGrid::Connect("alien:",0,0,"t");
85 sprintf(filnam,"alien:///alice/data/%d/%s/%09d/raw/%02d%09d%03d.10.root",year,dir,nrun,year-2000,nrun,n2);
86 printf("Open file %s\n",filnam);
87 PlotSDDRawData(filnam,nDDL,firstEv,lastEv);