]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDCaloCluster.cxx
turned off HLTError into Debug
[u/mrichter/AliRoot.git] / STEER / AliESDCaloCluster.cxx
index 15b55e0111a6277d11953f4b60264e31cedf0f3d..4aaa0bc03c25881725e1b46579b80b0e976f8cdc 100644 (file)
@@ -31,21 +31,19 @@ ClassImp(AliESDCaloCluster)
 
 //_______________________________________________________________________
 AliESDCaloCluster::AliESDCaloCluster() : 
-  TObject(),
+  AliVCluster(),
   fTracksMatched(0x0),
   fLabels(0x0),
   fNCells(0),
   fCellsAbsId(0x0),
   fCellsAmpFraction(0x0),
-  fDigitAmplitude(0x0),//not in use
-  fDigitTime(0x0),//not in use
-  fDigitIndex(0x0),//not in use
   fEnergy(0),
   fDispersion(0),
   fChi2(0),
   fM20(0),
   fM02(0),
   fEmcCpvDistance(1024),
+  fTrackDx(1024),fTrackDz(1024),
   fDistToBadChannel(1024),
   fID(0),
   fNExMax(0),
@@ -60,21 +58,20 @@ AliESDCaloCluster::AliESDCaloCluster() :
 
 //_______________________________________________________________________
 AliESDCaloCluster::AliESDCaloCluster(const AliESDCaloCluster& clus) : 
-  TObject(clus),
+  AliVCluster(clus),
   fTracksMatched(clus.fTracksMatched?new TArrayI(*clus.fTracksMatched):0x0),
   fLabels(clus.fLabels?new TArrayI(*clus.fLabels):0x0),
   fNCells(clus.fNCells),
   fCellsAbsId(),
   fCellsAmpFraction(),
-  fDigitAmplitude(clus.fDigitAmplitude?new TArrayS(*clus.fDigitAmplitude):0x0),//not in use
-  fDigitTime(clus.fDigitTime?new TArrayS(*clus.fDigitTime):0x0),//not in use
-  fDigitIndex(clus.fDigitIndex?new TArrayS(*clus.fDigitIndex):0x0),//not in use
   fEnergy(clus.fEnergy),
   fDispersion(clus.fDispersion),
   fChi2(clus.fChi2),
   fM20(clus.fM20),
   fM02(clus.fM02),
   fEmcCpvDistance(clus.fEmcCpvDistance),
+  fTrackDx(clus.fTrackDx),
+  fTrackDz(clus.fTrackDz),
   fDistToBadChannel(clus.fDistToBadChannel),
   fID(clus.fID),
   fNExMax(clus.fNExMax),
@@ -114,19 +111,19 @@ AliESDCaloCluster &AliESDCaloCluster::operator=(const AliESDCaloCluster& source)
   // assignment operator
 
   if(&source == this) return *this;
-  TObject::operator=(source);
-
+  AliVCluster::operator=(source);
   fGlobalPos[0] = source.fGlobalPos[0];
   fGlobalPos[1] = source.fGlobalPos[1];
   fGlobalPos[2] = source.fGlobalPos[2];
 
-
   fEnergy = source.fEnergy;
   fDispersion = source.fDispersion;
   fChi2 = source.fChi2;
   fM20 = source.fM20;
   fM02 = source.fM02;
   fEmcCpvDistance = source.fEmcCpvDistance;
+  fTrackDx= source.fTrackDx ;
+  fTrackDz= source.fTrackDz ;
   fDistToBadChannel = source.fDistToBadChannel ;
   for(Int_t i=0; i<AliPID::kSPECIESN; i++) fPID[i] = source.fPID[i];
   fID = source.fID;
