]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAODCluster.cxx
pointer to AliVZERODataDCS object deleted in destructor
[u/mrichter/AliRoot.git] / STEER / AliAODCluster.cxx
index 68ca43b7cb139e5fa13f8064de208280f8a1a518..0ff73c3f3e1ef960909a744dfbda1d0f783d2230 100644 (file)
@@ -26,15 +26,15 @@ ClassImp(AliAODCluster)
 
 //______________________________________________________________________________
 AliAODCluster::AliAODCluster() : 
-  AliVirtualParticle(),
+  AliVParticle(),
   fEnergy(0),
   fChi2(-999.),
   fID(-999),
   fLabel(-999),
+  fType(kUndef),
   fCovMatrix(NULL),
   fProdVertex(0x0),
-  fPrimTrack(NULL),
-  fType(kUndef)
+  fPrimTrack(NULL)
 {
   // default constructor
 
@@ -48,19 +48,19 @@ AliAODCluster::AliAODCluster(Int_t id,
                             Double_t energy,
                             Double_t x[3],
                             Double_t covMatrix[10],
-                            Double_t pid[10],
+                            Double_t pid[9],
                             AliAODVertex *prodVertex,
                             AliAODTrack *primTrack,
                             Char_t ttype) :
-  AliVirtualParticle(),
+  AliVParticle(),
   fEnergy(energy),
   fChi2(-999.),
   fID(id),
   fLabel(label),
+  fType(ttype),
   fCovMatrix(NULL),
   fProdVertex(prodVertex),
-  fPrimTrack(primTrack),
-  fType(ttype)
+  fPrimTrack(primTrack)
 {
   // constructor
  
@@ -76,19 +76,19 @@ AliAODCluster::AliAODCluster(Int_t id,
                             Float_t energy,
                             Float_t x[3],
                             Float_t covMatrix[10],
-                            Float_t pid[10],
+                            Float_t pid[9],
                             AliAODVertex *prodVertex,
                             AliAODTrack *primTrack,
                             Char_t ttype) :
-  AliVirtualParticle(),
+  AliVParticle(),
   fEnergy(energy),
   fChi2(-999.),
   fID(id),
   fLabel(label),
+  fType(ttype),
   fCovMatrix(NULL),
   fProdVertex(prodVertex),
-  fPrimTrack(primTrack),
-  fType(ttype)
+  fPrimTrack(primTrack)
 {
   // constructor
  
@@ -108,49 +108,50 @@ AliAODCluster::~AliAODCluster()
 
 
 //______________________________________________________________________________
-AliAODCluster::AliAODCluster(const AliAODCluster& trk) :
-  AliVirtualParticle(trk),
-  fEnergy(trk.fEnergy),
-  fChi2(trk.fChi2),
-  fID(trk.fID),
-  fLabel(trk.fLabel),
+AliAODCluster::AliAODCluster(const AliAODCluster& clus) :
+  AliVParticle(clus),
+  fEnergy(clus.fEnergy),
+  fChi2(clus.fChi2),
+  fID(clus.fID),
+  fLabel(clus.fLabel),
+  fType(clus.fType),
   fCovMatrix(NULL),
-  fProdVertex(trk.fProdVertex),
-  fPrimTrack(trk.fPrimTrack),
-  fType(trk.fType)
+  fProdVertex(clus.fProdVertex),
+  fPrimTrack(clus.fPrimTrack)
 {
   // Copy constructor
 
-  trk.GetPosition(fPosition);
-  if(trk.fCovMatrix) fCovMatrix=new AliAODRedCov<4>(*trk.fCovMatrix);
-  SetPID(trk.fPID);
+  clus.GetPosition(fPosition);
+  if(clus.fCovMatrix) fCovMatrix=new AliAODRedCov<4>(*clus.fCovMatrix);
+  SetPID(clus.fPID);
 
 }
 
 //______________________________________________________________________________
-AliAODCluster& AliAODCluster::operator=(const AliAODCluster& trk)
+AliAODCluster& AliAODCluster::operator=(const AliAODCluster& clus)
 {
   // Assignment operator
-  if(this!=&trk) {
+  if(this!=&clus) {
 
-    AliVirtualParticle::operator=(trk);
+    AliVParticle::operator=(clus);
 
-    trk.GetPosition(fPosition);
-    trk.GetPID(fPID);
+    clus.GetPosition(fPosition);
+    clus.GetPID(fPID);
 
-    fChi2 = trk.fEnergy;
-    fChi2 = trk.fChi2;
+    fEnergy = clus.fEnergy;
+    fChi2 = clus.fChi2;
 
-    fID = trk.fID;
-    fLabel = trk.fLabel;    
+    fID = clus.fID;
+    fLabel = clus.fLabel;    
+
+    fType = clus.fType;
     
     delete fCovMatrix;
-    if(trk.fCovMatrix) fCovMatrix=new AliAODRedCov<4>(*trk.fCovMatrix);
+    if(clus.fCovMatrix) fCovMatrix=new AliAODRedCov<4>(*clus.fCovMatrix);
     else fCovMatrix=NULL;
-    fProdVertex = trk.fProdVertex;
-    fPrimTrack = trk.fPrimTrack;
 
-    fType = trk.fType;
+    fProdVertex = clus.fProdVertex;
+    fPrimTrack = clus.fPrimTrack;
   }
 
   return *this;
@@ -173,6 +174,35 @@ template <class T> void AliAODCluster::SetPosition(const T *x)
   }
 }
 
+//______________________________________________________________________________
+AliAODCluster::AODCluPID_t AliAODCluster::GetMostProbablePID() const 
+{
+  // Returns the most probable PID array element.
+  
+  Int_t nPID = 9;
+  if (fPID) {
+    AODCluPID_t loc = kUnknown;
+    Double_t max = 0.;
+    Bool_t allTheSame = kTRUE;
+    
+    for (Int_t iPID = 0; iPID < nPID; iPID++) {
+      if (fPID[iPID] >= max) {
+       if (fPID[iPID] > max) {
+         allTheSame = kFALSE;
+         max = fPID[iPID];
+         loc = (AODCluPID_t)iPID;
+       } else {
+         allTheSame = kTRUE;
+       }
+      }
+    }
+    
+    return allTheSame ? kUnknown : loc;
+  } else {
+    return kUnknown;
+  }
+}
+
 //______________________________________________________________________________
 void AliAODCluster::Print(Option_t* /* option */) const
 {