Update of SSD simulation and reconstruction code by Boris and Enrico.
[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 class AliHit;
10 class TTree;
11
12 class AliDetector : public AliModule {
13
14 public:
15
16   // Creators - distructors
17   AliDetector(const char* name, const char *title);
18   AliDetector();
19   AliDetector(const AliDetector &det) {det.Copy(*this);}
20   virtual ~AliDetector();
21
22   // Inline functions
23           void  Copy(AliDetector &det) const;
24   virtual int   GetNdigits() const {return fNdigits;}
25   virtual int   GetNhits()   const {return fNhits;}
26   TClonesArray *Digits() const {return fDigits;}
27   TClonesArray *Hits()   const {return fHits;}
28   TObjArray    *Points() const {return fPoints;}
29   Int_t         GetIshunt() const {return fIshunt;}
30   void          SetIshunt(Int_t ishunt) {fIshunt=ishunt;}
31   AliDetector &operator=(const AliDetector &det) 
32   {det.Copy(*this); return (*this);}
33   
34   // Other methods
35   virtual void        Browse(TBrowser *b);
36   virtual void        FinishRun();
37   virtual void        LoadPoints(Int_t track);
38   virtual void        MakeBranch(Option_t *opt=" ", char *file=0 );
39   virtual void        ResetDigits();
40   virtual void        ResetHits();
41   virtual void        ResetPoints();
42   virtual void        SetTreeAddress();
43   virtual void        SetTimeGate(Float_t gate) {fTimeGate=gate;}
44   virtual Float_t     GetTimeGate() const {return fTimeGate;}
45   virtual void        StepManager() {}
46   virtual void        DrawModule() {}
47   virtual AliHit*     FirstHit(Int_t track);
48   virtual AliHit*     NextHit();
49   virtual void        SetBufferSize(Int_t bufsize=8000) {fBufferSize = bufsize;}  
50  
51   // Data members
52 protected:      
53   
54   Float_t       fTimeGate;    //Time gate in seconds
55
56   Int_t         fIshunt;      //1 if the hit is attached to the primary
57   Int_t         fNhits;       //!Number of hits
58   Int_t         fNdigits;     //!Number of digits
59   Int_t         fBufferSize;  //!buffer size for Tree detector branches
60   TClonesArray *fHits;        //List of hits for one track only
61   TClonesArray *fDigits;      //List of digits for this detector
62   char         *fDigitsFile;  //!File to store branches of digits tree for detector 
63   TObjArray    *fPoints;      //!Array of points for each track (all tracks in memory)
64
65   ClassDef(AliDetector,1)  //Base class for ALICE detectors
66 };
67 #endif