A debug level has been added; corrected a mem leak by replacing Clean to Delete metho...
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 18 Jul 2001 16:07:38 +0000 (16:07 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 18 Jul 2001 16:07:38 +0000 (16:07 +0000)
PHOS/AliPHOSGetter.cxx
PHOS/AliPHOSGetter.h

index 1a8ef49280067847d950553f8ce6e994f1f368d4..7a1a2206a409bc7d637ec821552ce4cf9b901dde 100644 (file)
@@ -91,7 +91,7 @@ AliPHOSGetter::AliPHOSGetter(const char* headerFile, const char* branchTitle )
   fPrimaries = new TObjArray(1) ;
 
   if ( fHeaderFile != "aliroot" ) { // to call the getter without a file
-    
+
     //open headers file
     TFile * file = (TFile*) gROOT->GetFile(fHeaderFile.Data() ) ;
     
@@ -114,6 +114,7 @@ AliPHOSGetter::AliPHOSGetter(const char* headerFile, const char* branchTitle )
       }
     }
   }
+  fDebug="";
 }
 //____________________________________________________________________________ 
 void AliPHOSGetter::CreateWhiteBoard() const
@@ -237,8 +238,9 @@ void AliPHOSGetter::Post(const char * headerFile, const char * opt, const char *
       sdigitsF2 = sdigitsF->AddFolder(subdir, foldertitle); 
     else {
       if ( sdigitsF2->FindObject( sdigitsName.Data() ) ) {
-       cerr <<"INFO: AliPHOSGetter::Post S -> Folder " << subdir << ", " << foldertitle
-            << " already exists!" << endl ;  
+       if (fDebug.Contains("S"))
+         cerr <<"INFO: AliPHOSGetter::Post S -> Folder " << subdir << ", " << foldertitle
+              << " already exists!" << endl ;  
        return ; 
       }
     }
@@ -270,7 +272,8 @@ void AliPHOSGetter::Post(const char * headerFile, const char * opt, const char *
     } else {
       AliPHOSSDigitizer * phossd = (AliPHOSSDigitizer*)phos->GetListOfTasks()->FindObject(sdigitsName.Data()) ; 
       if (phossd) { 
-       cout << "INFO: AliPHOSGetter::Post Ser -> Task " << sdigitsName.Data() << " already exists" << endl ; 
+       if (fDebug.Contains("Ser"))
+         cout << "INFO: AliPHOSGetter::Post Ser -> Task " << sdigitsName.Data() << " already exists" << endl ; 
        return ; 
       } else 
        phos->Add(sdigitizer) ;
@@ -292,8 +295,9 @@ void AliPHOSGetter::Post(const char * headerFile, const char * opt, const char *
     }    
     digitsF->SetTitle(foldertitle) ; 
     if ( digitsF->FindObject( digitsName.Data() ) ) {
-      cerr <<"INFO: AliPHOSGetter::Post D -> Object " << digitsName.Data() 
-          << " already exists!" << endl ;  
+      if (fDebug.Contains("D"))
+       cerr <<"INFO: AliPHOSGetter::Post D -> Object " << digitsName.Data() 
+            << " already exists!" << endl ;  
       return ; 
     } 
     else 
@@ -320,7 +324,8 @@ void AliPHOSGetter::Post(const char * headerFile, const char * opt, const char *
     } else {
       AliPHOSDigitizer * phosd = (AliPHOSDigitizer*)phos->GetListOfTasks()->FindObject(digitsName.Data()) ; 
       if (phosd) { 
-       cout << "INFO: AliPHOSGetter::Post Der -> Task " << digitsName.Data() << " already exists" << endl ; 
+       if (fDebug.Contains("Der"))
+         cout << "INFO: AliPHOSGetter::Post Der -> Task " << digitsName.Data() << " already exists" << endl ; 
        return ; 
       } else 
        phos->Add(digitizer) ;
@@ -348,8 +353,9 @@ void AliPHOSGetter::Post(const char * headerFile, const char * opt, const char *
     }    
     // TString title("PHOS Digits") ; 
     if ( emcrpF->FindObject( recpointsName.Data() ) ||  cpvrpF->FindObject( recpointsName.Data() ) ) {
-      cerr <<"INFO: AliPHOSGetter::Post R -> Object " << recpointsName.Data() 
-          << " already exists!" << endl ;  
+      if (fDebug.Contains("R"))
+       cerr <<"INFO: AliPHOSGetter::Post R -> Object " << recpointsName.Data() 
+            << " already exists!" << endl ;  
       return ; 
     } 
     else {
@@ -384,7 +390,8 @@ void AliPHOSGetter::Post(const char * headerFile, const char * opt, const char *
     } else {
        AliPHOSClusterizer * phoscl = (AliPHOSClusterizer*)phos->GetListOfTasks()->FindObject(recpointsName.Data()) ; 
       if (phoscl) { 
-       cout << "INFO: AliPHOSGetter::Post Rer -> Task " << recpointsName.Data() << " already exists" << endl ; 
+       if (fDebug.Contains("Rer"))
+         cout << "INFO: AliPHOSGetter::Post Rer -> Task " << recpointsName.Data() << " already exists" << endl ; 
        return ; 
       } else 
        phos->Add(clusterizer) ;
@@ -407,8 +414,9 @@ void AliPHOSGetter::Post(const char * headerFile, const char * opt, const char *
       abort() ; 
     }    
     if ( tracksegmentsF->FindObject( tracksegmentsName.Data() ) ) {
-      cerr <<"INFO: AliPHOSGetter::Post T -> Object " << tracksegmentsName.Data() 
-          << " already exists!" << endl ;  
+      if (fDebug.Contains("T"))
+       cerr <<"INFO: AliPHOSGetter::Post T -> Object " << tracksegmentsName.Data() 
+            << " already exists!" << endl ;  
       return ; 
     } 
     else 
@@ -441,7 +449,8 @@ void AliPHOSGetter::Post(const char * headerFile, const char * opt, const char *
     } else {
        AliPHOSTrackSegmentMaker * phosts = (AliPHOSTrackSegmentMaker*)phos->GetListOfTasks()->FindObject(tracksegmentsName.Data()) ; 
       if (phosts) { 
-       cout << "INFO: AliPHOSGetter::Post Ter -> Task " << tracksegmentsName.Data() << " already exists" << endl ; 
+       if (fDebug.Contains("Ter"))
+         cout << "INFO: AliPHOSGetter::Post Ter -> Task " << tracksegmentsName.Data() << " already exists" << endl ; 
        return ; 
       } else 
        phos->Add(tracksegmentmaker) ;
@@ -464,8 +473,9 @@ void AliPHOSGetter::Post(const char * headerFile, const char * opt, const char *
       abort() ; 
     }    
     if ( recparticlesF->FindObject( recparticlesName.Data() ) ) {
-      cerr <<"INFO: AliPHOSGetter::Post P -> Object " << recparticlesName.Data() 
-          << " already exists!" << endl ;  
+      if (fDebug.Contains("P"))
+       cerr <<"INFO: AliPHOSGetter::Post P -> Object " << recparticlesName.Data() 
+            << " already exists!" << endl ;  
       return ; 
     } 
     else 
@@ -498,7 +508,8 @@ void AliPHOSGetter::Post(const char * headerFile, const char * opt, const char *
     } else {
        AliPHOSPID * phospid = (AliPHOSPID*)phos->GetListOfTasks()->FindObject(recparticlesName.Data()) ; 
       if (phospid) { 
-       cout << "INFO: AliPHOSGetter::Post Per -> Task " << recparticlesName.Data() << " already exists" << endl ; 
+       if (fDebug.Contains("Per"))
+         cout << "INFO: AliPHOSGetter::Post Per -> Task " << recparticlesName.Data() << " already exists" << endl ; 
        return ; 
       } else 
        phos->Add(pid) ;
@@ -699,11 +710,11 @@ void AliPHOSGetter::ReadTreeR()
   Post(fHeaderFile, "Rer", clusterizerName) ; 
 
   TObjArray * emcRecPoints = EmcRecPoints(fRecPointsTitle) ;
-  emcRecPoints->Clear() ; 
+  emcRecPoints->Delete() ; 
   emcbranch->SetAddress(&emcRecPoints) ;
 
   TObjArray * cpvRecPoints = CpvRecPoints(fRecPointsTitle) ;
-  cpvRecPoints->Clear() ; 
+  cpvRecPoints->Delete() ; 
   cpvbranch->SetAddress(&cpvRecPoints) ;
 
   clusterizer = Clusterizer(clusterizerName) ;
index 138b0ebfdd93a63e5d3c1369f1d32e4777ba6399..16f62b37cb8e87d2d7fcbea4f3d3cc62393c4af7 100644 (file)
@@ -21,6 +21,7 @@
 #include <stdlib.h>
 #include <iostream.h>
 
+#include <TTree.h>
 class TString ;
 class TParticle ;
 class TTask ;
@@ -30,6 +31,7 @@ class TFolder ;
 
 // --- AliRoot header files ---
 
+#include <AliRun.h>
 class AliPHOS ;
 class AliPHOSGeometry ;
 class AliPHOSHit ;
@@ -65,8 +67,8 @@ class AliPHOSGetter : public TObject {
   
   void Post(const char * file, const char * opt, const char * name = 0, const Int_t event=-1) const ;  
   void  Event(Int_t event) ; // reads event from file 
-  //     Int_t EventNumber(){ return fEvent; }
-  //     Int_t MaxEvent()   { return fMaxEvent;}
+  //     Int_t EventNumber(){ return (Int_t) gAlice->GetEvNumber() ; }
+  Int_t MaxEvent()          { return (Int_t) gAlice->TreeE()->GetEntries() ; }
   static AliPHOSGetter * GetInstance(const char* headerFile,
                                     const char* branchTitle = "No Name" ) ; 
   static AliPHOSGetter * GetInstance() ; 
@@ -143,6 +145,7 @@ class AliPHOSGetter : public TObject {
   const TParticle *           Primary(Int_t index) const ;
   const Int_t                 NPrimaries()const { return fNPrimaries; }
 
+  void  SetDebug(TString opt) {fDebug = opt;} // Set debug level
 
   AliPHOSGetter & operator = (const AliPHOSGetter & ) {
     // assignement operator requested by coding convention
@@ -174,6 +177,8 @@ class AliPHOSGetter : public TObject {
   TString        fDigitsTitle ;   //!
   TString        fSDigitsTitle ;  //!
 
+  TString        fDebug ;         // Debug level
+
   Int_t          fNPrimaries ;    //! # of primaries
   
   TObjArray *    fPrimaries ;     //! list of lists of primaries-for the case of mixing