]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFClusterFinder.cxx
bugfix: corrected calculation of slice and partition from track point Id
[u/mrichter/AliRoot.git] / TOF / AliTOFClusterFinder.cxx
index c3dae59a9018249a9064f6615e284bb615e34a15..8de8eb7d93b9271eaab96cf4a7fe51ec38db359e 100644 (file)
@@ -156,6 +156,8 @@ AliTOFClusterFinder::AliTOFClusterFinder(AliTOFcalib *calib):
 // Constructor
 //
 
+  for (Int_t ii=0; ii<kTofMaxCluster; ii++) fTofClusters[ii]=0x0;
+
   TString validity = (TString)fTOFcalib->GetOfflineValidity();
   if (validity.CompareTo("valid")==0) {
     AliInfo(Form(" validity = %s - Using offline calibration parameters",validity.Data()));
@@ -185,6 +187,8 @@ AliTOFClusterFinder::AliTOFClusterFinder(AliRunLoader* runLoader, AliTOFcalib *c
 // Constructor
 //
 
+  for (Int_t ii=0; ii<kTofMaxCluster; ii++) fTofClusters[ii]=0x0;
+
   TString validity = (TString)fTOFcalib->GetOfflineValidity();
   if (validity.CompareTo("valid")==0) {
     AliInfo(Form(" validity = %s - Using offline calibration parameters",validity.Data()));
@@ -210,6 +214,9 @@ AliTOFClusterFinder::AliTOFClusterFinder(const AliTOFClusterFinder &source) :
   fTOFRawStream(source.fTOFRawStream)
 {
   // copy constructor
+
+  for (Int_t ii=0; ii<kTofMaxCluster; ii++) fTofClusters[ii]=source.fTofClusters[ii];
+
 }
 
 //------------------------------------------------------------------------
@@ -227,6 +234,8 @@ AliTOFClusterFinder& AliTOFClusterFinder::operator=(const AliTOFClusterFinder &s
   fDecoderVersion=source.fDecoderVersion;
   fTOFcalib=source.fTOFcalib;
   fTOFRawStream=source.fTOFRawStream;
+  for (Int_t ii=0; ii<kTofMaxCluster; ii++) fTofClusters[ii]=source.fTofClusters[ii];
+
   return *this;
 
 }
@@ -252,9 +261,12 @@ AliTOFClusterFinder::~AliTOFClusterFinder()
       fRecPoints=0;
     }
 
-  if (fTofClusters || fNumberOfTofClusters) {
-    for (Int_t ii=0; ii<fNumberOfTofClusters; ii++)
+  //if (fTofClusters || fNumberOfTofClusters) {
+  if (fNumberOfTofClusters) {
+    for (Int_t ii=0; ii<kTofMaxCluster; ii++) {
       if (fTofClusters[ii]) fTofClusters[ii]->Delete();
+      delete fTofClusters[ii];
+    }
     fNumberOfTofClusters=0;
    }
 
@@ -275,10 +287,10 @@ void AliTOFClusterFinder::Digits2RecPoints(Int_t iEvent)
   fRunLoader->GetEvent(iEvent);
 
   fTreeD = fTOFLoader->TreeD();
-  if (fTreeD == 0x0)
-    {
-      AliFatal("AliTOFClusterFinder: Can not get TreeD");
-    }
+  if (fTreeD == 0x0) {
+    AliFatal("AliTOFClusterFinder: Can not get TreeD");
+    return;
+  }
 
   fDigits->Clear();
   fTreeD->GetBranch("TOF")->SetAutoDelete(kFALSE);
@@ -371,10 +383,10 @@ void AliTOFClusterFinder::Digits2RecPoints(TTree* digitsTree, TTree* clusterTree
 
   Int_t inholes = 0;
 
-  if (digitsTree == 0x0)
-    {
-      AliFatal("AliTOFClusterFinder: Can not get TreeD");
-    }
+  if (digitsTree == 0x0) {
+    AliFatal("AliTOFClusterFinder: Can not get TreeD");
+    return;
+  }
 
   fDigits->Clear();
   digitsTree->GetBranch("TOF")->SetAutoDelete(kFALSE);
@@ -571,7 +583,7 @@ void AliTOFClusterFinder::Digits2RecPoints(AliRawReader *rawReader,
        if (parTOF[0]<10) ftxt << "      " << parTOF[0] << endl;
        else if (parTOF[0]>=10 && parTOF[0]<100)   ftxt << "    " << parTOF[0] << endl;
        else if (parTOF[0]>=100 && parTOF[0]<1000) ftxt << "    " << parTOF[0] << endl;
-       else ftxt << "   " << parTOF[3] << endl;
+       else ftxt << "   " << parTOF[0] << endl;
       }
 
     } // closed loop on TOF raw data per current DDL file
@@ -732,7 +744,7 @@ void AliTOFClusterFinder::Digits2RecPoints(Int_t iEvent, AliRawReader *rawReader
        if (parTOF[0]<10) ftxt << "      " << parTOF[0] << endl;
        else if (parTOF[0]>=10 && parTOF[0]<100)   ftxt << "    " << parTOF[0] << endl;
        else if (parTOF[0]>=100 && parTOF[0]<1000) ftxt << "    " << parTOF[0] << endl;
-       else ftxt << "   " << parTOF[3] << endl;
+       else ftxt << "   " << parTOF[0] << endl;
       }
 
     } // closed loop on TOF raw data per current DDL file
@@ -784,6 +796,10 @@ void AliTOFClusterFinder::Raw2Digits(Int_t iEvent, AliRawReader *rawReader)
     fTOFLoader->MakeTree("D");
     fTreeD = fTOFLoader->TreeD();
     }
+  else {
+    AliFatal("Can not get TreeD");
+    return;
+  }
 
   Int_t bufsize = 32000;
   fDigits->Clear();