these TTask are posted to the apropriate folders //YSAlice/tasks/(S)Digitizer and...
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 7 Jun 2001 21:44:35 +0000 (21:44 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 7 Jun 2001 21:44:35 +0000 (21:44 +0000)
PHOS/AliPHOSClusterizerv1.cxx
PHOS/AliPHOSDigitizer.cxx
PHOS/AliPHOSPIDv1.cxx
PHOS/AliPHOSReconstructioner.cxx
PHOS/AliPHOSSDigitizer.cxx
PHOS/AliPHOSTrackSegmentMakerv1.cxx

index 13696b6..663ca98 100644 (file)
@@ -103,20 +103,21 @@ ClassImp(AliPHOSClusterizerv1)
   fW0                      = 4.5 ;
   fW0CPV                   = 4.0 ;
   
-  fGeom  = 0 ;
+  fGeom                    = 0 ;
   
-  fDigits = 0 ;
-  fDigitizer = 0 ;
-  fEmcRecPoints = 0 ;
-  fCpvRecPoints = 0 ;
+  fDigits                  = 0 ;
+  fDigitizer               = 0 ;
+  fEmcRecPoints            = 0 ;
+  fCpvRecPoints            = 0 ;
 
-  fIsInitialized = kFALSE ;
+  fIsInitialized           = kFALSE ;
   
 }
 //____________________________________________________________________________
 AliPHOSClusterizerv1::AliPHOSClusterizerv1(const char* headerFile,const char* digitsFile):AliPHOSClusterizer()
 {
   // ctor with the indication of the file where header Tree and digits Tree are stored
+
   SetName("AliPHOSClusterizer");
   SetTitle("Version 1") ;
   
@@ -133,40 +134,14 @@ AliPHOSClusterizerv1::AliPHOSClusterizerv1(const char* headerFile,const char* di
   fW0                      = 4.5 ;
   fW0CPV                   = 4.0 ;
   
-  fToUnfold = kTRUE ;
-  
-  fHeaderFileName = headerFile  ;
-  fDigitsBranchTitle = digitsFile ;
-  
-  TFile * file = (TFile*) gROOT->GetFile(fHeaderFileName.Data() ) ;
-  
-  if(file == 0){
-    if(fHeaderFileName.Contains("rfio")) // if we read file using HPSS
-      file =   TFile::Open(fHeaderFileName.Data(),"update") ;
-    else
-      file = new TFile(fHeaderFileName.Data(),"update") ;
-    gAlice = (AliRun *) file->Get("gAlice") ;
-  }
-  
-  AliPHOS * phos = (AliPHOS *) gAlice->GetDetector("PHOS") ;    
-  fGeom  = AliPHOSGeometry::GetInstance(phos->GetGeometry()->GetName(),phos->GetGeometry()->GetTitle() );
-  
-  fDigits = new TClonesArray("AliPHOSDigit",10) ;
-  fDigitizer = new AliPHOSDigitizer() ;
-  fEmcRecPoints = new TObjArray(200) ;
-  fCpvRecPoints = new TObjArray(200) ;
-  fEmcRecPoints->SetOwner();          // This lets Clear() really detete rec.points in array
-  fCpvRecPoints->SetOwner();
+  fToUnfold                = kTRUE ;
   
-  if(!gMinuit) gMinuit = new TMinuit(100) ;
-  
-  // add Task to //root/Tasks folder
-  TTask * roottasks = (TTask*)gROOT->GetRootFolder()->FindObject("Tasks") ; 
-  TTask * phostasks = (TTask*)(roottasks->GetListOfTasks()->FindObject("PHOS"));
-  phostasks->Add(this) ; 
-
+  fHeaderFileName          = headerFile ;
+  fDigitsBranchTitle       = digitsFile ;
 
-  fIsInitialized = kTRUE ;
+  fIsInitialized           = kFALSE ;
+  
+  Init() ;
 
 }
 //____________________________________________________________________________
@@ -200,7 +175,6 @@ void AliPHOSClusterizerv1::Exec(Option_t * option)
     cout << endl ;
   }
   
