]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliDetector.h
Simplify syntax
[u/mrichter/AliRoot.git] / STEER / AliDetector.h
1 #ifndef ALIDETECTOR_H
2 #define ALIDETECTOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include "AliModule.h"
9
10 class AliHit;
11 class TTree;
12 class TBranch;
13 class AliLoader;
14
15 class AliDetector : public AliModule {
16
17 public:
18
19   // Creators - distructors
20   AliDetector(const char* name, const char *title);
21   AliDetector();
22   AliDetector(const AliDetector &det);
23   virtual ~AliDetector();
24
25   // Inline functions
26   void  Copy(AliDetector &det) const;
27   virtual int   GetNdigits() const {return fNdigits;}
28   virtual int   GetNhits()   const {return fNhits;}
29   TClonesArray *Digits() const {return fDigits;}
30   TClonesArray *Hits()   const {return fHits;}
31
32   TObjArray    *Points() const {return fPoints;}
33   Int_t         GetIshunt() const {return fIshunt;}
34   void          SetIshunt(Int_t ishunt) {fIshunt=ishunt;}
35   AliDetector &operator=(const AliDetector &det) 
36   {det.Copy(*this); return (*this);}
37   
38   // Other methods
39   virtual void        Publish(const char *dir, void *c, const char *name=0);
40   virtual void        Browse(TBrowser *b);
41   virtual void        FinishRun();
42   virtual void        LoadPoints(Int_t track);
43   virtual void        MakeBranch(Option_t *opt=" ");
44   virtual void        ResetDigits();
45   virtual void        ResetHits();
46
47   virtual void        ResetPoints();
48   virtual void        SetTreeAddress();
49   virtual void        SetTimeGate(Float_t gate) {fTimeGate=gate;}
50   virtual Float_t     GetTimeGate() const {return fTimeGate;}
51   virtual void        StepManager() {}
52   virtual void        DrawModule() {}
53   virtual AliHit*     FirstHit(Int_t track);
54   virtual AliHit*     NextHit();
55   virtual void        SetBufferSize(Int_t bufsize=8000) {fBufferSize = bufsize;}  
56   virtual TBranch*    MakeBranchInTree(TTree *tree, const char* cname, void* address, Int_t size=32000, const char *file=0);
57   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);
58   
59   void MakeTree(Option_t *option); //skowron
60   
61   virtual AliLoader* MakeLoader(const char* topfoldername); //builds standard getter (AliLoader type)
62   void    SetLoader(AliLoader* loader){fLoader = loader;}
63   AliLoader* GetLoader() const {return fLoader;} //skowron
64   TTree* TreeH();  //shorcut method for accessing treeH from folder
65     // Data members
66 protected:      
67   
68   Float_t       fTimeGate;    //Time gate in seconds
69
70   Int_t         fIshunt;      //1 if the hit is attached to the primary
71   Int_t         fNhits;       //!Number of hits
72   Int_t         fNdigits;     //!Number of digits
73   Int_t         fBufferSize;  //!buffer size for Tree detector branches
74   TClonesArray *fHits;        //!List of hits for one track only
75   TClonesArray *fDigits;      //!List of digits for this detector
76   TObjArray    *fPoints;      //!Array of points for each track (all tracks in memory)
77
78   AliLoader*  fLoader;//! pointer to getter for this module skowron
79
80   ClassDef(AliDetector,5)  //Base class for ALICE detectors
81 };
82 #endif