]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Important fix for stack overwrite produced by AliESDtrack::GetIntegratedTimes which...
authoragheata <Andrei.Gheata@cern.ch>
Wed, 28 Jan 2015 16:59:09 +0000 (17:59 +0100)
committeragheata <Andrei.Gheata@cern.ch>
Wed, 28 Jan 2015 16:59:52 +0000 (17:59 +0100)
STEER/ESD/AliESDtrack.cxx
STEER/STEER/AliGlobalQADataMaker.cxx
TOF/TestTOFPID.C

index 65988e8261e7ca38aa4c3f4db5aca6ad4598b4a1..e8e323e12283ed013d6651ec3e47d62fe284f5d8 100644 (file)
@@ -1887,8 +1887,11 @@ void AliESDtrack::GetIntegratedTimes(Double_t *times, Int_t nspec) const
   if(fTrackTime)
     for (int i=nspec; i--;) times[i]=fTrackTime[i];
   else
-    for (int i=AliPID::kSPECIESC; i--;) times[i]=0.0;
-  //
+// The line below is wrong since it does not honor the nspec value
+// The "times" array may have only AliPID::kSPECIES size, as called by:
+// AliESDpidCuts::AcceptTrack()
+//    for (int i=AliPID::kSPECIESC; i--;) times[i]=0.0;
+    for (int i=nspec; i--;) times[i]=0.0;
 }
 //_______________________________________________________________________
 Double_t AliESDtrack::GetIntegratedLength() const{
index 6134ea985fe8f13d24bde0e4b28ae4cf9dc620e6..7c60ce550200f447f18df2634c1da32d68cd1501 100644 (file)
@@ -441,7 +441,7 @@ void AliGlobalQADataMaker::MakeESDs(AliESDEvent * event) {
          track->GetDZ(xv,yv,zv,esd->GetMagneticField(),dz);
          if (dz[1]<3.) {
           Double_t times[AliPID::kSPECIESC];
-          track->GetIntegratedTimes(times);
+          track->GetIntegratedTimes(times, AliPID::kSPECIESC);
           Double_t tof=track->GetTOFsignal()/*-847055 -1771207*/;
           FillESDsData(kPid2,times[AliPID::kPion]-tof);
         }
index d9836139f60f963aed5c4fc17715905762000a69..84f8e84cac3e58a93a47f306d883c65e4ff6d8d9 100644 (file)
@@ -71,7 +71,7 @@ TestTOFPID(const Char_t *filename, Bool_t calibrateESD = kTRUE, Bool_t correctTE
       /* get TOF time */
       time = track->GetTOFsignal();
       /* get expected times */
-      track->GetIntegratedTimes(timei);
+      track->GetIntegratedTimes(timei, AliPID::kSPECIESC);
 
       /* fill PID histos */
       for (Int_t ipart = 0; ipart < AliPID::kSPECIES; ipart++){