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


void VZERORaw2Digits(Int_t nEvent = 1) 
{
     for(int i=0;i<nEvent;i++) {
		printf("=========== EVENT  %d ===========\n",i);
		TString DirName = "raw";
		DirName += i;
		RawStreamEvent(DirName.Data()); }
}


Bool_t RawStreamEvent(TString fileName = "./")
{
  // Reads DDL data from fileName

  TStopwatch timer;
  timer.Start();

// Creates a TreeD to dump Digits

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

  AliVZEROLoader* loader = (AliVZEROLoader*) rl->GetLoader("VZEROLoader");
  
  if(!loader) {
    AliError("no VZERO loader found");
    return kFALSE; }

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

  AliRawReader* rawReader = 0x0;
  rawReader = new AliRawReaderFile(fileName); // DDL files
  
  AliVZERORawStream* rawStream  = new AliVZERORawStream(rawReader);    
     
  rawReader->NextEvent();
    
  rawStream->Next();
  
  for(Int_t i=0; i<64; i++) {
      new(pdigit) AliVZEROdigit(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();
}


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