]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSLoader.cxx
Logics of high gain adding to digits has changed
[u/mrichter/AliRoot.git] / PHOS / AliPHOSLoader.cxx
index c8e8bd105fcddbe10e86c87062c3d40831577ea4..5e63c93acdbd87861cf6a94553fd35a7b48842b9 100644 (file)
 
 /* $Id$ */
 
+/* History of cvs commits:
+ *
+ * $Log$
+ * Revision 1.18  2006/08/28 10:01:56  kharlov
+ * Effective C++ warnings fixed (Timur Pocheptsov)
+ *
+ * Revision 1.17  2006/08/25 16:00:53  kharlov
+ * Compliance with Effective C++AliPHOSHit.cxx
+ *
+ * Revision 1.16  2006/08/01 12:15:04  cvetan
+ * Adding a constructor from TFolder. Needed by AliReconstruction plugin scheme
+ *
+ * Revision 1.15  2005/07/12 20:07:35  hristov
+ * Changes needed to run simulation and reconstrruction in the same AliRoot session
+ *
+ * Revision 1.14  2005/05/28 14:19:04  schutz
+ * Compilation warnings fixed by T.P.
+ *
+ */
+
 //_________________________________________________________________________
 //  A singleton. This class should be used in the analysis stage to get 
 //  reconstructed objects: Digits, RecPoints, TrackSegments and RecParticles,
@@ -71,15 +91,31 @@ const TString AliPHOSLoader::fgkCpvRecPointsBranchName("PHOSCpvRP");//Name for b
 const TString AliPHOSLoader::fgkTrackSegmentsBranchName("PHOSTS");//Name for branch with TrackSegments
 const TString AliPHOSLoader::fgkRecParticlesBranchName("PHOSRP");//Name for branch with Reconstructed Particles
 //____________________________________________________________________________ 
-AliPHOSLoader::AliPHOSLoader()
- {
-  fDebug = 0;
- }
+AliPHOSLoader::AliPHOSLoader() : fBranchTitle(), fcdb(0), fDebug(0)
+{
+  //def ctor
+}
+//____________________________________________________________________________ 
+AliPHOSLoader::AliPHOSLoader(const Char_t *detname,const Char_t *eventfoldername) :
+      AliLoader(detname, eventfoldername),
+      fBranchTitle(), fcdb(0), fDebug(0)
+{
+  //ctor
+}
+//____________________________________________________________________________ 
+AliPHOSLoader::AliPHOSLoader(const Char_t *detname,TFolder *topfolder):
+      AliLoader(detname,topfolder),
+      fBranchTitle(), fcdb(0), fDebug(0)
+
+{
+  //ctor
+}
 //____________________________________________________________________________ 
-AliPHOSLoader::AliPHOSLoader(const Char_t *detname,const Char_t *eventfoldername):
-      AliLoader(detname,eventfoldername)
+AliPHOSLoader::AliPHOSLoader(const AliPHOSLoader & obj):
+  AliLoader(obj),fBranchTitle(obj.GetBranchTitle()),fcdb(obj.CalibrationDB()),
+  fDebug(obj.GetDebug())
 {
-  fDebug=0;
+  // Copy constructor
 }
 //____________________________________________________________________________ 
 
@@ -288,8 +324,10 @@ Int_t AliPHOSLoader::LoadRecParticles(Option_t* opt)
 }
 
 //____________________________________________________________________________ 
-
-Int_t AliPHOSLoader::PostHits()
+//PostHits etc. PostXXX must be const - not to hide virtual functions
+//from base class AliLoader, but they call non-constant functions ReadXXX
+//so I have to const_cast this pointer
+Int_t AliPHOSLoader::PostHits()const
 {
   // -------------- Hits -------------------------------------------
   Int_t reval = AliLoader::PostHits();
@@ -298,11 +336,12 @@ Int_t AliPHOSLoader::PostHits()
      AliError("returned error");
      return reval;
    }
-  return ReadHits();
+   
+  return const_cast<AliPHOSLoader *>(this)->ReadHits();
 }
 //____________________________________________________________________________ 
 
-Int_t AliPHOSLoader::PostSDigits()
+Int_t AliPHOSLoader::PostSDigits()const
 {
   // -------------- SDigits -------------------------------------------
   Int_t reval = AliLoader::PostSDigits();
@@ -311,11 +350,11 @@ Int_t AliPHOSLoader::PostSDigits()
      AliError("returned error");
      return reval;
    }
-  return ReadSDigits();
+  return const_cast<AliPHOSLoader *>(this)->ReadSDigits();
 }
 //____________________________________________________________________________ 
 
-Int_t AliPHOSLoader::PostDigits()
+Int_t AliPHOSLoader::PostDigits()const
 {
   // -------------- Digits -------------------------------------------
   Int_t reval = AliLoader::PostDigits();
@@ -324,11 +363,11 @@ Int_t AliPHOSLoader::PostDigits()
      AliError("returned error");
      return reval;
    }
