]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/PlotSDDRawData.C
New task for ITS tracking check
[u/mrichter/AliRoot.git] / ITS / PlotSDDRawData.C
index 552469e83140f6652e77608cce5aca4e16cb27a6..a7907d3aeb57abee567557441448ed8def70b883 100644 (file)
@@ -1,22 +1,22 @@
 #if !defined(__CINT__) || defined(__MAKECINT__)
 #include <TH2F.h>
+#include <TGrid.h>
 #include <TCanvas.h>
 #include <TStopwatch.h>
 #include <TStyle.h>
 #include "AliRawReaderDate.h"
 #include "AliRawReaderRoot.h"
 #include "AliITSRawStreamSDD.h"
+#include "AliITSRawStreamSDDCompressed.h"
 #endif
 
 // Macro to display the SDD Raw Data for 1 DDL
 // Origin: F. Prino,   prino@to.infn.it
 
-void PlotSDDRawData(Char_t datafil[100], Int_t nDDL, Int_t firstEv=0, Int_t lastEv=5){
+void PlotSDDRawData(Char_t datafil[100], Int_t nDDL, Int_t firstEv=18, Int_t lastEv=20){
 
-  Int_t eqOffset = 256;
-  Int_t DDLid_range= 24;
   const Int_t nHybrids=24;
-
+  Bool_t writtenoutput=kFALSE;
   TH2F** histo = new TH2F*[nHybrids];
   Char_t nome[20];
   for(Int_t i=0;i<nHybrids;i++){
@@ -35,29 +35,33 @@ void PlotSDDRawData(Char_t datafil[100], Int_t nDDL, Int_t firstEv=0, Int_t last
   TStopwatch *evtime=new TStopwatch();
   TCanvas* c0 = new TCanvas("cd0","c0",900,900);
   gStyle->SetPalette(1);
-  Int_t idev;
+
   do{
     c0->Clear();                               
     c0->Divide(4,6,0.001,0.001);
 
     evtime->Start();
     printf("Event # %d\n",iev);
-    rd->SelectEquipment(17,eqOffset,eqOffset+DDLid_range); 
     rd->Reset();
     for(Int_t i=0;i<nHybrids;i++) histo[i]->Reset();
-    AliITSRawStreamSDD s(rd);
-    rd->SelectEquipment(17,eqOffset,eqOffset+DDLid_range); 
+    UChar_t cdhAttr=AliITSRawStreamSDD::ReadBlockAttributes(rd);
+    UInt_t amSamplFreq=AliITSRawStreamSDD::ReadAMSamplFreqFromCDH(cdhAttr);
+    AliITSRawStream* s=AliITSRawStreamSDD::CreateRawStreamSDD(rd,cdhAttr);
+    if(!writtenoutput){
+      printf("Use %s raw stream, sampling frequency %d MHz\n",s->ClassName(),amSamplFreq);
+      writtenoutput=kTRUE;
+    }
+
     Int_t iCountNext=0;    
-    while(s.Next()){
+    while(s->Next()){
       iCountNext++;
-      if(s.IsCompletedModule()==kFALSE){
-       Int_t i=s.GetCarlosId()*2+s.GetChannel();
-       if(rd->GetDDLID()==nDDL) histo[i]->Fill(s.GetCoord2(),s.GetCoord1(),s.GetSignal());
+      if(s->IsCompletedModule()==kFALSE && s->IsCompletedDDL()==kFALSE){
+       Int_t i=s->GetCarlosId()*2+s->GetChannel();
+       if(rd->GetDDLID()==nDDL) histo[i]->Fill(s->GetCoord2(),s->GetCoord1(),s->GetSignal());
       }
     }
-    idev=s.GetEventId();
     evtime->Stop();
-    printf("**** Event=%d  ID=%d\n",iev,idev);
+    printf("**** Event=%d  \n",iev);
     evtime->Print("u");
     evtime->Reset();
     iev++;
@@ -71,3 +75,15 @@ void PlotSDDRawData(Char_t datafil[100], Int_t nDDL, Int_t firstEv=0, Int_t last
 
 }
 
+void PlotSDDRawData(Int_t nrun, Int_t n2, Int_t year=2009, Char_t* dir="LHC09b_SDD",
+                   Int_t nDDL=0, 
+                   Int_t firstEv=18, 
+                   Int_t lastEv=20){
+
+  TGrid::Connect("alien:",0,0,"t");
+  Char_t filnam[200];
+  sprintf(filnam,"alien:///alice/data/%d/%s/%09d/raw/%02d%09d%03d.10.root",year,dir,nrun,year-2000,nrun,n2);
+  printf("Open file %s\n",filnam);
+  PlotSDDRawData(filnam,nDDL,firstEv,lastEv);
+}
+