ROOT logo
void readDigits() 
{
 
  // Dynamically link some shared libs
  /*  if (gClassTable->GetID("AliRun") < 0) {
    gROOT->LoadMacro("loadlibs.C");
    loadlibs();
  }
  */
    Float_t c = 0.0299792; // cm/ps
    Float_t channelWidth = 25;
    Float_t timeDelay = 150;
    char filename[100];
    sprintf(filename,"galice.root");
    AliRunLoader* rl = AliRunLoader::Open("galice.root",AliConfig::GetDefaultEventFolderName(),"read");
    if (rl == 0x0)
   {
     cerr<<"Can not open session for file galice.root\n";
     return;
   }
    
    rl->LoadgAlice();
    gAlice = rl->GetAliRun();
    
    AliT0* T0  = (AliT0 *)gAlice->GetDetector("T0");
    
    rl->LoadHeader();
    Int_t retval;
    AliLoader* lstart = rl->GetLoader("T0Loader");

  Int_t iNevents=rl->GetNumberOfEvents();
  cout<<"  nevents   "<<iNevents<<endl;


  TH1F *hTimediff = new TH1F("hTimediff","Time difference",100,5950,6050);
  TH1F *hBestTimeright = new TH1F("hBestTimeright","First time right",
				  100,8450.,8650);
  TH1F *hBestTimeleft = new TH1F("hBestTimeleft","First time left",
				 100,8450.,8650.);
  TH1F *hRealVertex = new TH1F("hRealVertex","Real Vertex",100,-15,15);
  
  TH1F *hVertex = new TH1F("hVertex","Z position of vertex",   100,-15,15);
  //  digits = new AliT0digit();
  AliT0digit *fDigits   ; // digits
  fDigits = new AliT0digit();

 // Event ------------------------- LOOP  
  for (Int_t j=0; j<iNevents; j++){
    rl->GetEvent(j);

    AliHeader *header = gAlice->GetHeader();
    AliGenEventHeader* genHeader = header->GenEventHeader();
    TArrayF *o = new TArrayF(3); 
    genHeader->PrimaryVertex(*o);
    Float_t zRealVertex=o->At(2);
    hRealVertex->Fill( zRealVertex);

    lstart->LoadDigits("READ");
    TTree *digitsTree =  lstart->TreeD();
    TBranch *brDigits=digitsTree->GetBranch("T0");
    AliT0digit *fDigits = new AliT0digit();
    if (brDigits) {
      brDigits->SetAddress(&fDigits);
    }else{
      cerr<<"EXEC Branch T0 digits not found"<<endl;
      return;
    }
    brDigits->GetEntry(0);
    Int_t   besttimeright = fDigits->BestTimeRight();
    Int_t   besttimeleft = fDigits->BestTimeLeft();
    Int_t   timeDiff = fDigits->TimeDiff();
    Int_t    sumMult=   fDigits->SumMult();
    hTimediff->Fill(timeDiff);
    hBestTimeright->Fill(besttimeright);
    hBestTimeleft->Fill(besttimeleft );
    Float_t vertex= (timeDiff* channelWidth - timeDelay*1000.)*c;
    cout<<j<<" "<<besttimeright<<" "<< besttimeleft<<" "<<timeDiff<<" "<<vertex<<endl;
    hVertex->Fill(vertex);
  }
  Hfile = new TFile("Figdigits.root","RECREATE","Histograms for T0 digits");
  printf("Writting histograms to root file \n");
  Hfile->cd();
  //Create a canvas, set the view range, show histograms
  gStyle->SetOptStat(111111);
  //  TCanvas *c1 = new TCanvas("c1","Alice T0 Time ",400,10,600,600);
   hTimediff->Write();
  hBestTimeright->Write(); 
  hBestTimeleft ->Write(); 
  hVertex->Write();
  hRealVertex->Write();
    
 
} // end of macro




 readDigits.C:1
 readDigits.C:2
 readDigits.C:3
 readDigits.C:4
 readDigits.C:5
 readDigits.C:6
 readDigits.C:7
 readDigits.C:8
 readDigits.C:9
 readDigits.C:10
 readDigits.C:11
 readDigits.C:12
 readDigits.C:13
 readDigits.C:14
 readDigits.C:15
 readDigits.C:16
 readDigits.C:17
 readDigits.C:18
 readDigits.C:19
 readDigits.C:20
 readDigits.C:21
 readDigits.C:22
 readDigits.C:23
 readDigits.C:24
 readDigits.C:25
 readDigits.C:26
 readDigits.C:27
 readDigits.C:28
 readDigits.C:29
 readDigits.C:30
 readDigits.C:31
 readDigits.C:32
 readDigits.C:33
 readDigits.C:34
 readDigits.C:35
 readDigits.C:36
 readDigits.C:37
 readDigits.C:38
 readDigits.C:39
 readDigits.C:40
 readDigits.C:41
 readDigits.C:42
 readDigits.C:43
 readDigits.C:44
 readDigits.C:45
 readDigits.C:46
 readDigits.C:47
 readDigits.C:48
 readDigits.C:49
 readDigits.C:50
 readDigits.C:51
 readDigits.C:52
 readDigits.C:53
 readDigits.C:54
 readDigits.C:55
 readDigits.C:56
 readDigits.C:57
 readDigits.C:58
 readDigits.C:59
 readDigits.C:60
 readDigits.C:61
 readDigits.C:62
 readDigits.C:63
 readDigits.C:64
 readDigits.C:65
 readDigits.C:66
 readDigits.C:67
 readDigits.C:68
 readDigits.C:69
 readDigits.C:70
 readDigits.C:71
 readDigits.C:72
 readDigits.C:73
 readDigits.C:74
 readDigits.C:75
 readDigits.C:76
 readDigits.C:77
 readDigits.C:78
 readDigits.C:79
 readDigits.C:80
 readDigits.C:81
 readDigits.C:82
 readDigits.C:83
 readDigits.C:84
 readDigits.C:85
 readDigits.C:86
 readDigits.C:87
 readDigits.C:88
 readDigits.C:89
 readDigits.C:90
 readDigits.C:91
 readDigits.C:92
 readDigits.C:93
 readDigits.C:94
 readDigits.C:95
 readDigits.C:96
 readDigits.C:97
 readDigits.C:98