]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFcalib.cxx
Fixed a memory leak (TObjArray::Clear was missing)
[u/mrichter/AliRoot.git] / TOF / AliTOFcalib.cxx
index b1b1f6cc6333fe370d71355893d49f31f90809b6..e24882ed110b0c9a10b41f7028112f654ca68434 100644 (file)
@@ -2390,7 +2390,9 @@ AliTOFcalib::CalibrateESD(AliESDEvent *event)
   // calibrating TOF hits
 
   AliESDTOFHit* hit = NULL;
+  AliESDtrack* track = NULL;
   TClonesArray* esdTOFhits = event->GetESDTOFHits();
+  if (esdTOFhits) { // new TOF data structure
     for (Int_t ihit = 0; ihit < esdTOFhits->GetEntriesFast(); ihit++) {
       
       /* get track */
@@ -2415,11 +2417,36 @@ AliTOFcalib::CalibrateESD(AliESDEvent *event)
       }
       
     }
-    if (fCorrectTExp) {
-      AliWarning("\n\nfCorrectTExp is a DEPRECATED flag, it will do NOTHING\n\n");
-    }
-
+  }
+  else { // old TOF data structure
 
+    for (Int_t itrk = 0; itrk < event->GetNumberOfTracks(); itrk++) {
+   
+      /* get track */
+      track = event->GetTrack(itrk);
+      if (!track || !(track->GetStatus() & AliESDtrack::kTOFout)) continue;
+      
+      /* calibrate TOF signal */
+      if (fCalibrateTOFsignal) {
+       /* get info */
+       index = track->GetTOFCalChannel();
+       time = track->GetTOFsignalRaw();
+       tot = track->GetTOFsignalToT();
+       l0l1 = track->GetTOFL0L1();
+       deltaBC = track->GetTOFDeltaBC();
+       /* get correction */
+       corr = GetTimeCorrection(index, tot, deltaBC, l0l1, timestamp);
+       /* apply correction */
+       time -= corr;
+       /* set new TOF signal */
+       track->SetTOFsignal(time);
+      }
+    }
+    
+    if (fCorrectTExp) 
+      CalibrateTExp(event);
+  }
+  
 }
 
 //----------------------------------------------------------------------------
@@ -2497,6 +2524,13 @@ AliTOFcalib::CalibrateTExp(AliESDEvent *event) const
    * calibrate TExp
    */
 
+  /* check if new TOF data structure, crash in case */
+  TClonesArray* esdTOFhits = event->GetESDTOFHits();
+  if (esdTOFhits) { 
+    AliFatal("This method is DEPRECATED, doing NOTHING");
+    return ;
+  }
+
   if (!fInitFlag) {
     AliError("class not yet initialized. Initialize it before.");
     return;
@@ -2532,8 +2566,12 @@ AliTOFcalib::TuneForMC(AliESDEvent *event, Double_t resolution)
    * tune for MC
    */
 
-  AliFatal("This method is DEPRECATED, doing NOTHING");
-  return 0.;
+  /* check if new TOF data structure, crash in case */
+  TClonesArray* esdTOFhits = event->GetESDTOFHits();
+  if (esdTOFhits) { 
+    AliFatal("This method is DEPRECATED, doing NOTHING");
+    return 0.;
+  }
 
   /* get vertex spread and define T0-spread */
   Double_t diamond2 = TMath::Abs(event->GetSigma2DiamondZ());