]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSDATreeCluster.cxx
Fix in the SetLabelArray of CF for Lc->V0+bachelor (Annalisa)
[u/mrichter/AliRoot.git] / PHOS / AliPHOSDATreeCluster.cxx
index ad72d9b59397eccb636aa279b7d0d4f7fef860fc..4acf8b27f3abe9c7742f1129b71294e3840df730 100644 (file)
@@ -1,3 +1,19 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+/* $Id$ */
+
 // --
 // --
 // Implementation for TTree output in PHOS DA
@@ -32,27 +48,30 @@ fEnergy(cluster.fEnergy),fRow(cluster.fRow),fCol(cluster.fCol),fNDigits(cluster.
 AliPHOSDATreeCluster& AliPHOSDATreeCluster::operator=(const AliPHOSDATreeCluster& cluster){
   // Copy Operator
 
-  if( fNDigits> 0 ) delete[] fDigits;
-  fEnergy = cluster.fEnergy;
-  fNDigits = cluster.fNDigits;
-  fRow = cluster.fRow;
-  fCol = cluster.fCol;
-  //fX = cluster.fX;
-  //fY = cluster.fY;
-  //fZ = cluster.fZ;
-  if( fNDigits > 0 ){
-    fDigits = new AliPHOSDATreeDigit[fNDigits];
-    int ndigits = fNDigits;
-    while( ndigits-- ){
-      fDigits[ndigits] = cluster.fDigits[ndigits];
+  if (this != &cluster) {
+    if( fNDigits> 0 ) delete[] fDigits;
+    fEnergy = cluster.fEnergy;
+    fNDigits = cluster.fNDigits;
+    fRow = cluster.fRow;
+    fCol = cluster.fCol;
+    //fX = cluster.fX;
+    //fY = cluster.fY;
+    //fZ = cluster.fZ;
+    if( fNDigits > 0 ){
+      fDigits = new AliPHOSDATreeDigit[fNDigits];
+      int ndigits = fNDigits;
+      while( ndigits-- ){
+       fDigits[ndigits] = cluster.fDigits[ndigits];
+      }
+    } else {
+      fDigits = 0;
     }
-  } else {
-    fDigits = 0;
   }
   return *this;
 }
 //------------------------------------------------------------------------
-void AliPHOSDATreeCluster::Print(char* opt){
+void AliPHOSDATreeCluster::Print(Option_t *opt) const
+{
   // Print out
   std::cout<<" AliPHOSDATreeCluster:: Energy="<<fEnergy<<" NDigits="<<fNDigits
           <<" (row,col)=("<<fRow<<","<<fCol<<")"<<std::endl;
@@ -146,6 +165,7 @@ bool AliPHOSDATreeCluster::Append(AliPHOSDATreeCluster& cluster){
       newfDigits[ndigitsall]= cluster.fDigits[--ndigits2];
     } else {
       std::cout<<" AliPHOSDATreeCluster::Append() Something wrong.. "<<std::endl;
+      delete [] newfDigits;
       return false;
     }
   }