]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSLoader.h
Bugfix: lowercase b should be upper case B for component id: TPCClusterFinder32Bit
[u/mrichter/AliRoot.git] / PHOS / AliPHOSLoader.h
index 5e74fd056294388714567eea856a65ab87e18aac..7f9cbc2a51c86991f7df838b7c2bb8ccbe8dcf66 100644 (file)
@@ -5,6 +5,20 @@
 
 /* $Id$ */
 
+/* History of cvs commits:
+ *
+ * $Log$
+ * Revision 1.12  2006/08/25 16:00:53  kharlov
+ * Compliance with Effective C++AliPHOSHit.cxx
+ *
+ * Revision 1.11  2006/08/01 12:15:03  cvetan
+ * Adding a constructor from TFolder. Needed by AliReconstruction plugin scheme
+ *
+ * Revision 1.10  2005/05/28 14:19:04  schutz
+ * Compilation warnings fixed by T.P.
+ *
+ */
+
 //_________________________________________________________________________
 //  A singleton that returns various objects 
 //  Should be used on the analysis stage to avoid confusing between different
 //  another set of RecPoints.
 // 
 //  The objects are retrived from folders.  
-//*-- Author: Yves Schutz (SUBATECH) & Dmitri Peressounko (RRC KI & SUBATECH)
+//-- Author: Yves Schutz (SUBATECH) & Dmitri Peressounko (RRC KI & SUBATECH)
 //    
 
 
 // --- ROOT system ---
 #include "TClonesArray.h"
-#include "TFolder.h"  
-#include "TTree.h"
 class TString ;
 class TParticle ;
 class TTask ;
 
 // --- Standard library ---
-#include <stdlib.h>
-#include <Riostream.h>
 
 // --- AliRoot header files ---
-
 #include "AliRun.h"
 #include "AliLoader.h"
 #include "AliRunLoader.h"
-#include "AliPHOS.h" 
-#include "AliPHOSHit.h" 
-#include "AliPHOSDigit.h"
-#include "AliPHOSEmcRecPoint.h"
-#include "AliPHOSCpvRecPoint.h"
-#include "AliPHOSTrackSegment.h"
-#include "AliPHOSRecParticle.h"
-class AliPHOSGeometry ;
-#include "AliPHOSDigitizer.h"
-#include "AliPHOSSDigitizer.h"
 #include "AliPHOSClusterizer.h"
 #include "AliPHOSTrackSegmentMaker.h"
 #include "AliPHOSPID.h"