-  
 }
 
 //____________________________________________________________________________
@@ -294,16 +268,20 @@ Bool_t AliPHOSClusterizerv1::FindFit(AliPHOSEmcRecPoint * emcRP, int * maxAt, Fl
 //____________________________________________________________________________
 void AliPHOSClusterizerv1::Init()
 {
-  //Make all memory allocations which can not be done in default constructor.
+  // Make all memory allocations which can not be done in default constructor.
+  // Attach the Clusterizer task to the list of PHOS tasks
+
   if(!fIsInitialized){
     if(fHeaderFileName.IsNull())
       fHeaderFileName = "galice.root" ;
     
-    
     TFile * file = (TFile*) gROOT->GetFile(fHeaderFileName.Data() ) ;
     
     if(file == 0){
-      file = new TFile(fHeaderFileName.Data(),"update") ;
+      if(fHeaderFileName.Contains("rfio")) // if we read file using HPSS
+       file =  TFile::Open(fHeaderFileName.Data(),"update") ;
+      else
+       file = new TFile(fHeaderFileName.Data(),"update") ;
       gAlice = (AliRun *) file->Get("gAlice") ;
     }
      
@@ -319,10 +297,11 @@ void AliPHOSClusterizerv1::Init()
     
     if(!gMinuit) gMinuit = new TMinuit(100) ;
 
-    // add Task to //root/Tasks folder
-    TTask * roottasks = (TTask*)gROOT->GetRootFolder()->FindObject("Tasks") ; 
-    TTask * phostasks = (TTask*)(roottasks->GetListOfTasks()->FindObject("PHOS"));
-    phostasks->Add(this) ; 
+    //add Task to //YSAlice/tasks/Reconstructioner/PHOS
+    TFolder * alice  = (TFolder*)gROOT->GetListOfBrowsables()->FindObject("YSAlice") ; 
+    TTask * aliceRe  = (TTask*)alice->FindObject("tasks/Reconstructioner") ; 
+    TTask * phosRe   = (TTask*)aliceRe->GetListOfTasks()->FindObject("PHOS") ;
+    phosRe->Add(this) ; 
 
     fIsInitialized = kTRUE ;
   }
index 2ee212c..7dca6e9 100644 (file)
@@ -78,47 +78,56 @@ ClassImp(AliPHOSDigitizer)
 {
   // ctor
 
-  fSDigitizer = 0 ;
-  fNinputs = 1 ;
-  fPinNoise = 0.01 ;
-  fEMCDigitThreshold = 0.01 ;
-  fCPVNoise = 0.01;
-  fCPVDigitThreshold = 0.09 ;
-  fPPSDNoise = 0.0000001;
-  fPPSDDigitThreshold = 0.0000002 ;
-  fInitialized = kFALSE ;
-
-  fHeaderFiles = 0;
-  fSDigitsTitles = 0;
-  fSDigits  = 0 ;
-  fDigits = 0;
+  fSDigitizer         = 0 ;
+
+  fNinputs            = 1 ;
+  fPinNoise           = 0.01 ;
+  fEMCDigitThreshold  = 0.01 ;
+  fCPVNoise           = 0.01;
+  fCPVDigitThreshold  = 0.09 ;
+  fPPSDNoise          = 0.0000001;
+  fPPSDDigitThreshold = 0.0000002 ;  
+  fInitialized        = kFALSE ;
+
+  fHeaderFiles        = 0;
+  fSDigitsTitles      = 0;
+  fSDigits            = 0 ;
+  fDigits             = 0;
 
 }
 //____________________________________________________________________________ 
 void AliPHOSDigitizer::Init()
 {
   // Makes all memory allocations
+  // Adds Digitizer task to the folder of PHOS tasks
   
   if(!fInitialized){
     
-    fHeaderFiles  = new TClonesArray("TObjString",1) ;
-    new((*fHeaderFiles)[0]) TObjString("galice.root") ;
+    if (fHeaderFiles == 0) {
+      fHeaderFiles  = new TClonesArray("TObjString",1) ;
+      new((*fHeaderFiles)[0]) TObjString("galice.root") ;
+    }
     
     //Test, if this file already open
     
     TFile *file = (TFile*) gROOT->GetFile(((TObjString *) fHeaderFiles->At(0))->GetString() ) ;
     
-    if(file == 0){
-      file = new TFile(((TObjString *) fHeaderFiles->At(0))->GetString(),"update") ;
-      gAlice = (AliRun *) file->Get("gAlice") ;
+    if(file==0){
+      if(((TObjString *) fHeaderFiles->At(0))->GetString().Contains("rfio"))
+       file =  TFile::Open(((TObjString *) fHeaderFiles->At(0))->GetString(),"update") ;
+      else
+       file = new TFile(((TObjString *) fHeaderFiles->At(0))->GetString(),"update") ;      
+      gAlice = (AliRun *) file->Get("gAlice") ;  //If not read yet
     }
     else
       file = new TFile(((TObjString *) fHeaderFiles->At(0))->GetString()) ;
     
     file->cd() ;
     
-    fSDigitsTitles = new TClonesArray("TObjString",1);
-    new((*fSDigitsTitles)[0]) TObjString("") ;   
+    if (fSDigitsTitles == 0) {
+      fSDigitsTitles = new TClonesArray("TObjString",1);
+      new((*fSDigitsTitles)[0]) TObjString("") ;   
+    }
     
     fSDigits      = new TClonesArray("TClonesArray",1) ;
     new((*fSDigits)[0]) TClonesArray("AliPHOSDigit",1000) ;
@@ -135,10 +144,11 @@ void AliPHOSDigitizer::Init()
     
     fIeventMax->AddAt((Int_t) gAlice->TreeE()->GetEntries(), 0 );
     
-    // add Task to //root/Tasks folder
-    TTask * roottasks = (TTask*)gROOT->GetRootFolder()->FindObject("Tasks") ; 
-    TTask * phostasks = (TTask*)(roottasks->GetListOfTasks()->FindObject("PHOS"));
-    phostasks->Add(this) ; 
+    //add Task to //YSAlice/tasks/(S)Diditizer/PHOS
+    TFolder * alice  = (TFolder*)gROOT->GetListOfBrowsables()->FindObject("YSAlice") ; 
+    TTask * aliceSD  = (TTask*)alice->FindObject("tasks/(S)Digitizer") ; 
+    TTask * phosSD   = (TTask*)aliceSD->GetListOfTasks()->FindObject("PHOS") ;
+    phosSD->Add(this) ; 
     
     fInitialized = kTRUE ;
   }
@@ -152,52 +162,19 @@ AliPHOSDigitizer::AliPHOSDigitizer(const char *headerFile,const char *sDigitsTit
   fHeaderFiles  = new TClonesArray("TObjString",1) ;          
   new((*fHeaderFiles)[0]) TObjString(headerFile) ;
   
-  // Header file, where result will be stored
-  TFile * file = (TFile*) gROOT->GetFile(((TObjString *) fHeaderFiles->At(0))->GetString() ) ;
-  if(file==0){
-      if(((TObjString *) fHeaderFiles->At(0))->GetString().Contains("rfio"))
-       file =  TFile::Open(((TObjString *) fHeaderFiles->At(0))->GetString(),"update") ;
-      else
-       file = new TFile(((TObjString *) fHeaderFiles->At(0))->GetString(),"update") ;      
-    gAlice = (AliRun *) file->Get("gAlice") ;  //If not read yet
-  }
-  
-  file->cd() ;
-  
   fSDigitsTitles = new TClonesArray("TObjString",1);         // Title name of the SDigits branch
   new((*fSDigitsTitles)[0]) TObjString(sDigitsTitle) ;  
     
-  fSDigits      = new TClonesArray("TClonesArray",1) ;      // here list of SDigits wil be stored
-  new((*fSDigits)[0]) TClonesArray("AliPHOSDigit",1000) ;
-    
-  fDigits = new TClonesArray("AliPHOSDigit",200000) ;
-  
-  fDigitsTitle = "" ; 
-
-  
-  fSDigitizer = 0 ;
-  
-  fIevent    = new TArrayI(1) ;
-  fIevent->AddAt(-1,0 ) ; 
-  fIeventMax = new TArrayI(1) ;
-  
-  // Get number of events to process
-  fIeventMax->AddAt((Int_t) gAlice->TreeE()->GetEntries(), 0 );
-  
-  fNinputs = 1 ;
-  
-  fPinNoise = 0.01 ;
-  fEMCDigitThreshold = 0.01 ;
-  fCPVNoise = 0.01;
-  fCPVDigitThreshold = 0.09 ;
-  fPPSDNoise = 0.0000001;
+  fNinputs            = 1 ;
+  fPinNoise           = 0.01 ;
+  fEMCDigitThreshold  = 0.01 ;
+  fCPVNoise           = 0.01;
+  fCPVDigitThreshold  = 0.09 ;
+  fPPSDNoise          = 0.0000001;
   fPPSDDigitThreshold = 0.0000002 ;  
-  
-  // add Task to //root/Tasks folder
-  TTask * roottasks = (TTask*)gROOT->GetRootFolder()->FindObject("Tasks") ; 
-  TTask * phostasks = (TTask*)(roottasks->GetListOfTasks()->FindObject("PHOS"));
-  phostasks->Add(this) ; 
-  fInitialized = kTRUE ;
+  fInitialized        = kFALSE ;
+
+  Init() ;
   
 }
 
index b636074..a58fdec 100644 (file)
@@ -102,37 +102,9 @@ AliPHOSPIDv1::AliPHOSPIDv1(const char * headeFile,const char * tsBranchTitle):Al
 
   SetName("AliPHOSPID") ;
   SetTitle("version1") ;
+  fIsInitialized = kFALSE ;
 
-  TFile * file = (TFile*) gROOT->GetFile(fHeaderFileName.Data() ) ;
-
-  if(file == 0){
-    if(fHeaderFileName.Contains("rfio")) // if we read file using HPSS
-      file = TFile::Open(fHeaderFileName.Data(),"update") ;
-    else
-      file = new TFile(fHeaderFileName.Data(),"update") ;
-    gAlice = (AliRun *) file->Get("gAlice") ;
-  }
-  
-  AliPHOS * phos = (AliPHOS *) gAlice->GetDetector("PHOS") ;    
-  fGeom  = AliPHOSGeometry::GetInstance(phos->GetGeometry()->GetName(),phos->GetGeometry()->GetTitle() );
-  
-  fTrackSegments = new TClonesArray("AliPHOSTrackSegment",1) ;
-  fTSMaker       = 0 ;
-  fEmcRecPoints  = new TObjArray(1) ;
-  fCpvRecPoints  = new TObjArray(1) ;
-  fClusterizer   = 0 ;
-  fRecParticles  = new TClonesArray("AliPHOSRecParticle",100) ;
-
-  fFormula = new TFormula("LambdaCuts","(x>1)*(x<3)*(y>0)*(y<x)") ;
-  
-  // add Task to //root/Tasks folder
-  TTask * roottasks = (TTask*)gROOT->GetRootFolder()->FindObject("Tasks") ; 
-  TTask * phostasks = (TTask*)(roottasks->GetListOfTasks()->FindObject("PHOS"));
-  phostasks->Add(this) ; 
-
-  fDispersion = 2.0; 
-  fCpvEmcDistance = 3.0 ;
-  fIsInitialized = kTRUE ;
+  Init() ;
 
 }
 //____________________________________________________________________________
@@ -144,6 +116,8 @@ AliPHOSPIDv1::~AliPHOSPIDv1()
 void AliPHOSPIDv1::Init()
 {
   // Make all memory allocations that are not possible in default constructor
+  // Add the PID task to the list of PHOS tasks
+
   if(!fIsInitialized){
     if(fHeaderFileName.IsNull())
       fHeaderFileName = "galice.root" ;
@@ -151,7 +125,10 @@ void AliPHOSPIDv1::Init()
     TFile * file = (TFile*) gROOT->GetFile(fHeaderFileName.Data() ) ;
 
     if(file == 0){
-      file = new TFile(fHeaderFileName.Data(),"update") ;
+      if(fHeaderFileName.Contains("rfio")) // if we read file using HPSS
+       file = TFile::Open(fHeaderFileName.Data(),"update") ;
+      else
+       file = new TFile(fHeaderFileName.Data(),"update") ;
       gAlice = (AliRun *) file->Get("gAlice") ;
     }
 
@@ -167,14 +144,15 @@ void AliPHOSPIDv1::Init()
     
     fFormula = new TFormula("LambdaCuts","(x>1)*(x<2.5)*(y>0)*(y<x)") ;
     
-    // add Task to //root/Tasks folder
-    TTask * roottasks = (TTask*)gROOT->GetRootFolder()->FindObject("Tasks") ; 
-    TTask * phostasks = (TTask*)(roottasks->GetListOfTasks()->FindObject("PHOS"));
-    phostasks->Add(this) ; 
-
-    fDispersion = 2.0; 
+    fDispersion     = 2.0 ; 
     fCpvEmcDistance = 3.0 ;
 
+    //add Task to //YSAlice/tasks/Reconstructioner/PHOS
+    TFolder * alice  = (TFolder*)gROOT->GetListOfBrowsables()->FindObject("YSAlice") ; 
+    TTask * aliceRe  = (TTask*)alice->FindObject("tasks/Reconstructioner") ; 
+    TTask * phosRe   = (TTask*)aliceRe->GetListOfTasks()->FindObject("PHOS") ;
+    phosRe->Add(this) ; 
+
     fIsInitialized = kTRUE ;
   }
 }
index a30f4ee..dc23cdd 100644 (file)
@@ -63,6 +63,7 @@
 #include "TClonesArray.h"
 #include "TROOT.h"
 #include "TTree.h"
+#include "TFile.h"
 
 // --- Standard library ---
 #include <iostream.h>   
@@ -403,6 +404,15 @@ AliPHOSReconstructioner::~AliPHOSReconstructioner()
   
   if(fPID)
     delete fPID ;
+
+//    TFile * file = (TFile*) gROOT->GetFile(fHeaderFileName.Data()) ;
+    
+//    if(file != 0) {
+//      file->Close();
+//      delete file;
+//      printf("File %s is closed\n",fHeaderFileName.Data());
+//    }
+
 } 
 //____________________________________________________________________________
 void AliPHOSReconstructioner::SetBranchTitle(const char* branch, const char * title)
index 89d5fff..b0ca76b 100644 (file)
@@ -70,12 +70,12 @@ ClassImp(AliPHOSSDigitizer)
   AliPHOSSDigitizer::AliPHOSSDigitizer():TTask("AliPHOSSDigitizer","") 
 {
   // ctor
-  fA = 0;
-  fB = 10000000. ;
+  fA             = 0;
+  fB             = 10000000.;
   fPrimThreshold = 0.01 ;
-  fNevents = 0 ;     
-  fSDigits = 0 ;
-  fHits = 0 ;
+  fNevents       = 0 ;      
+  fSDigits       = 0 ;
+  fHits          = 0 ;
   fIsInitialized = kFALSE ;
 
 }
@@ -84,32 +84,15 @@ ClassImp(AliPHOSSDigitizer)
 AliPHOSSDigitizer::AliPHOSSDigitizer(const char* headerFile, const char *sDigitsTitle):TTask("AliPHOSSDigitizer","")
 {
   // ctor
-  fA = 0;
-  fB = 10000000.;
+  fA             = 0;
+  fB             = 10000000.;
   fPrimThreshold = 0.01 ;
-  fNevents = 0 ;      
-  fSDigitsTitle = sDigitsTitle ;
-  fHeadersFile = headerFile ;
-  fSDigits = new TClonesArray("AliPHOSDigit",1000);
-  fHits    = new TClonesArray("AliPHOSHit",1000);
+  fNevents       = 0 ;      
+  fSDigitsTitle  = sDigitsTitle ;
+  fHeadersFile   = headerFile ;
+  fIsInitialized = kFALSE ;
 
-  TFile * file = (TFile*) gROOT->GetFile(fHeadersFile.Data() ) ;
-  
-  //File was not opened yet
-  if(file == 0){
-    if(fHeadersFile.Contains("rfio"))
-      file =   TFile::Open(fHeadersFile,"update") ;
-    else
-      file = new TFile(fHeadersFile.Data(),"update") ;
-    gAlice = (AliRun *) file->Get("gAlice") ;
-  }
-  
-  //add Task to //root/Tasks folder
-  TTask * roottasks = (TTask*)gROOT->GetRootFolder()->FindObject("Tasks") ; 
-  TTask * phostasks = (TTask*)(roottasks->GetListOfTasks()->FindObject("PHOS"));
-  phostasks->Add(this) ; 
-  
-  fIsInitialized = kTRUE ;
+  Init();
 }
 
 //____________________________________________________________________________ 
@@ -124,6 +107,9 @@ AliPHOSSDigitizer::~AliPHOSSDigitizer()
 //____________________________________________________________________________ 
 void AliPHOSSDigitizer::Init()
 {
+  // Initialization: open root-file, allocate arrays for hits and sdigits,
+  // attach task SDigitizer to the list of PHOS tasks
+  // 
   // Initialization can not be done in the default constructor
 
   if(!fIsInitialized){
@@ -135,17 +121,21 @@ void AliPHOSSDigitizer::Init()
     
     //if file was not opened yet, read gAlice
     if(file == 0){
-      file = new TFile(fHeadersFile.Data(),"update") ;
+      if(fHeadersFile.Contains("rfio"))
+       file =  TFile::Open(fHeadersFile,"update") ;
+      else
+       file = new TFile(fHeadersFile.Data(),"update") ;
       gAlice = (AliRun *) file->Get("gAlice") ;
     }
     
     fHits    = new TClonesArray("AliPHOSHit",1000);
     fSDigits = new TClonesArray("AliPHOSDigit",1000);
     
-    // add Task to //root/Tasks folder
-    TTask * roottasks = (TTask*)gROOT->GetRootFolder()->FindObject("Tasks") ; 
-    TTask * phostasks = (TTask*)(roottasks->GetListOfTasks()->FindObject("PHOS"));
-    phostasks->Add(this) ; 
+    //add Task to //YSAlice/tasks/(S)Diditizer/PHOS
+    TFolder * alice  = (TFolder*)gROOT->GetListOfBrowsables()->FindObject("YSAlice") ; 
+    TTask * aliceSD  = (TTask*)alice->FindObject("tasks/(S)Digitizer") ; 
+    TTask * phosSD   = (TTask*)aliceSD->GetListOfTasks()->FindObject("PHOS") ;
+    phosSD->Add(this) ; 
     
     fIsInitialized = kTRUE ;
   }
index 3a2289b..b26b726 100644 (file)
@@ -68,20 +68,20 @@ ClassImp( AliPHOSTrackSegmentMakerv1)
 
 
 //____________________________________________________________________________
- AliPHOSTrackSegmentMakerv1::AliPHOSTrackSegmentMakerv1() : AliPHOSTrackSegmentMaker()
+  AliPHOSTrackSegmentMakerv1::AliPHOSTrackSegmentMakerv1() : AliPHOSTrackSegmentMaker()
 {
   // ctor
   SetTitle("version 1") ;
   SetName("AliPHOSTrackSegmentMaker") ;
-  fR0 = 10. ;   
+  fR0       = 10. ;   
   fEmcFirst = 0 ;    
   fEmcLast  = 0 ;   
   fCpvFirst = 0 ;   
   fCpvLast  = 0 ;   
   fPpsdFirst= 0 ;   
   fPpsdLast = 0 ;   
-  fLinkLowArray = 0 ;
-  fLinkUpArray  = 0 ;
+  fLinkLowArray  = 0 ;
+  fLinkUpArray   = 0 ;
   fIsInitialized = kFALSE ;
 }
 //____________________________________________________________________________
@@ -91,7 +91,7 @@ AliPHOSTrackSegmentMaker()
   // ctor
   SetTitle("version 1") ;
   SetName("AliPHOSTrackSegmentMaker") ;
-  fR0 = 10. ;   
+  fR0       = 10. ;   
   fEmcFirst = 0 ;    
   fEmcLast  = 0 ;   
   fCpvFirst = 0 ;   
@@ -99,29 +99,11 @@ AliPHOSTrackSegmentMaker()
   fPpsdFirst= 0 ;   
   fPpsdLast = 0 ;   
 
-  fHeaderFileName = headerFile ;
+  fHeaderFileName       = headerFile ;
   fRecPointsBranchTitle = branchTitle ;
-    
-  TFile * file = (TFile*) gROOT->GetFile(fHeaderFileName.Data() ) ;
-  
-  if(file == 0){
-    file = new TFile(fHeaderFileName.Data(),"update") ;
-    gAlice = (AliRun *) file->Get("gAlice") ;
-  }
-  
-  AliPHOS * phos = (AliPHOS *) gAlice->GetDetector("PHOS") ;    
-  fGeom  = AliPHOSGeometry::GetInstance(phos->GetGeometry()->GetName(),phos->GetGeometry()->GetTitle() );
-  
-  fEmcRecPoints = new TObjArray(200) ;
-  fCpvRecPoints = new TObjArray(200) ;
-  fClusterizer  = new AliPHOSClusterizerv1() ;
-  
-  fTrackSegments = new TClonesArray("AliPHOSTrackSegment",200) ;
-  
-  fLinkLowArray = new TClonesArray("AliPHOSLink", 1000);
-  fLinkUpArray  = new TClonesArray("AliPHOSLink", 1000); 
+  fIsInitialized        = kFALSE ;
   
-  fIsInitialized = kTRUE ;
+  Init() ;
 
 }
 //____________________________________________________________________________
@@ -132,23 +114,23 @@ void  AliPHOSTrackSegmentMakerv1::Init()
   if(!fIsInitialized){
     if(fHeaderFileName.IsNull())
       fHeaderFileName = "galice.root" ;
-    
-    
+
     TFile * file = (TFile*) gROOT->GetFile(fHeaderFileName.Data() ) ;
-    
+
     if(file == 0){
-      file = new TFile(fHeaderFileName.Data(),"update") ;
+      if(fHeaderFileName.Contains("rfio")) // if we read file using HPSS
+       file =  TFile::Open(fHeaderFileName.Data(),"update") ;
+      else
+       file = new TFile(fHeaderFileName.Data(),"update") ;
       gAlice = (AliRun *) file->Get("gAlice") ;
     }
     
     AliPHOS * phos = (AliPHOS *) gAlice->GetDetector("PHOS") ;    
-    fGeom  = AliPHOSGeometry::GetInstance(phos->GetGeometry()->GetName(),phos->GetGeometry()->GetTitle() );
-
+    fGeom = AliPHOSGeometry::GetInstance(phos->GetGeometry()->GetName(),phos->GetGeometry()->GetTitle() );
 
     fEmcRecPoints = new TObjArray(200) ;
     fCpvRecPoints = new TObjArray(200) ;
     fClusterizer  = new AliPHOSClusterizerv1() ;
-
     
     fTrackSegments = new TClonesArray("AliPHOSTrackSegment",200) ;