]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliDetector.h
Added methods for finding a given module in the DDL map (F. Prino)
[u/mrichter/AliRoot.git] / STEER / AliDetector.h
index 91db735830be3bc71ce57e78ecac435bf4213b65..f5576452e15291714f39083bbe670a3d88ae24f2 100644 (file)
@@ -5,9 +5,19 @@
 
 /* $Id$ */
 
-#include <AliModule.h>
+// 
+// This is the basic detector class from which
+// all ALICE detector derive.
+// This class is the base for the implementation of all detectors
+// in ALICE
+//
+
+#include "AliModule.h"
+
 class AliHit;
 class TTree;
+class TBranch;
+class AliLoader;
 
 class AliDetector : public AliModule {
 
@@ -16,39 +26,48 @@ public:
   // Creators - distructors
   AliDetector(const char* name, const char *title);
   AliDetector();
-  AliDetector(const AliDetector &det) {det.Copy(*this);}
   virtual ~AliDetector();
 
   // Inline functions
-          void  Copy(AliDetector &det) const;
   virtual int   GetNdigits() const {return fNdigits;}
   virtual int   GetNhits()   const {return fNhits;}
   TClonesArray *Digits() const {return fDigits;}
   TClonesArray *Hits()   const {return fHits;}
+
   TObjArray    *Points() const {return fPoints;}
   Int_t         GetIshunt() const {return fIshunt;}
   void          SetIshunt(Int_t ishunt) {fIshunt=ishunt;}
-  AliDetector &operator=(const AliDetector &det) 
-  {det.Copy(*this); return (*this);}
   
   // Other methods
+  virtual void        Publish(const char *dir, void *c, const char *name=0) const;
   virtual void        Browse(TBrowser *b);
   virtual void        FinishRun();
   virtual void        LoadPoints(Int_t track);
-  virtual void        MakeBranch(Option_t *opt=" ", char *file=0 );
+  virtual void        MakeBranch(Option_t *opt=" ");
   virtual void        ResetDigits();
   virtual void        ResetHits();
+  virtual void        AddAlignableVolumes() const;
+
   virtual void        ResetPoints();
   virtual void        SetTreeAddress();
   virtual void        SetTimeGate(Float_t gate) {fTimeGate=gate;}
   virtual Float_t     GetTimeGate() const {return fTimeGate;}
   virtual void        StepManager() {}
-  virtual void        DrawModule() {}
+  virtual void        DrawModule() const {}
   virtual AliHit*     FirstHit(Int_t track);
   virtual AliHit*     NextHit();
   virtual void        SetBufferSize(Int_t bufsize=8000) {fBufferSize = bufsize;}  
-  // Data members
+  virtual TBranch*    MakeBranchInTree(TTree *tree, const char* cname, void* address, Int_t size=32000, const char *file=0);
+  virtual TBranch*    MakeBranchInTree(TTree *tree, const char* cname, const char* name, void* address, Int_t size=32000, Int_t splitlevel=99, const char *file=0);
+  
+  void MakeTree(Option_t *option); //skowron
+  virtual void        RemapTrackHitIDs(Int_t *) {}
+  
+  virtual AliLoader* MakeLoader(const char* topfoldername); //builds standard getter (AliLoader type)
+  void    SetLoader(AliLoader* loader){fLoader = loader;}
+  AliLoader* GetLoader() const {return fLoader;} //skowron
+  TTree* TreeH() const;  //shorcut method for accessing treeH from folder
+    // Data members
 protected:      
   
   Float_t       fTimeGate;    //Time gate in seconds
@@ -57,11 +76,18 @@ protected:
   Int_t         fNhits;       //!Number of hits
   Int_t         fNdigits;     //!Number of digits
   Int_t         fBufferSize;  //!buffer size for Tree detector branches
-  TClonesArray *fHits;        //List of hits for one track only
-  TClonesArray *fDigits;      //List of digits for this detector
-  char         *fDigitsFile;  //!File to store branches of digits tree for detector 
+  Int_t         fMaxIterHit;  //!Limit for the hit iterator
+  Int_t         fCurIterHit;  //!Counter for the hit iterator
+  TClonesArray *fHits;        //!List of hits for one track only
+  TClonesArray *fDigits;      //!List of digits for this detector
   TObjArray    *fPoints;      //!Array of points for each track (all tracks in memory)
 
-  ClassDef(AliDetector,1)  //Base class for ALICE detectors
+  AliLoader*  fLoader;//! pointer to getter for this module skowron
+
+ private:
+  AliDetector(const AliDetector &det);
+  AliDetector &operator=(const AliDetector &det);
+
+  ClassDef(AliDetector,5)  //Base class for ALICE detectors
 };
 #endif