-Int_t AliTPCHits2Digits(Int_t nevent=1)
-{
+#if !defined(__CINT__) || defined(__MAKECINT__)
+ #include <Riostream.h>
- // new version by J.Belikov
+ #include "AliRun.h"
+ #include "AliRunLoader.h"
+ #include "AliLoader.h"
+ #include "AliTPC.h"
+ #include "TStopwatch.h"
+#endif
+
+extern AliRun *gAlice;
+
+Int_t AliTPCHits2Digits(Int_t nev=5) {
// Connect the Root Galice file containing Geometry, Kine and Hits
+ if (gAlice) {
+ delete gAlice->GetRunLoader();
+ delete gAlice;//if everything was OK here it is already NULL
+ gAlice = 0x0;
+ }
- 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";
+ AliRunLoader *rl = AliRunLoader::Open("galice.root","Event","update");
+ if (!rl) {
+ cerr<<"Can't load RunLoader from "<<endl;
return 1;
}
// Get AliRun object from file or create it if not on file
- if (gAlice) delete gAlice;
- gAlice = (AliRun*)file->Get("gAlice");
+
+ rl->LoadgAlice();
+
+ gAlice = rl->GetAliRun();
if (!gAlice) {
cerr<<"AliTPCHits2Digits.C : AliRun object not found on file\n";
return 2;
}
-
-
- // gAlice->GetEvent(0);
AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC");
+ AliLoader * tpcl = rl->GetLoader("TPCLoader");
+ if ((TPC == 0x0) || (tpcl == 0x0)) {
+ cerr<<"AliTPCHits2Digits.C : Can not find TPC or TPCLoader\n";
+ delete rl;
+ return 3;
+ }
+ tpcl->LoadHits("READ");
+ tpcl->LoadDigits("recreate");
TStopwatch timer;
timer.Start();
- for(Int_t eventn =0;eventn<nevent;eventn++){
- printf("Processing event %d",eventn);
- gAlice->GetEvent(eventn);
+ // uncomment below lines to set sectors active
+ // Int_t sec[10]={0,1,2,3,4,5,6,7,8,9};
+ // TPC->SetActiveSectors(sec,10);
- TPC->Hits2Digits(eventn);
+ for (Int_t i=0; i<nev; i++){
+ printf("Processing event %d \n",i);
+ if(rl->GetEvent(i)) break;
+ TPC->SetActiveSectors(); // all sectors set active
+ TPC->Hits2Digits(i);
}
- delete gAlice; gAlice=0;
- file->Close(); delete file;
+ delete rl;
+
timer.Stop();
timer.Print();
return 0;
-};
+}