]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCHits2Digits.C
Processing of many events possible now
[u/mrichter/AliRoot.git] / TPC / AliTPCHits2Digits.C
index e4a424f8863858ed05db2f4fdf39ade63c9ce34e..11680a913195ed4e73474c9eba02de2f38e66916 100644 (file)
@@ -1,55 +1,48 @@
-void TPCHits2Digits()
+Int_t AliTPCHits2Digits(Int_t nevent=1)
 {
-  // Dynamically link some shared libs
-  if (gClassTable->GetID("AliRun") < 0) {
-    gROOT->LoadMacro("loadlibs.C");
-    loadlibs();
-  }  
-  gROOT->LoadMacro("SetTPCParam.C");
-  AliTPCParam *par=SetTPCParam();
 
+  // new version by J.Belikov
 
   // Connect the Root Galice file containing Geometry, Kine and Hits
-  const char * inFile = "galice.root";  
-  TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(inFile);
-  if (file) file->Close();
-  file = new TFile(inFile,"UPDATE");
-  // Get AliRun object from file or create it if not on file
 
+  const char * inFile_old = "galice.root"; 
+  const char * inFile_new = "rfio:galice.root";
+  TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(inFile_old);
+  if (file) {file->Close(); delete file;}
+  file =  TFile::Open(inFile_new,"UPDATE");
+  if (!file->IsOpen()) {
+    cerr<<"Can't open "<<inFile_new<<" !\n";
+    return 1;
+  }
+
+  // Get AliRun object from file or create it if not on file
+  if (gAlice) delete gAlice;
   gAlice = (AliRun*)file->Get("gAlice");
-  if (gAlice) printf("AliRun object found on file\n");
-  if (!gAlice) gAlice = new AliRun("gAlice","Alice test program");
+  if (!gAlice) {
+    cerr<<"AliTPCHits2Digits.C : AliRun object not found on file\n";
+    return 2;
+  }
+
+
 
-  gAlice->GetEvent(0);
+  // gAlice->GetEvent(0);
   AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC");      
-    
-  cerr<<"Hits2Digits\n";
-  //setup TPCDigitsArray 
-  AliTPCDigitsArray *arr = new AliTPCDigitsArray; 
-  arr->SetClass("AliSimDigits");
-  arr->Setup(par);
-  TPC->SetParam(par);
-  arr->MakeTree();
-
-  TPC->SetDigitsArray(arr);
-  TPC->Hits2DigitsSector(1);             
-  TPC->Hits2DigitsSector(2);             
-  TPC->Hits2DigitsSector(3);             
-  TPC->Hits2DigitsSector(1+18);             
-  TPC->Hits2DigitsSector(2+18);             
-  TPC->Hits2DigitsSector(3+18);             
-
-  TPC->Hits2DigitsSector(36+1);             
-  TPC->Hits2DigitsSector(36+2);             
-  TPC->Hits2DigitsSector(36+3);             
-  TPC->Hits2DigitsSector(36+1+18);             
-  TPC->Hits2DigitsSector(36+2+18);             
-  TPC->Hits2DigitsSector(36+3+18);             
-  //write results
-  char treeName[100];
-  sprintf(treeName,"TreeD_%s",par->GetTitle());
-  TPC->GetDigitsArray()->GetTree()->Write(treeName);
-  par->Write(par->GetTitle());
-  file->Close();
+
+  TStopwatch timer;
+  timer.Start();
+
+  for(Int_t eventn =0;eventn<nevent;eventn++){
+    printf("Processing event %d",eventn);
+    gAlice->GetEvent(eventn);
+
+    TPC->Hits2Digits(eventn);
+  }
+
+  delete gAlice; gAlice=0;
+  file->Close(); delete file;
+  timer.Stop();
+  timer.Print();
+
+  return 0;
 };