--- /dev/null
+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
+
+
+
+