-TFile* AccessFile(TString inFile="galice.root", TString acctype="R");
+#if !defined(__CINT__) || defined(__MAKECINT__)
-void AliITSDigits2RecPoints(TString inFile="galice.root", TString outFile="galice.root"){
+#include <Riostream.h>
+#include <TClassTable.h>
+#include <TDatime.h>
+#include <TGeoManager.h>
+#include <TROOT.h>
+#include <TStopwatch.h>
+#include "AliRun.h"
+#include "AliRunDigitizer.h"
+#include "AliITSDetTypeRec.h"
+#include "AliITS.h"
+#include "AliITSresponseSDD.h"
+#include "AliITSreconstruction.h"
- TFile *file;
- if(outFile.Data() == inFile.Data()){
- file = AccessFile(inFile,"U");
- }
- else {
- file = AccessFile(inFile);
- }
-
- TStopwatch timer;
+#endif
+#define DEBUG
+
+Int_t AliITSDigits2RecPoints(TString filename="galice.root",TString fileRP=""){
+ // Standard ITS Digits to RecPoints.
+
+ // Get geometry
+ TGeoManager::Import("geometry.root");
+ // Dynamically link some shared libs
+ if (gClassTable->GetID("AliRun") < 0) {
+ gROOT->ProcessLine(".x $(ALICE_ROOT)/macros/loadlibs.C");
+ }else if (gAlice){
+ delete AliRunLoader::Instance();
+ delete gAlice;
+ gAlice=0;
+ } // end if
+
+ TStopwatch timer;
+#ifdef DEBUG
cout << "Creating reconstructed points from digits for the ITS..." << endl;
- const char *nulptr=0;
- AliITSreconstruction *itsr = new AliITSreconstruction(nulptr);
- if(outFile.Data() != inFile.Data())itsr->SetOutputFile(outFile);
+#endif
+ AliITSreconstruction *itsr = new AliITSreconstruction(filename);
+
timer.Start();
+ if(!(fileRP.IsNull()))itsr->SetOutputFile(fileRP);
itsr->Init();
itsr->Exec();
timer.Stop();
- timer.Print();
+ timer.Print();
delete itsr;
-}
-
-//-------------------------------------------------------------------
-TFile * AccessFile(TString FileName, TString acctype){
-
- // Function used to open the input file and fetch the AliRun object
-
- TFile *retfil = 0;
- TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(FileName);
- if (file) {file->Close(); delete file; file = 0;}
- if(acctype.Contains("U")){
- file = new TFile(FileName,"update");
- }
- if(acctype.Contains("N") && !file){
- file = new TFile(FileName,"recreate");
- }
- if(!file) file = new TFile(FileName); // default readonly
- if (!file->IsOpen()) {
- cerr<<"Can't open "<<FileName<<" !" << endl;
- return retfil;
- }
-
- // Get AliRun object from file or return if not on file
- if (gAlice) {delete gAlice; gAlice = 0;}
- gAlice = (AliRun*)file->Get("gAlice");
- if (!gAlice) {
- cerr << "AliRun object not found on file"<< endl;
- return retfil;
- }
- return file;
+ return 0;
}