-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;
};