-class AliPHOSCalibrationDB ;
-
-
-//
-
+class AliPHOS ; 
+class AliPHOSHit ; 
+class AliPHOSDigit ; 
+class AliPHOSEmcRecPoint ; 
+class AliPHOSCpvRecPoint ; 
+class AliPHOSTrackSegment ;
+class AliPHOSRecParticle ;  
+class AliPHOSSDigitizer ; 
+class AliPHOSDigitizer ;
+  
 class AliPHOSLoader : public AliLoader {
   
- public:
+public:
 
   AliPHOSLoader();
-  AliPHOSLoader(const AliPHOSLoader & obj) : AliLoader(obj) {}
   AliPHOSLoader(const Char_t *detname,const Char_t *eventfoldername); 
+  AliPHOSLoader(const Char_t *detname,TFolder *topfolder);
   
   virtual ~AliPHOSLoader() ; 
 
-  // assignement operator requested by coding convention, but not needed
-  AliPHOSLoader & operator = (const AliPHOSLoader & ) {return *this;}
-
   Int_t   GetEvent();//extends the method on PHOS RecPart posting
   Int_t   SetEvent();//extends the method on PHOS RecPart posting
   
@@ -75,20 +76,20 @@ class AliPHOSLoader : public AliLoader {
   Int_t   LoadTracks(Option_t* opt="");  //reads Tracks from disk and sends them to folder; array as well as tree
   Int_t   LoadRecParticles(Option_t* opt="");
    
-  Int_t   PostHits();  //Posts the 
-  Int_t   PostSDigits();
-  Int_t   PostDigits();
-  Int_t   PostRecPoints();
-  Int_t   PostTracks();
-  Int_t   PostRecParticles();
+  Int_t   PostHits()const;  //Posts the 
+  Int_t   PostSDigits()const;
+  Int_t   PostDigits()const;
+  Int_t   PostRecPoints()const;
+  Int_t   PostTracks()const;
+  Int_t   PostRecParticles()const;
   
   void    CleanFolders();//cleans all the stuff loaded by this detector + calls AliLoader::Clean
 
-  void    CleanHits();
-  void    CleanSDigits();
-  void    CleanDigits();
-  void    CleanRecPoints();
-  void    CleanTracks();
+  void    CleanHits()const;
+  void    CleanSDigits()const;
+  void    CleanDigits()const;
+  void    CleanRecPoints()const;
+  void    CleanTracks()const;
   void    CleanRecParticles();
 
 //up to now it is only here -> no definition about global/incremental tracking/PID
@@ -96,7 +97,6 @@ class AliPHOSLoader : public AliLoader {
 //   Int_t   WriteRecParticles(Option_t* opt="");//writes the reconstructed particles
 //   Int_t   WritePID(Option_t* opt="");//writes the task for PID to file
 //   Bool_t  PostPID  (AliPHOSPID * pid) const {return kTRUE;}
-//  Bool_t  PostQA   (void) const ; //it was empty anyway
   
 /*******************************************************************/
 /*******************************************************************/
@@ -112,18 +112,16 @@ class AliPHOSLoader : public AliLoader {
   TObject** AlarmsRef(){return GetDetectorDataRef(Alarms());}
   void   Track(Int_t itrack) ;
 
-  static AliPHOSGeometry* GetPHOSGeometry();
   static AliPHOSLoader* GetPHOSLoader(const  char* eventfoldername);
 
   //Method to be used when digitizing under AliRunDigitizer, who opens all files etc.
   Int_t  EventNumber()       { return (Int_t) GetRunLoader()->GetEventNumber();}
   Int_t  MaxEvent()          { return (Int_t) GetRunLoader()->TreeE()->GetEntries();}
 
-  const AliPHOS *         PHOS();
-  const AliPHOSGeometry  *PHOSGeometry() ; 
+/*   const AliPHOS *         PHOS(); */
   // Alarms
   // TFolder * Alarms() const { return (TFolder*)(ReturnO("Alarms", 0)); }
-  TObjArray *  Alarms();  
+  TObjArray *  Alarms() {return 0x0;}  
 
   /*********************************************/
   /************    TClonesArrays     ***********/
@@ -159,33 +157,43 @@ class AliPHOSLoader : public AliLoader {
   /************    T A S K S      **************/
   /*********************************************/
   // 
-  //  AliPHOSSDigitizer*  PHOSSDigitizer(TString name = AliConfig::fgkDefaultEventFolderName);
+  //  AliPHOSSDigitizer*  PHOSSDigitizer(TString name = AliConfig::GetDefaultEventFolderName());
   //AliPHOSDigitizer*   PHOSDigitizer()  { return  dynamic_cast<AliPHOSDigitizer*>(Digitizer()) ;}
 
-  AliPHOSClusterizer* Clusterizer ()  {return dynamic_cast<AliPHOSClusterizer*>(Reconstructioner()) ;}
-  Int_t PostClusterizer(TTask* clust){return PostReconstructioner(clust);}
-  Int_t LoadClusterizer(Option_t * opt="") {return LoadReconstructioner(opt);}
-  Int_t WriteClusterizer(Option_t * opt="") {return WriteReconstructioner(opt);}
+  AliPHOSPID * PID () const {return dynamic_cast<AliPHOSPID*>(PIDTask()) ;}
+  Int_t LoadPID(Option_t * opt="") const {return LoadPIDTask(opt);}
+  Int_t WritePID(Option_t * opt="") const {return WritePIDTask(opt);}
 
-  AliPHOSPID * PID (){return dynamic_cast<AliPHOSPID*>(PIDTask()) ;}
-  Int_t PostPID(TTask* pid){return PostPIDTask(pid);}
-  Int_t LoadPID(Option_t * opt="") {return LoadPIDTask(opt);}
-  Int_t WritePID(Option_t * opt="") {return WritePIDTask(opt);}
 
-
-  AliPHOSTrackSegmentMaker * TrackSegmentMaker ()  { return dynamic_cast<AliPHOSTrackSegmentMaker *>(Tracker()) ;}
-  Int_t PostTrackSegmentMaker(TTask* segmaker){return PostTracker(segmaker);}
-  Int_t LoadTrackSegmentMaker(Option_t * opt="") {return LoadTracker(opt);}
-  Int_t WriteTrackSegmentMaker(Option_t * opt="") {return WriteTracker(opt);}
+  AliPHOSTrackSegmentMaker * TrackSegmentMaker () const { return dynamic_cast<AliPHOSTrackSegmentMaker *>(Tracker()) ;}
+  Int_t LoadTrackSegmentMaker(Option_t * opt="") const {return LoadTracker(opt);}
+  Int_t WriteTrackSegmentMaker(Option_t * opt="") const {return WriteTracker(opt);}
 
   
   void   SetDebug(Int_t level) {fDebug = level;} // Set debug level
   void   SetBranchTitle(const TString& btitle);
+
+  Int_t   GetDebug()                     const {return fDebug;      }
+  TString GetBranchTitle()               const {return fBranchTitle;}
   
-  AliPHOSCalibrationDB * CalibrationDB(){return  fcdb; }
-  void ReadCalibrationDB(const char * name, const char * filename);
+protected:
+  TString fBranchTitle;            //Title of the branch
+
+private:
+
+  // assignement operator requested by coding convention, but not needed
+  AliPHOSLoader(const AliPHOSLoader &);                //Not implemented
+  AliPHOSLoader & operator = (const AliPHOSLoader & ); //Not implemented
+
+  Int_t ReadHits();
+  Int_t ReadDigits();
+  Int_t ReadSDigits();
+  Int_t ReadRecPoints();
+  Int_t ReadTracks();
+  Int_t ReadRecParticles();
   
- public:
+  Int_t  fDebug ;             // Debug level
+  TClonesArray *fTmpHits;     //! Temporary array of hits per track
 
   static const TString fgkHitsName;//Name for TClonesArray with hits from one event
   static const TString fgkSDigitsName;//Name for TClonesArray 
@@ -200,23 +208,8 @@ class AliPHOSLoader : public AliLoader {
   static const TString fgkTrackSegmentsBranchName;//Name for branch
   static const TString fgkRecParticlesBranchName;//Name for branch
   
-protected:
-  TString fBranchTitle;            //Title of the branch
-  AliPHOSCalibrationDB * fcdb ;       //!
-
-private:
-
-  Int_t ReadHits();
-  Int_t ReadDigits();
-  Int_t ReadSDigits();
-  Int_t ReadRecPoints();
-  Int_t ReadTracks();
-  Int_t ReadRecParticles();
-  
-  void  ReadTreeQA() ;
-  Int_t  fDebug ;             // Debug level
  
-  ClassDef(AliPHOSLoader,3)  // Algorithm class that provides methods to retrieve objects from a list knowing the index 
+  ClassDef(AliPHOSLoader,4)  // Algorithm class that provides methods to retrieve objects from a list knowing the index 
 
 };
 
@@ -327,8 +320,5 @@ inline const AliPHOSRecParticle* AliPHOSLoader::RecParticle(Int_t index)
     return (const AliPHOSRecParticle*) tcarr->At(index);
   return 0x0;  
 }
-/******************************************************************************/
-inline TObjArray *  AliPHOSLoader::Alarms()
-{ return (TObjArray*)(GetQAFolder()->FindObject(fDetectorName));}
 
 #endif // AliPHOSLOADER_H