]>
Commit | Line | Data |
---|---|---|
a46e9031 | 1 | #ifndef ALISEGMENTARRAY_H |
2 | #define ALISEGMENTARRAY_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 | //////////////////////////////////////////////// | |
9 | // Manager class general Alice segment | |
10 | // segment is for example one pad row in TPC // | |
11 | //////////////////////////////////////////////// | |
12 | ||
13 | #include "TNamed.h" | |
14 | #include "TError.h" | |
15 | #include "TObjArray.h" | |
16 | ||
17 | class TTree; | |
18 | class TBranch; | |
67ae3681 | 19 | class TFile; |
e756ece8 | 20 | class TArrayI; |
a46e9031 | 21 | class AliSegmentID; |
22 | ||
23 | class AliSegmentArray: public TNamed{ | |
24 | public: | |
25 | AliSegmentArray(); | |
8e8eae84 | 26 | AliSegmentArray(const char *classname, Int_t n); // |
a46e9031 | 27 | virtual ~AliSegmentArray(); |
8e8eae84 | 28 | Bool_t SetClass(const char *classname); //set class of stored object |
a46e9031 | 29 | const AliSegmentID * At(Int_t i); //return pointer to segment with index i |
30 | const AliSegmentID * operator[](Int_t i); //return pointer to segment with index i | |
31 | ||
32 | Bool_t AddSegment(AliSegmentID *segment); // add segment to array | |
33 | AliSegmentID * AddSegment(Int_t index); //create objet and set index | |
34 | Bool_t MakeArray(Int_t n); //make array of pointers to Segments | |
35 | void ClearSegment(Int_t index); //remove segment from active | |
36 | virtual AliSegmentID * NewSegment(); //dynamicaly create new segment | |
37 | //input output functions | |
38 | TTree * GetTree(){return fTree;} //return pointer to connected tree | |
39 | ||
88cb7938 | 40 | virtual void MakeTree(char *file=0); //Make tree with the name |
41 | virtual void MakeTree(TTree* tree); //Make tree with the name | |
42 | ||
a46e9031 | 43 | virtual Bool_t ConnectTree(const char * treeName); //connect tree from current directory |
88cb7938 | 44 | virtual Bool_t ConnectTree(TTree* tree); //connect tree from current directory |
45 | ||
a46e9031 | 46 | virtual AliSegmentID * LoadSegment(Int_t index);//load segment with index to the memory |
47 | virtual AliSegmentID * LoadEntry(Int_t index); //load segment entry from position index in tree | |
48 | virtual void StoreSegment(Int_t index);//write segmen persistent | |
49 | Bool_t MakeDictionary(Int_t size);//create index table for tree | |
50 | TClass * GetClass() {return fClass;} | |
51 | ||
52 | protected: | |
53 | AliSegmentArray(const AliSegmentArray &segment); //copy constructor | |
54 | AliSegmentArray &operator = (const AliSegmentArray & segment); //assignment operator | |
55 | TObjArray * fSegment; //!pointer to array of pointers to segment | |
e756ece8 | 56 | TArrayI * fTreeIndex; //!pointers(index) table in tree |
a46e9031 | 57 | Int_t fNSegment; //number of alocated segments |
58 | TTree * fTree; //!tree with segment objects | |
88cb7938 | 59 | Bool_t fTreeOwner;// flag determing the ownership of the fTree |
60 | TBranch * fBranch; //!total branch | |
a46e9031 | 61 | private: |
62 | TClass * fClass; //!class type of included objects | |
e756ece8 | 63 | ClassDef(AliSegmentArray,3) |
a46e9031 | 64 | }; |
65 | ||
66 | ||
67 | ||
68 | inline const AliSegmentID* AliSegmentArray::operator[](Int_t i) | |
69 | { | |
70 | // | |
71 | //return segment with given index | |
72 | // | |
73 | if ( (i<0) || (i>=fNSegment)) return 0; | |
74 | return (AliSegmentID *)(fSegment->At(i)); | |
75 | ||
76 | } | |
77 | ||
78 | inline const AliSegmentID* AliSegmentArray::At(Int_t i) | |
79 | { | |
80 | // | |
81 | //return segment with given index | |
82 | // | |
83 | if ( (i<0) || (i>=fNSegment)) return 0; | |
84 | return (AliSegmentID *)(fSegment->At(i)); | |
85 | } | |
86 | ||
87 | #endif //ALISEGMENTARRAY_H |