* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.8 2001/01/26 19:56:57 hristov
-Major upgrade of AliRoot code
-
-Revision 1.7 2000/11/20 08:56:07 cblume
-Cleanup of data arrays
-
-Revision 1.6 2000/11/01 14:53:21 cblume
-Merge with TRD-develop
-
-Revision 1.1.4.3 2000/10/06 16:49:46 cblume
-Made Getters const
-
-Revision 1.1.4.2 2000/10/04 16:34:58 cblume
-Replace include files by forward declarations
-
-Revision 1.5 2000/06/09 11:10:07 cblume
-Compiler warnings and coding conventions, next round
-
-Revision 1.4 2000/06/08 18:32:58 cblume
-Make code compliant to coding conventions
-
-Revision 1.3 2000/06/07 16:27:01 cblume
-Try to remove compiler warnings on Sun and HP
-
-Revision 1.2 2000/05/08 16:17:27 cblume
-Merge TRD-develop
-
-Revision 1.1.4.1 2000/05/08 14:55:03 cblume
-Bug fixes
-
-Revision 1.1 2000/02/28 19:02:56 cblume
-Add new TRD classes
-
-*/
+/* $Id$ */
///////////////////////////////////////////////////////////////////////////////
// //
// //
///////////////////////////////////////////////////////////////////////////////
+#include "AliTRDsegmentArrayBase.h"
#include <TROOT.h>
#include <TTree.h>
#include <TClonesArray.h>
#include "AliTRDarrayI.h"
#include "AliTRDsegmentID.h"
-#include "AliTRDsegmentArrayBase.h"
ClassImp(AliTRDsegmentArrayBase)
}
//_____________________________________________________________________________
-AliTRDsegmentArrayBase::AliTRDsegmentArrayBase(Text_t *classname, Int_t n)
+AliTRDsegmentArrayBase::AliTRDsegmentArrayBase(const char *classname, Int_t n)
{
//
// Create an array of objects of <classname>. The class must inherit from
SetClass(classname);
if (MakeArray(n) == kFALSE) {
- Error("AliTRDsegmentArrayBase","Cannot allocate %d segments in memory",n);
- return;
+ Error("AliTRDsegmentArrayBase","Cannot allocate %d segments in memory",n);
+ return;
}
}
//_____________________________________________________________________________
AliTRDsegmentArrayBase::AliTRDsegmentArrayBase(const AliTRDsegmentArrayBase &a)
+:TNamed(a)
{
//
// AliTRDsegmentArrayBase copy constructor
delete fSegment;
}
- if (fTree) delete fTree;
+ //if (fTree) delete fTree;
if (fTreeIndex) delete fTreeIndex;
- if (fClass) delete fClass;
}
}
//_____________________________________________________________________________
-void AliTRDsegmentArrayBase::Copy(TObject &a)
+void AliTRDsegmentArrayBase::Copy(TObject &a) const
{
//
// Copy function
}
//_____________________________________________________________________________
-Bool_t AliTRDsegmentArrayBase::SetClass(Text_t *classname)
+Bool_t AliTRDsegmentArrayBase::SetClass(const char *classname)
{
//
// Sets the classname of the stored object
//
- if (fClass != 0) {
- delete fClass;
- fClass = 0;
- }
if (fTree != 0) {
delete fTree;
fTree = 0;
}
//_____________________________________________________________________________
-AliTRDsegmentID * AliTRDsegmentArrayBase::NewSegment()
+AliTRDsegmentID *AliTRDsegmentArrayBase::NewSegment()
{
//
// Create a new object according to the class information
// Remove a segment from the active memory
//
- if ((*fSegment)[index]){
- delete (*fSegment)[index]; // because problem with deleting TClonesArray
- fSegment->RemoveAt(index);
+ //PH if ((*fSegment)[index]){
+ //PH delete (*fSegment)[index]; // because problem with deleting TClonesArray
+ //PH fSegment->RemoveAt(index);
+ //PH }
+ if (fSegment->At(index)){
+ delete fSegment->RemoveAt(index);
}
}
if (fTreeIndex == 0) return 0;
if (fBranch == 0) return 0;
if (index > fTreeIndex->fN) return 0;
- AliTRDsegmentID *s = (AliTRDsegmentID*) (*fSegment)[index];
+ //PH AliTRDsegmentID *s = (AliTRDsegmentID*) (*fSegment)[index];
+ AliTRDsegmentID *s = (AliTRDsegmentID*) fSegment->At(index);
if (s == 0) s = NewSegment();
s->SetID(index);
treeIndex--;
fBranch->SetAddress(&s);
fTree->GetEvent(treeIndex);
- (*fSegment)[index] = (TObject*) s;
+ //PH (*fSegment)[index] = (TObject*) s;
+ fSegment->AddAt((TObject*) s, index);
}
else
return 0;
Int_t nindex = s->GetID();
ClearSegment(nindex);
- (*fSegment)[nindex] = (TObject *) s;
+ //PH (*fSegment)[nindex] = (TObject *) s;
+ fSegment->AddAt((TObject *) s, nindex);
return s;
}
//_____________________________________________________________________________
-const AliTRDsegmentID * AliTRDsegmentArrayBase::operator[](Int_t i)
+const AliTRDsegmentID * AliTRDsegmentArrayBase::operator[](Int_t i) const
{
//
// Returns a segment with the given index <i>
//
if ((i < 0) || (i >= fNSegment)) return 0;
- return (AliTRDsegmentID *)((*fSegment)[i]);
+ //PH return (AliTRDsegmentID *)((*fSegment)[i]);
+ return (AliTRDsegmentID *) fSegment->At(i);
}