class TTree;
class TBranch;
-class AliArrayI;
+class TFile;
+class TArrayI;
class AliSegmentID;
class AliSegmentArray: public TNamed{
public:
AliSegmentArray();
- AliSegmentArray(Text_t *classname, Int_t n); //
+ AliSegmentArray(const char *classname, Int_t n); //
virtual ~AliSegmentArray();
- Bool_t SetClass(Text_t *classname); //set class of stored object
+ Bool_t SetClass(const char *classname); //set class of stored object
const AliSegmentID * At(Int_t i); //return pointer to segment with index i
const AliSegmentID * operator[](Int_t i); //return pointer to segment with index i
//input output functions
TTree * GetTree(){return fTree;} //return pointer to connected tree
- virtual void MakeTree(); //Make tree with the name
+ virtual void MakeTree(char *file=0); //Make tree with the name
+ virtual void MakeTree(TTree* tree); //Make tree with the name
+
virtual Bool_t ConnectTree(const char * treeName); //connect tree from current directory
+ virtual Bool_t ConnectTree(TTree* tree); //connect tree from current directory
+
virtual AliSegmentID * LoadSegment(Int_t index);//load segment with index to the memory
virtual AliSegmentID * LoadEntry(Int_t index); //load segment entry from position index in tree
virtual void StoreSegment(Int_t index);//write segmen persistent
AliSegmentArray(const AliSegmentArray &segment); //copy constructor
AliSegmentArray &operator = (const AliSegmentArray & segment); //assignment operator
TObjArray * fSegment; //!pointer to array of pointers to segment
- AliArrayI * fTreeIndex; //!pointers(index) table in tree
+ TArrayI * fTreeIndex; //!pointers(index) table in tree
Int_t fNSegment; //number of alocated segments
TTree * fTree; //!tree with segment objects
- TBranch * fBranch; //!total branch
+ Bool_t fTreeOwner;// flag determing the ownership of the fTree
+ TBranch * fBranch; //!total branch
private:
TClass * fClass; //!class type of included objects
- ClassDef(AliSegmentArray,1)
+ ClassDef(AliSegmentArray,3)
};