]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAOD.cxx
Warnings fixed.
[u/mrichter/AliRoot.git] / ANALYSIS / AliAOD.cxx
index 53925ebe6af8319fd0f6ccef923b367b080c2a4b..18a6a631d52986aeb79499efb40df34f38fb8776 100644 (file)
@@ -1,4 +1,3 @@
-#include "AliAOD.h"
 /**************************************************************************
  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  *                                                                        *
@@ -26,6 +25,8 @@
 #include <TParticle.h>
 #include <TClass.h>
 #include <TString.h>
+
+#include "AliAOD.h"
 #include "AliAODParticle.h"
 #include "AliTrackPoints.h"
 
@@ -74,7 +75,6 @@ AliAOD& AliAOD::operator=(const AliAOD& in)
   fParticleClass = in.fParticleClass ; //althought it is pointer, this points to object in class list of gROOT
   return *this;
 }
-
 /**************************************************************************/
 
 AliAOD::~AliAOD()
@@ -132,11 +132,18 @@ void AliAOD::CopyData(AliAOD* aod)
                 TObject& obj = *(fParticles->At(i));
                 obj = inobj;
               }
-
+             
+             TClass* partclass = GetParticleClass();
+             if (partclass == 0x0)
+              {
+                Fatal("CopyData","Can not get particle class");
+                return;//pro forma
+              }
+              
              for (Int_t i = curentr; i < inentr; i++)
               {
                 TObject& inobj = *(in.fParticles->At(i));
-                TObject& obj =  *((TObject*)(fParticleClass->New(arr[i])));
+                TObject& obj =  *((TObject*)(partclass->New(arr[i])));
                 obj = inobj;
               }
            }
@@ -201,6 +208,17 @@ void AliAOD::SetParticleClass(TClass* pclass)
      fParticles = new TClonesArray(fParticleClass);
    }
 }
+/**************************************************************************/
+TClass* AliAOD::GetParticleClass()
+{
+//returns TClass of particle class
+  if (fParticleClass) return fParticleClass;
+  
+  if (fParticles == 0x0) return 0x0;
+  
+  fParticleClass = fParticles->GetClass();
+  return fParticleClass;
+}
 
 /**************************************************************************/
 
@@ -227,8 +245,15 @@ void  AliAOD::AddParticle(AliVAODParticle* particle)
 
   Int_t idx = fParticles->GetLast() + 1;
   TClonesArray& arr = *fParticles;
+
+  TClass* partclass = GetParticleClass();
+  if (partclass == 0x0)
+   {
+     Error("AddParticle(AliVAODParticle*)","Can not get particle class");
+     return;
+   }
   
-  AliVAODParticle* pp = (AliVAODParticle*)fParticleClass->New(arr[idx]);
+  AliVAODParticle* pp = (AliVAODParticle*)partclass->New(arr[idx]);
   pp->operator=(*particle);
   
 }
@@ -244,8 +269,15 @@ void  AliAOD::AddParticle(Int_t pdg, Int_t idx,
 
   Int_t newpartidx = fParticles->GetLast() + 1;
   TClonesArray& arr = *fParticles;
-  
-  AliVAODParticle* p =  (AliVAODParticle*)fParticleClass->New(arr[newpartidx]);
+
+  TClass* partclass = GetParticleClass();
+  if (partclass == 0x0)
+   {
+     Error("AddParticle(Int_t,...)","Can not get particle class");
+     return;
+   }
+
+  AliVAODParticle* p =  (AliVAODParticle*)partclass->New(arr[newpartidx]);
   
   p->SetPdgCode(pdg);
   p->SetUID(idx);
@@ -261,7 +293,15 @@ void AliAOD::SwapParticles(Int_t i, Int_t j)
   if ( (i<0) || (i>=GetNumberOfParticles()) ) return;
   if ( (j<0) || (j>=GetNumberOfParticles()) ) return;
   
-  AliVAODParticle* tmpobj = (AliVAODParticle*)fParticleClass->New();
+
+  TClass* partclass = GetParticleClass();
+  if (partclass == 0x0)
+   {
+     Error("SwapParticles","Can not get particle class");
+     return;
+   }
+    
+  AliVAODParticle* tmpobj = (AliVAODParticle*)partclass->New();
   AliVAODParticle& tmp = *tmpobj;
   AliVAODParticle& first = *(GetParticle(i));
   AliVAODParticle& second = *(GetParticle(j));
@@ -337,8 +377,9 @@ void AliAOD::Move(Double_t x, Double_t y, Double_t z)
      if (tp) tp->Move(x,y,z);
    }
 }
+/**************************************************************************/
 
-void AliAOD::Print(Option_t* /*option*/)
+void AliAOD::Print(const Option_t* /*option*/) const
 {
   //Prints AOD
   TString ts;