X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=CONTAINERS%2FAliSegmentArray.cxx;h=107099cb174fa656e70f946f49927ef84c377316;hp=6c51fec485fdc2c659618ccfd0e5cd84190c181b;hb=4032124615d629fc34803a993e18a99e1aea6d93;hpb=a46e9031e02f10b859b42c7f8701b910961e91e3 diff --git a/CONTAINERS/AliSegmentArray.cxx b/CONTAINERS/AliSegmentArray.cxx index 6c51fec485f..107099cb174 100644 --- a/CONTAINERS/AliSegmentArray.cxx +++ b/CONTAINERS/AliSegmentArray.cxx @@ -15,6 +15,12 @@ /* $Log$ +Revision 1.2 2001/01/26 20:29:00 hristov +Major upgrade of AliRoot code + +Revision 1.1 2000/11/01 15:57:13 kowal2 +Moved from the TPC directory + Revision 1.3 2000/06/30 12:07:49 kowal2 Updated from the TPC-PreRelease branch @@ -35,6 +41,7 @@ New data structure handling // Alice segment manager object // // // /////////////////////////////////////////////////////////////////////////////// +#include #include #include @@ -44,6 +51,7 @@ New data structure handling #include "TError.h" #include "TClass.h" +#include "AliRun.h" #include "AliSegmentID.h" #include "AliSegmentArray.h" #include "TObjString.h" @@ -111,7 +119,7 @@ AliSegmentArray::~AliSegmentArray() } if (fTree) delete fTree; if (fTreeIndex) delete fTreeIndex; - if (fClass!=0) delete fClass; + // if (fClass!=0) delete fClass; } @@ -120,7 +128,7 @@ Bool_t AliSegmentArray::SetClass(Text_t *classname) // //set class of stored object if ( fClass !=0 ) { - delete fClass; + //delete fClass; not ower of fClass fClass = 0; } if (fTree !=0) { @@ -225,13 +233,24 @@ Bool_t AliSegmentArray::MakeArray(Int_t n) } -void AliSegmentArray::MakeTree() +void AliSegmentArray::MakeTree(char *file) { // AliSegmentID segment; AliSegmentID * psegment = NewSegment(); if (fTree) delete fTree; fTree = new TTree("Segment Tree","Tree with segments"); fBranch = fTree->Branch("Segment",psegment->IsA()->GetName(),&psegment,64000,1); + if (file) { + TDirectory *wd = gDirectory; + fBranch->SetFile(file); + TBranch *b = fBranch; + TIter next( b->GetListOfBranches()); + while ((b=(TBranch*)next())) { + b->SetFile(file); + } + cout << "Diverting branch " << "Segment" << " to file " << file << endl; + wd->cd(); + } delete psegment; } @@ -245,18 +264,18 @@ Bool_t AliSegmentArray::MakeDictionary(Int_t size) fTreeIndex = new AliArrayI(); fTreeIndex->Set(size); - AliSegmentID segment; - AliSegmentID * psegment = &segment; + AliSegmentID * psegment = NewSegment(); //MI change fBranch->SetAddress(&psegment); TBranch * brindix = fTree->GetBranch("fSegmentID"); Int_t nevent = (Int_t)fTree->GetEntries(); for (Int_t i = 0; iGetEvent(i); - Int_t treeIndex=segment.GetID(); + Int_t treeIndex=psegment->GetID(); if (fTreeIndex->fNExpand(Int_t(Float_t(treeIndex)*1.5)+1); // Int_t index = segment.GetID(); (*fTreeIndex)[treeIndex]=i+1; // } + if (psegment) delete psegment; return kTRUE; }