ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
  #include <TStopwatch.h>
  #include <TH1F.h>
  #include <TH2F.h>
  #include <TCanvas.h>
  #include "AliRawReader.h"
  #include "AliAltroRawStreamV3.h"
  #include "AliLog.h"
#endif


void readAltroV3(const char *fileName = "./",Int_t ddlId = -1)
{
  TH1D *hsignal = new TH1D("signalall","All ADC counts",1024,-0.5,1023.5);
  TH1D *htime = new TH1D("timeall","All Time-Bins",1024,-0.5,1023.5);
  TH2F *hhwaddr = new TH2F("hhwaddr","DDL is vs HW addr",216,-0.5,215.5,4096,-0.5,4095.5);

  //  AliLog::SetGlobalLogLevel(AliLog::kFatal);
  //  AliLog::SetPrintRepetitions(kFALSE);

  AliRawReader *reader = AliRawReader::Create(fileName);
  reader->Reset();

  TStopwatch timer;
  timer.Start();

  AliAltroRawStreamV3 *stream = new AliAltroRawStreamV3(reader);
  if (ddlId >= 0)
    reader->Select("TPC",ddlId,ddlId);
  else
    reader->Select("TPC");

  //  stream->SelectRawData("TPC");

  Int_t iev = 0;

  while (reader->NextEvent()) {
    AliInfoGeneral("",Form("Reading event %d\n",iev++));
    while (stream->NextDDL()) {
      while (stream->NextChannel()) {
	while (stream->NextBunch()) {
	  const UShort_t *sig = stream->GetSignals();
	  Int_t startBin = stream->GetStartTimeBin();
	  for (Int_t i = 0; i < stream->GetBunchLength(); i++) {
	    hsignal->Fill(sig[i]);
	    htime->Fill(startBin--);
	    hhwaddr->Fill(stream->GetDDLNumber(),stream->GetHWAddress());
	  }
	}
      }
    }
    stream->Reset();
  }

  timer.Stop();
  timer.Print();

  TCanvas *c1 = new TCanvas("c1","",0,0,850,850);
  hsignal->Draw();
  TCanvas *c2 = new TCanvas("c2","",0,0,850,850);
  htime->Draw();
  TCanvas *c3 = new TCanvas("c3","",0,0,850,850);
  hhwaddr->Draw("colz");

}
 readAltroV3.C:1
 readAltroV3.C:2
 readAltroV3.C:3
 readAltroV3.C:4
 readAltroV3.C:5
 readAltroV3.C:6
 readAltroV3.C:7
 readAltroV3.C:8
 readAltroV3.C:9
 readAltroV3.C:10
 readAltroV3.C:11
 readAltroV3.C:12
 readAltroV3.C:13
 readAltroV3.C:14
 readAltroV3.C:15
 readAltroV3.C:16
 readAltroV3.C:17
 readAltroV3.C:18
 readAltroV3.C:19
 readAltroV3.C:20
 readAltroV3.C:21
 readAltroV3.C:22
 readAltroV3.C:23
 readAltroV3.C:24
 readAltroV3.C:25
 readAltroV3.C:26
 readAltroV3.C:27
 readAltroV3.C:28
 readAltroV3.C:29
 readAltroV3.C:30
 readAltroV3.C:31
 readAltroV3.C:32
 readAltroV3.C:33
 readAltroV3.C:34
 readAltroV3.C:35
 readAltroV3.C:36
 readAltroV3.C:37
 readAltroV3.C:38
 readAltroV3.C:39
 readAltroV3.C:40
 readAltroV3.C:41
 readAltroV3.C:42
 readAltroV3.C:43
 readAltroV3.C:44
 readAltroV3.C:45
 readAltroV3.C:46
 readAltroV3.C:47
 readAltroV3.C:48
 readAltroV3.C:49
 readAltroV3.C:50
 readAltroV3.C:51
 readAltroV3.C:52
 readAltroV3.C:53
 readAltroV3.C:54
 readAltroV3.C:55
 readAltroV3.C:56
 readAltroV3.C:57
 readAltroV3.C:58
 readAltroV3.C:59
 readAltroV3.C:60
 readAltroV3.C:61
 readAltroV3.C:62
 readAltroV3.C:63
 readAltroV3.C:64
 readAltroV3.C:65
 readAltroV3.C:66