]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSreconstruction.cxx
Changes by Massimo Masera to allow Recpoints and Clusters to be written
[u/mrichter/AliRoot.git] / ITS / AliITSreconstruction.cxx
index e9df18dd08bd8145f94c8032cf94ac9822e29604..deb9c75a3e467060cdb888c343a2e8608a6869db 100644 (file)
@@ -15,6 +15,9 @@
  
 /*
 $Log$
+Revision 1.3  2002/02/06 13:52:27  barbera
+gAlice deletion corrected (from M. Masera)
+
 Revision 1.2  2002/01/31 18:52:09  nilsen
 Minor change to allow the use of files that are already open. grun.C macro
 that also does ITS digitizationa and Reconstruction all in one go.
@@ -59,6 +62,7 @@ AliITSreconstruction::AliITSreconstruction(){
 
     fFilename = "";
     fFile     = 0;
+    fFile2    = 0;
     fITS      = 0;
     fDet[0] = fDet[1] = fDet[2] = kTRUE;
     fInit     = kFALSE;
@@ -78,16 +82,16 @@ AliITSreconstruction::AliITSreconstruction(const char* filename){
     //    A standardly constructed AliITSreconstruction class.
 
     fFilename = filename;
-
+    fFile2 = 0;
+    fFile = 0;
     if(filename){
        fFile = (TFile*)gROOT->GetListOfFiles()->FindObject(fFilename.Data());
        if(fFile) fFile->Close();
        fFile = new TFile(fFilename.Data(),"UPDATE");
-       //
-        if(gAlice) {
-          delete gAlice;
-          gAlice = 0;
-        }   
+    if(gAlice) {
+      delete gAlice;
+      gAlice = 0;
+    }
        gAlice = (AliRun*)fFile->Get("gAlice");
        if(!gAlice) {
            cout << "gAlice not found on file. Aborting." << endl;
@@ -95,8 +99,6 @@ AliITSreconstruction::AliITSreconstruction(const char* filename){
            return;
        } // end if !gAlice
     } // end if !filename.
-
-    Init();
 }
 //______________________________________________________________________
 AliITSreconstruction::~AliITSreconstruction(){
@@ -123,7 +125,6 @@ Bool_t AliITSreconstruction::Init(){
     // Return:
     //    kTRUE if no errors initilizing this class occurse else kFALSE
     Int_t nparticles;
-
     fITS = (AliITS*) gAlice->GetDetector("ITS");
     if(!fITS){
        cout << "ITS not found aborting. fITS=" << fITS << endl;
@@ -225,11 +226,33 @@ void AliITSreconstruction::Exec(const Option_t *opt){
        cout << "Initilization Failed, Can't run Exec." << endl;
        return;
     } // end if !fInit
+    TDirectory *curr = gDirectory;
+    if(fFile2)fFile2->cd();
     for(evnt=0;evnt<fEnt;evnt++){
        nparticles = gAlice->GetEvent(evnt);
        gAlice->SetEvent(evnt);
-       if(!gAlice->TreeR()) gAlice->MakeTree("R");
+       if(!gAlice->TreeR()){
+      if(fFile2){
+        gAlice->MakeTree("R",fFile2);
+      }
+      else {
+        gAlice->MakeTree("R");
+      }
+    }
        fITS->MakeBranch("R");
        fITS->DigitsToRecPoints(evnt,0,lopt);
+    cout << "end of recpoints finding *********************\n";
     } // end for evnt
+    curr->cd();
+}
+//______________________________________________________________________ 
+void AliITSreconstruction::SetOutputFile(TString filename){
+  // Set a file name for recpoints. Used only if this file is not the file
+  // containing digits. This obj is deleted by AliRun.
+  fFile2 = gAlice->InitTreeFile("R",filename);
 }
+
+
+
+
+