ROOT logo
//_____________________________________________________//
//                                                     //
//    This macro reads ACORDE DDL Raw Data and          //
//    converts it into Digits                          //
//                                                     //
//____________________________________________________ //


void ACORDERaw2Digits(Int_t nEvents = 1, char* fileName = "rawdata.root")
{
  // Reads DDL data from fileName

  TStopwatch timer;
  timer.Start();

// Creates a TreeD to dump Digits

  AliRunLoader* rl = AliRunLoader::Open("galice.root");    

  AliACORDELoader* loader = (AliACORDELoader*) rl->GetLoader("ACORDELoader");
  
  if(!loader) {
    AliError("no ACORDE loader found");
    return kFALSE; }

  TTree* treeD  = loader->TreeD();
  if(!treeD) {
      loader->MakeTree("D");
      treeD = loader->TreeD(); }
        
  AliACORDEdigit  digit;
  AliACORDEdigit* pdigit = &digit;
  const Int_t kBufferSize = 4000;
   
  treeD->Branch("ACORDE", "AliACORDEdigit",  &pdigit, kBufferSize);

  AliRawReader* rawReader = 0x0;
//  rawReader = new AliRawReaderFile(fileName); // DDL files
  rawReader = new AliRawReaderRoot(fileName); // DDL files

  AliACORDERawStream* rawStream  = new AliACORDERawStream(rawReader);    

  for (Int_t i=0; i<nEvents; i++) {
    printf("=========== EVENT  %d ===========\n",i);
    if (!rawReader->NextEvent())
      break;

    rawStream->Reset();
    if (!rawStream->Next())
      break;
    printf("Data size is %d\n",rawStream->DataSize());
  /*  
  for(Int_t i=0; i<64; i++) {
      new(pdigit) AliACORDEdigit(i, (Int_t)rawStream->GetADC(i), (Int_t)rawStream->GetTime(i)); 
      treeD->Fill();
  }
  */ 
// Checks if everything is OK by printing results 

//   for(int i=0;i<64;i++) {
// 	printf("Channel %d : %d %d \n",i,rawStream->GetADC(i),rawStream->GetTime(i)); }
//   treeD->Print(); printf(" \n"); 
  }

  loader->WriteDigits("OVERWRITE");
  loader->UnloadDigits();	
	
  delete rawReader;
  delete rawStream;

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