-  return ReadDigits();
+  return const_cast<AliPHOSLoader *>(this)->ReadDigits();
 }
 //____________________________________________________________________________ 
 
-Int_t AliPHOSLoader::PostRecPoints()
+Int_t AliPHOSLoader::PostRecPoints()const
 {
   // -------------- RecPoints -------------------------------------------
   Int_t reval = AliLoader::PostRecPoints();
@@ -337,12 +376,12 @@ Int_t AliPHOSLoader::PostRecPoints()
      AliError("returned error");
      return reval;
    }
-  return ReadRecPoints();
+  return const_cast<AliPHOSLoader *>(this)->ReadRecPoints();
 }
 
 //____________________________________________________________________________ 
 
-Int_t AliPHOSLoader::PostRecParticles()
+Int_t AliPHOSLoader::PostRecParticles()const
 {
   // -------------- RecParticles -------------------------------------------
   Int_t reval = AliLoader::PostRecParticles();
@@ -351,11 +390,11 @@ Int_t AliPHOSLoader::PostRecParticles()
      AliError("returned error");
      return reval;
    }
-  return ReadRecParticles();
+  return const_cast<AliPHOSLoader *>(this)->ReadRecParticles();
 }
 //____________________________________________________________________________ 
 
-Int_t AliPHOSLoader::PostTracks()
+Int_t AliPHOSLoader::PostTracks()const
 {
   // -------------- Tracks -------------------------------------------
   Int_t reval = AliLoader::PostTracks();
@@ -364,7 +403,7 @@ Int_t AliPHOSLoader::PostTracks()
      AliError("returned error");
      return reval;
    }
-  return ReadTracks();
+  return const_cast<AliPHOSLoader *>(this)->ReadTracks();
 }
 //____________________________________________________________________________ 
 
@@ -422,6 +461,7 @@ Int_t AliPHOSLoader::ReadHits()
          index++ ; 
        }
      }
+    tempo->Delete();
     delete tempo;
    }
   else 
@@ -613,6 +653,8 @@ Int_t AliPHOSLoader::ReadTracks()
    }
   
   TBranch * branch = treeT->GetBranch(fgkTrackSegmentsBranchName);
+//   AliInfo(Form("Branch named %s is opened: 0x%z",
+//               fgkTrackSegmentsBranchName.Data(),branch));
   if (branch == 0) 
    {//easy, maybe just a new tree
     AliError(Form("Cannot find branch named %s",
@@ -765,55 +807,57 @@ void AliPHOSLoader::SetBranchTitle(const TString& btitle)
   fBranchTitle = btitle;
   ReloadAll();
  }
 //____________________________________________________________________________ 
-
-void AliPHOSLoader::CleanHits()
+//Again, must be const not to hide virtual functions from AliLoader
+//but there are calls to non-const functions, so I have to const_cast this pointer
+void AliPHOSLoader::CleanHits()const
 {
   // Clean Hits array
   AliLoader::CleanHits();
   //Clear an array 
-  TClonesArray* hits = Hits();
+  TClonesArray* hits = const_cast<AliPHOSLoader *>(this)->Hits();
   if (hits) hits->Clear();
 }
 //____________________________________________________________________________ 
 
-void AliPHOSLoader::CleanSDigits()
+void AliPHOSLoader::CleanSDigits()const
 {
   // Clean SDigits array
   AliLoader::CleanSDigits();
-  TClonesArray* sdigits = SDigits();
+  TClonesArray* sdigits = const_cast<AliPHOSLoader *>(this)->SDigits();
   if (sdigits) sdigits->Clear();
   
 }
 //____________________________________________________________________________ 
 
-void AliPHOSLoader::CleanDigits()
+void AliPHOSLoader::CleanDigits()const
 {
   // Clean Digits array
   AliLoader::CleanDigits();
-  TClonesArray* digits = Digits();
+  TClonesArray* digits = const_cast<AliPHOSLoader *>(this)->Digits();
   if (digits) digits->Clear();
 }
 //____________________________________________________________________________ 
 
-void AliPHOSLoader::CleanRecPoints()
+void AliPHOSLoader::CleanRecPoints()const
 {
   // Clean RecPoints array
   AliLoader::CleanRecPoints();
-  TObjArray* recpoints = EmcRecPoints();
+  TObjArray* recpoints = const_cast<AliPHOSLoader *>(this)->EmcRecPoints();
   if (recpoints) recpoints->Clear();
-  recpoints = CpvRecPoints();
+  recpoints = const_cast<AliPHOSLoader *>(this)->CpvRecPoints();
   if (recpoints) recpoints->Clear();
 }
 //____________________________________________________________________________ 
 
-void AliPHOSLoader::CleanTracks()
+void AliPHOSLoader::CleanTracks()const
 {
   //Cleans Tracks stuff
   AliLoader::CleanTracks();//tree
   
   //and clear the array
-  TClonesArray* tracks = TrackSegments();
+  TClonesArray* tracks = const_cast<AliPHOSLoader *>(this)->TrackSegments();
   if (tracks) tracks->Clear();
 
 }