Merge with TRD-develop
[u/mrichter/AliRoot.git] / TRD / AliTRDsegmentArrayBase.h
1 #ifndef ALITRDSEGMENTARRAYBASE_H
2 #define ALITRDSEGMENTARRAYBASE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliTRDsegmentArrayBase.h,v */
7
8 ////////////////////////////////////////////////
9 //  Manager class for a general Alice segment // 
10 ////////////////////////////////////////////////
11
12 #include <TNamed.h>
13
14 class TTree;
15 class TBranch;
16 class AliTRDarrayI;
17 class AliTRDsegmentID;
18 class TObjArray;
19  
20 class AliTRDsegmentArrayBase: public TNamed {
21
22  public:
23
24   AliTRDsegmentArrayBase();
25   AliTRDsegmentArrayBase(Text_t *classname, Int_t n); 
26   AliTRDsegmentArrayBase(const AliTRDsegmentArrayBase &a);
27   virtual ~AliTRDsegmentArrayBase();
28   AliTRDsegmentArrayBase &operator=(const AliTRDsegmentArrayBase &a);
29  
30   const AliTRDsegmentID *At(Int_t i) const; 
31   const AliTRDsegmentID *operator[](Int_t i); 
32
33           Bool_t           AddSegment(AliTRDsegmentID *segment);
34           AliTRDsegmentID *AddSegment(Int_t index);  
35           void             ClearSegment(Int_t index); 
36   virtual void             Copy(TObject &a);
37   virtual Bool_t           ConnectTree(const char *treeName);
38           Bool_t           MakeArray(Int_t n);    
39   virtual AliTRDsegmentID *NewSegment(); 
40   virtual void             MakeTree();           
41   virtual AliTRDsegmentID *LoadSegment(Int_t index);
42   virtual AliTRDsegmentID *LoadEntry(Int_t index); 
43   virtual void             StoreSegment(Int_t index);
44           Bool_t           MakeDictionary(Int_t size);
45
46           Bool_t           SetClass(Text_t *classname);
47  
48           TClass          *GetClass() const { return fClass; };
49           TTree           *GetTree() const  { return fTree;  };   
50
51  protected:
52
53   TObjArray    *fSegment;            //! Pointer to an array of pointers to a segment
54   AliTRDarrayI *fTreeIndex;          //! Pointers(index) table
55   Int_t         fNSegment;           //  Number of segments 
56   TTree        *fTree;               //! Tree with segment objects
57   TBranch      *fBranch;             //! Branchaddress
58   TClass       *fClass;              //! Class type of included objects 
59
60   ClassDef(AliTRDsegmentArrayBase,1) // TRD detextor segment array base class
61
62 };
63
64 #endif