]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliDetector.h
Macro to read the ESD event
[u/mrichter/AliRoot.git] / STEER / AliDetector.h
index fb556a553d94995344644a04bd79c7a6bb9029cf..38100bd5251883977836e035403dd293632e951c 100644 (file)
-#ifndef AliDetector_H
-#define AliDetector_H
-#include <TNamed.h>
-#include <TClonesArray.h>
-#include <TBrowser.h>
-#include <TAttLine.h>
-#include <TAttMarker.h>
-#include <TArrayI.h>
-#include <Gtypes.h>
-#include <AliHit.h>
+#ifndef ALIDETECTOR_H
+#define ALIDETECTOR_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
 
-class AliDetector : public TNamed , public TAttLine, public TAttMarker {
+/* $Id$ */
 
-  // Data members
-protected:      
-  
-  TString       fEuclidMaterial;  //Name of the Euclid file for materials (if any)
-  TString       fEuclidGeometry;  //Name of the Euclid file for geometry (if any)
-  
-  TArrayI      *fIdtmed;      //List of tracking medium numbers
-  TArrayI      *fIdmate;      //List of material numbers
-  Int_t         fLoMedium;   //Minimum tracking medium ID for this detector
-  Int_t         fHiMedium;   //Maximum tracking medium ID for this detector
+#include "AliModule.h"
 
-  Float_t       fTimeGate;    //Time gate in seconds
+class AliHit;
+class TTree;
+class TBranch;
+class AliLoader;
 
-  Bool_t        fActive;      //Detector activity flag
-  Int_t         fIshunt;      //1 if the hit is attached to the primary
-  Int_t         fNhits;       //Number of hits
-  Int_t         fNdigits;     //Number of digits
-  Int_t         fBufferSize;  //buffer size for Tree detector branches
-  TList        *fHistograms;  //List of histograms
-  TList        *fNodes;       //List of geometry nodes
-  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)
+class AliDetector : public AliModule {
 
 public:
 
   // Creators - distructors
   AliDetector(const char* name, const char *title);
   AliDetector();
+  AliDetector(const AliDetector &det);
   virtual ~AliDetector();
 
   // Inline functions
-  inline virtual int   GetNdigits() {return fNdigits;}
-  inline virtual int   GetNhits()   {return fNhits;}
-  inline TList        *Histograms() {return fHistograms;}
-  inline TList        *Nodes()  {return fNodes;}
-  inline TClonesArray *Digits() {return fDigits;}
-  inline TClonesArray *Hits()   {return fHits;}
-  inline TObjArray    *Points() {return fPoints;}
-  inline Int_t         GetIshunt() {return fIshunt;}
-  inline void          SetIshunt(Int_t ishunt) {fIshunt=ishunt;}
-  inline Bool_t        IsActive() {return fActive;}
-  inline Bool_t        IsFolder() {return kTRUE;}
-  inline Int_t&        LoMedium() {return fLoMedium;}
-  inline Int_t&        HiMedium() {return fHiMedium;}
+  void  Copy(TObject &det) const;
+  virtual int   GetNdigits() const {return fNdigits;}
+  virtual int   GetNhits()   const {return fNhits;}
+  TClonesArray *Digits() const {return fDigits;}
+  TClonesArray *Hits()   const {return fHits;}
 
-  // Detector composition
-  virtual void  AliMaterial(Int_t, const char*, Float_t, Float_t, Float_t, Float_t,
-                           Float_t, Float_t* buf=0, Int_t nwbuf=0) const;
-  virtual void  AliMixture(Int_t, const char*, Float_t*, Float_t*, Float_t, Int_t, Float_t*) const;
-  virtual void  AliMedium(Int_t, const char*, Int_t, Int_t, Int_t, Float_t, Float_t, 
-                  Float_t, Float_t, Float_t, Float_t, Float_t* ubuf=0, Int_t nbuf=0) const;
-  virtual void  AliMatrix(Int_t&, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t) const;
+  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);}
   
-  // Virtual methods
-  virtual void  BuildGeometry()=0;
-  virtual Int_t IsVersion() const =0;
-
   // Other methods
-  virtual void        AddDigit(Int_t*, Int_t*){}
-  virtual void        AddHit(Int_t, Int_t*, Float_t *) {}
+  virtual void        Publish(const char *dir, void *c, const char *name=0);
   virtual void        Browse(TBrowser *b);
-  virtual void        CreateGeometry() {}
-  virtual void        CreateMaterials() {}
-  virtual void        Disable();
-  virtual Int_t       DistancetoPrimitive(Int_t px, Int_t py);
-  virtual void        Enable();
-  virtual inline void PreTrack(){}
-  virtual inline void PostTrack(){}
-  virtual inline void FinishEvent() {}
   virtual void        FinishRun();
-  virtual void        Hits2Digits() {}
-  virtual void        Init() {}
   virtual void        LoadPoints(Int_t track);
   virtual void        MakeBranch(Option_t *opt=" ");
-  virtual void        Paint(Option_t *) {}
   virtual void        ResetDigits();
   virtual void        ResetHits();
+
   virtual void        ResetPoints();
   virtual void        SetTreeAddress();
   virtual void        SetTimeGate(Float_t gate) {fTimeGate=gate;}
-  virtual Float_t     GetTimeGate() {return fTimeGate;}
-  virtual void        StepManager();
-  virtual void        DrawDetector() {}
-  virtual AliHit*     FirstHit(Int_t);
+  virtual Float_t     GetTimeGate() const {return fTimeGate;}
+  virtual void        StepManager() {}
+  virtual void        DrawModule() {}
+  virtual AliHit*     FirstHit(Int_t track);
   virtual AliHit*     NextHit();
   virtual void        SetBufferSize(Int_t bufsize=8000) {fBufferSize = bufsize;}  
-  virtual void        SetEuclidFile(char*,char*geometry=0);
-  ClassDef(AliDetector,1)  //Base class for ALICE detectors
+  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 AliLoader* MakeLoader(const char* topfoldername); //builds standard getter (AliLoader type)
+  void    SetLoader(AliLoader* loader){fLoader = loader;}
+  AliLoader* GetLoader() const {return fLoader;} //skowron
+  TTree* TreeH();  //shorcut method for accessing treeH from folder
+    // Data members
+protected:      
+  
+  Float_t       fTimeGate;    //Time gate in seconds
+
+  Int_t         fIshunt;      //1 if the hit is attached to the primary
+  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
+  TObjArray    *fPoints;      //!Array of points for each track (all tracks in memory)
+
+  AliLoader*  fLoader;//! pointer to getter for this module skowron
+
+  ClassDef(AliDetector,5)  //Base class for ALICE detectors
 };
 #endif