@@ -135,17 +132,18 @@ AliESDCaloCluster &AliESDCaloCluster::operator=(const AliESDCaloCluster& source)
 
   if (source.fNCells > 0) {
     if(source.fCellsAbsId){
-      if(fNCells != source.fNCells){
-       delete [] fCellsAbsId;
+      if(fNCells != source.fNCells||!fCellsAbsId){
+       if(fCellsAbsId)delete [] fCellsAbsId;
        fCellsAbsId = new UShort_t[source.fNCells];
       }
-      for (Int_t i=0; i<source.fNCells; i++)
+      for (Int_t i=0; i<source.fNCells; i++){
        fCellsAbsId[i]=source.fCellsAbsId[i];
+      }
     }
     
     if(source.fCellsAmpFraction){
-      if(fNCells != source.fNCells){
-       delete [] fCellsAmpFraction;
+      if(fNCells != source.fNCells||!fCellsAmpFraction){
+       if(fCellsAmpFraction) delete [] fCellsAmpFraction;
        fCellsAmpFraction = new Double32_t[source.fNCells];
       }
       for (Int_t i=0; i<source.fNCells; i++)
@@ -160,63 +158,34 @@ AliESDCaloCluster &AliESDCaloCluster::operator=(const AliESDCaloCluster& source)
   //not in use
   if(source.fTracksMatched){
     // assign or copy construct
-    if(fTracksMatched) *fTracksMatched = *source.fTracksMatched;
+    if(fTracksMatched){
+      *fTracksMatched = *source.fTracksMatched;
+    }
     else fTracksMatched = new TArrayI(*source.fTracksMatched);
   }
   else{
-    delete fTracksMatched;
+    if(fTracksMatched)delete fTracksMatched;
     fTracksMatched = 0;
   }
 
   if(source.fLabels){
     // assign or copy construct
-    if(fLabels) *fLabels = *source.fLabels;
+    if(fLabels){ 
+      *fLabels = *source.fLabels;
+    }
     else fLabels = new TArrayI(*source.fLabels);
   }
   else{
-    delete fLabels;
+    if(fLabels)delete fLabels;
     fLabels = 0;
   }
 
-
-  if(source.fDigitAmplitude){
-    // assign or copy construct
-    if(fDigitAmplitude) *fDigitAmplitude = *source.fDigitAmplitude;
-    else fDigitAmplitude = new TArrayS(*source.fDigitAmplitude);
-  }
-  else{
-    delete fDigitAmplitude;
-    fDigitAmplitude = 0;
-  }
-
-
-
-  if(source.fDigitTime){
-    // assign or copy construct
-    if(fDigitTime) *fDigitTime = *source.fDigitTime;
-    else fDigitTime = new TArrayS(*source.fDigitTime);
-  }
-  else{
-    delete fDigitTime;
-    fDigitTime = 0;
-  }
-
-
-
-  if(source.fDigitIndex){
-    // assign or copy construct
-    if(fDigitIndex) *fDigitIndex = *source.fDigitIndex;
-    else fDigitIndex = new TArrayS(*source.fDigitIndex);
-  }
-  else{
-    delete fDigitIndex;
-    fDigitIndex = 0;
-  }
   
   return *this;
 
 }
 
+//_______________________________________________________________________
 void AliESDCaloCluster::Copy(TObject &obj) const {
   
   // this overwrites the virtual TOBject::Copy()
@@ -235,17 +204,26 @@ AliESDCaloCluster::~AliESDCaloCluster(){
   //
   // This is destructor according Coding Conventions 
   //
-  delete fTracksMatched;
-  delete fLabels;
-  delete fDigitAmplitude;  //not in use
-  delete fDigitTime;  //not in use
-  delete fDigitIndex;  //not in use
-  if(fCellsAmpFraction) delete[] fCellsAmpFraction; fCellsAmpFraction=0;
-  if(fCellsAbsId) delete[] fCellsAbsId;  fCellsAbsId = 0;
+  if(fTracksMatched)delete fTracksMatched;fTracksMatched = 0;
+  if(fLabels) delete fLabels; fLabels = 0;
+  if(fCellsAmpFraction){ delete[] fCellsAmpFraction; fCellsAmpFraction=0;}
+  if(fCellsAbsId){ delete[] fCellsAbsId;  fCellsAbsId = 0;}
+}
+
+//_______________________________________________________________________
+void AliESDCaloCluster::Clear(const Option_t*){ 
+  //
+  // This is destructor according Coding Conventions 
+  //
+  if(fTracksMatched)delete fTracksMatched;fTracksMatched = 0;
+  if(fLabels) delete fLabels; fLabels = 0;
+  if(fCellsAmpFraction){ delete[] fCellsAmpFraction; fCellsAmpFraction=0;}
+  if(fCellsAbsId){ delete[] fCellsAbsId;  fCellsAbsId = 0;}
 }
 
+
 //_______________________________________________________________________
-void AliESDCaloCluster::SetPid(const Float_t *p) {
+void AliESDCaloCluster::SetPID(const Float_t *p) {
   // Sets the probability of each particle type
   // Copied from AliESDtrack SetPIDValues
   // This function copies "n" PID weights from "scr" to "dest"
@@ -283,36 +261,53 @@ void AliESDCaloCluster::GetMomentum(TLorentzVector& p, Double_t *vertex ) {
   //Vertex can be recovered with esd pointer doing:  
   //" Double_t vertex[3] ; esd->GetVertex()->GetXYZ(vertex) ; "
 
+  Double32_t pos[3]={ fGlobalPos[0], fGlobalPos[1], fGlobalPos[2]};
   if(vertex){//calculate direction from vertex
-    fGlobalPos[0]-=vertex[0];
-    fGlobalPos[1]-=vertex[1];
-    fGlobalPos[2]-=vertex[2];
+    pos[0]-=vertex[0];
+    pos[1]-=vertex[1];
+    pos[2]-=vertex[2];
   }
   
-  Double_t r = TMath::Sqrt(fGlobalPos[0]*fGlobalPos[0]+
-                           fGlobalPos[1]*fGlobalPos[1]+
-                           fGlobalPos[2]*fGlobalPos[2]   ) ; 
-
-  p.SetPxPyPzE( fEnergy*fGlobalPos[0]/r,  fEnergy*fGlobalPos[1]/r,  fEnergy*fGlobalPos[2]/r,  fEnergy) ; 
+  Double_t r = TMath::Sqrt(pos[0]*pos[0]+pos[1]*pos[1]+pos[2]*pos[2]   ) ; 
   
+  p.SetPxPyPzE( fEnergy*pos[0]/r,  fEnergy*pos[1]/r,  fEnergy*pos[2]/r,  fEnergy) ;   
 }
 
 //_______________________________________________________________________
 void  AliESDCaloCluster::SetCellsAbsId(UShort_t *array)
 {
     //  Set the array of cell absId numbers 
-    if (fNCells) {
-       fCellsAbsId = new  UShort_t[fNCells];
-       for (Int_t i = 0; i < fNCells; i++) fCellsAbsId[i] = array[i];
-    }
+  if (fNCells) {
+    fCellsAbsId = new  UShort_t[fNCells];
+    for (Int_t i = 0; i < fNCells; i++) fCellsAbsId[i] = array[i];
+  }
 }
 
 //_______________________________________________________________________
 void  AliESDCaloCluster::SetCellsAmplitudeFraction(Double32_t *array)
 {
-    //  Set the array of cell amplitude fraction
-    if (fNCells) {
-       fCellsAmpFraction = new  Double32_t[fNCells];
-       for (Int_t i = 0; i < fNCells; i++) fCellsAmpFraction[i] = array[i];
-    }
+  //  Set the array of cell amplitude fraction
+  if (fNCells) {
+    fCellsAmpFraction = new  Double32_t[fNCells];
+    for (Int_t i = 0; i < fNCells; i++) fCellsAmpFraction[i] = array[i];
+  }
 }
+
+//______________________________________________________________________________
+void AliESDCaloCluster::SetPosition(Float_t *x) 
+{
+  // set the position
+  
+  if (x) {
+    fGlobalPos[0] = x[0];
+    fGlobalPos[1] = x[1];
+    fGlobalPos[2] = x[2];
+  } else {
+    
+    fGlobalPos[0] = -999.;
+    fGlobalPos[1] = -999.;
+    fGlobalPos[2] = -999.;
+  }
+}
+
+