Just something left from v2...now clean
[u/mrichter/AliRoot.git] / TPC / AliSegmentArray.h
CommitLineData
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
17class TTree;
18class TBranch;
67ae3681 19class TFile;
e756ece8 20class TArrayI;
a46e9031 21class AliSegmentID;
22
23class AliSegmentArray: public TNamed{
24public:
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
52protected:
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 61private:
62 TClass * fClass; //!class type of included objects
e756ece8 63 ClassDef(AliSegmentArray,3)
a46e9031 64};
65
66
67
68inline 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
78inline 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