]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliSegmentArray.cxx
Take fMCEvent from AlAODInputHandler if used.
[u/mrichter/AliRoot.git] / TPC / AliSegmentArray.cxx
index bf1db264695f59c853d0ffcfba72f0c2b74d9243..5b7166dad9728aa4e40f056224e76fdf9db481de 100644 (file)
 #include "AliSegmentArray.h"
 #include "TObjString.h"
 
-
+using std::endl;
+using std::cout;
 //_____________________________________________________________________________
 ClassImp(AliSegmentArray)
   
-AliSegmentArray::AliSegmentArray()
+  AliSegmentArray::AliSegmentArray()
+                  :TNamed(),
+                   fSegment(0),
+                   fTreeIndex(0),
+                   fNSegment(0),
+                   fTree(0),
+                   fTreeOwner(kFALSE),
+                   fBranch(0),
+                   fClass(0)                                      
 {
   //
+  // constructor
   //
-  //
-  fNSegment=0;
-  fSegment =0; 
-  fTreeIndex = 0;
-  fTree  = 0;
-  fClass = 0;
-  fBranch = 0;
-  fTreeOwner = kFALSE;
+
 }
 
 AliSegmentArray::AliSegmentArray(const char *classname, Int_t n)
+                :TNamed("SegmentArray","SegmentArray"),
+                 fSegment(0),
+                 fTreeIndex(0),
+                 fNSegment(0),
+                 fTree(0),
+                 fTreeOwner(kFALSE),
+                 fBranch(0),
+                 fClass(0) 
 {
   //
   //constructor which 
@@ -63,14 +74,7 @@ AliSegmentArray::AliSegmentArray(const char *classname, Int_t n)
   //  Create an array of objects of classname. The class must inherit from
   //  AliSegmentID .  The second argument adjust number of entries in 
   //  the array.
-  fTreeOwner = kFALSE;
-  fNSegment=0;
-  fSegment =0; 
-  fTreeIndex = 0;
-  fTree  = 0;
-  fClass = 0;
-  SetName("SegmentArray");
-  SetTitle("SegmentArray");
 
   SetClass(classname);
   if (MakeArray(n)==kFALSE){
@@ -79,8 +83,16 @@ AliSegmentArray::AliSegmentArray(const char *classname, Int_t n)
    }
 }
 
-AliSegmentArray::AliSegmentArray(const AliSegmentArray &segment):
-  TNamed(segment)
+AliSegmentArray::AliSegmentArray(const AliSegmentArray &segment)
+                :TNamed(segment),
+                 fSegment(0),
+                 fTreeIndex(0),
+                 fNSegment(0),
+                 fTree(0),
+                 fTreeOwner(kFALSE),
+                 fBranch(0),
+                 fClass(0)                                      
+               
 {
   //
   //copy constructor
@@ -102,9 +114,9 @@ AliSegmentArray::~AliSegmentArray()
     fSegment->Delete();
     delete fSegment;
   }
-  if (fTree) 
+  if (fTree) 
    if (fTreeOwner) delete fTree;
-   else fTree->Reset();
+   else fTree->Reset();}
 
   if (fTreeIndex) delete fTreeIndex;
   //  if (fClass!=0) delete fClass;
@@ -238,13 +250,18 @@ void AliSegmentArray::MakeTree(char *file)
 {
   //  AliSegmentID  segment;
   AliSegmentID * psegment = NewSegment();  
-  if (fTree) 
+  if (fTree) {
     if (fTreeOwner) 
      {
        delete fTree;
        fTree = new TTree("Segment Tree","Tree with segments");     
      }
     else fTree->Reset();
+  }
+  else {
+    cout << "Tree with segments does not exist"<<endl;
+    return;
+  }
 
   
   //PH  fBranch = fTree->Branch("Segment",psegment->IsA()->GetName(),&psegment,64000);
@@ -340,10 +357,11 @@ AliSegmentID *AliSegmentArray::LoadSegment(Int_t index)
   //PH  AliSegmentID *s = (AliSegmentID*)(*fSegment)[index];
   AliSegmentID *s = (AliSegmentID*)fSegment->At(index);
   if (s==0)  s=  NewSegment();
-  s->SetID(index);
-  //  new AliSegmentID(index);
+
   
   if (s!=0) {
+    s->SetID(index);
+    //  new AliSegmentID(index);
     Int_t treeIndex =(*fTreeIndex)[index];
     if (treeIndex<1) return 0;
     else treeIndex--;   //I don't like it Int table I have index shifted by 1