]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/ESDfilter/AliAnalysisTaskESDfilter.cxx
Merge branch 'master_patch'
[u/mrichter/AliRoot.git] / ANALYSIS / ESDfilter / AliAnalysisTaskESDfilter.cxx
index 3a5dbce4b9cfa38d465a120b88a39d606bc1e4f5..c3633881c124bf835d17464469381fdd31da0377 100644 (file)
@@ -367,7 +367,8 @@ AliAODHeader* AliAnalysisTaskESDfilter::ConvertHeader(const AliESDEvent& esd)
 
   AliCodeTimerAuto("",0);
   
-  AliAODHeader* header = AODEvent()->GetHeader();
+  AliAODHeader* header = dynamic_cast<AliAODHeader*>(AODEvent()->GetHeader());
+  if(!header) AliFatal("Not a standard AOD");
   
   header->SetRunNumber(esd.GetRunNumber());
   header->SetOfflineTrigger(fInputHandler->IsEventSelected()); // propagate the decision of the physics selection
@@ -471,7 +472,7 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd)
   Double_t covVtx[6] = { 0. };
   Double_t momBach[3]={0.};
   Double_t covTr[21]={0.};
-  Double_t pid[10]={0.};
+  //  Double_t pid[10]={0.};
   AliAODPid* detpid(0x0);
   AliAODVertex* vV0FromCascade(0x0);
   AliAODv0* aodV0(0x0);
@@ -579,7 +580,7 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd)
       esdCascadeBach->GetPxPyPz(momBach);
       esdCascadeBach->GetXYZ(pos);
       esdCascadeBach->GetCovarianceXYZPxPyPz(covTr);
-      esdCascadeBach->GetESDpid(pid);
+      //      esdCascadeBach->GetESDpid(pid);
       esdCascadeBach->GetTOFLabel(tofLabel);
 
       fUsedTrack[idxBachFromCascade] = kTRUE;
@@ -595,12 +596,13 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd)
                                                                 covTr, 
                                                                 (Short_t)esdCascadeBach->GetSign(),
                                                                 esdCascadeBach->GetITSClusterMap(), 
-                                                                pid,
+                                                                // pid,
                                                                 vCascade,
                                                                 kTRUE,  // usedForVtxFit = kFALSE ? FIXME
                                                                 vtx->UsesTrack(esdCascadeBach->GetID()),
-                                                                AliAODTrack::kSecondary,
+                                                                AliAODTrack::kFromDecayVtx,
                                                                 selectInfo);
+      aodTrack->SetPIDForTracking(esdCascadeBach->GetPIDForTracking());
       aodTrack->SetTPCFitMap(esdCascadeBach->GetTPCFitMap());
       aodTrack->SetTPCClusterMap(esdCascadeBach->GetTPCClusterMap());
       aodTrack->SetTPCSharedMap (esdCascadeBach->GetTPCSharedMap());
@@ -657,7 +659,7 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd)
       esdCascadePos->GetPxPyPz(momPos);
       esdCascadePos->GetXYZ(pos);
       esdCascadePos->GetCovarianceXYZPxPyPz(covTr);
-      esdCascadePos->GetESDpid(pid);
+      //      esdCascadePos->GetESDpid(pid);
       esdCascadePos->GetTOFLabel(tofLabel);      
       
       if (!fUsedTrack[idxPosFromV0Dghter]) {
@@ -675,12 +677,13 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd)
                                                                   covTr, 
                                                                   (Short_t)esdCascadePos->GetSign(),
                                                                   esdCascadePos->GetITSClusterMap(), 
-                                                                  pid,
+                                                                  //pid,
                                                                   vV0FromCascade,
                                                                   kTRUE,  // usedForVtxFit = kFALSE ? FIXME
                                                                   vtx->UsesTrack(esdCascadePos->GetID()),
-                                                                  AliAODTrack::kSecondary,
+                                                                  AliAODTrack::kFromDecayVtx,
                                                                   selectInfo);
+       aodTrack->SetPIDForTracking(esdCascadePos->GetPIDForTracking());
         aodTrack->SetTPCFitMap(esdCascadePos->GetTPCFitMap());
         aodTrack->SetTPCClusterMap(esdCascadePos->GetTPCClusterMap());
         aodTrack->SetTPCSharedMap (esdCascadePos->GetTPCSharedMap());
@@ -707,7 +710,7 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd)
       esdCascadeNeg->GetPxPyPz(momNeg);
       esdCascadeNeg->GetXYZ(pos);
       esdCascadeNeg->GetCovarianceXYZPxPyPz(covTr);
-      esdCascadeNeg->GetESDpid(pid);
+      //   esdCascadeNeg->GetESDpid(pid);
       esdCascadeNeg->GetTOFLabel(tofLabel);
       
       if (!fUsedTrack[idxNegFromV0Dghter]) {
@@ -726,12 +729,13 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd)
                                                                   covTr, 
                                                                   (Short_t)esdCascadeNeg->GetSign(),
                                                                   esdCascadeNeg->GetITSClusterMap(), 
-                                                                  pid,
+                                                                  // pid,
                                                                   vV0FromCascade,
                                                                   kTRUE,  // usedForVtxFit = kFALSE ? FIXME
                                                                   vtx->UsesTrack(esdCascadeNeg->GetID()),
-                                                                  AliAODTrack::kSecondary,
+                                                                  AliAODTrack::kFromDecayVtx,
                                                                   selectInfo);
+       aodTrack->SetPIDForTracking(esdCascadeNeg->GetPIDForTracking());
         aodTrack->SetTPCFitMap(esdCascadeNeg->GetTPCFitMap());
         aodTrack->SetTPCClusterMap(esdCascadeNeg->GetTPCClusterMap());
         aodTrack->SetTPCSharedMap (esdCascadeNeg->GetTPCSharedMap());
@@ -858,7 +862,7 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd)
   Double_t covVtx[6] = { 0. };
   Double_t momPos[3]={0.};
   Double_t covTr[21]={0.};
-  Double_t pid[10]={0.};
+  //  Double_t pid[10]={0.};
   AliAODTrack* aodTrack(0x0);
   AliAODPid* detpid(0x0);
   Double_t momNeg[3]={0.};
@@ -923,7 +927,7 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd)
     esdV0Pos->GetPxPyPz(momPos);
     esdV0Pos->GetXYZ(pos);
     esdV0Pos->GetCovarianceXYZPxPyPz(covTr);
-    esdV0Pos->GetESDpid(pid);
+    //    esdV0Pos->GetESDpid(pid);
     esdV0Pos->GetTOFLabel(tofLabel);
     
     const AliESDVertex *vtx = esd.GetPrimaryVertex();
@@ -942,12 +946,13 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd)
                                                                    covTr, 
                                                                    (Short_t)esdV0Pos->GetSign(),
                                                                    esdV0Pos->GetITSClusterMap(), 
-                                                                   pid,
+                                                                   // pid,
                                                                    vV0,
                                                                    kTRUE,  // check if this is right
                                                                    vtx->UsesTrack(esdV0Pos->GetID()),
-                                                                   AliAODTrack::kSecondary,
+                                                                   AliAODTrack::kFromDecayVtx,
                                                                    selectInfo);
+           aodTrack->SetPIDForTracking(esdV0Pos->GetPIDForTracking());
            aodTrack->SetTPCFitMap(esdV0Pos->GetTPCFitMap());
            aodTrack->SetTPCClusterMap(esdV0Pos->GetTPCClusterMap());
            aodTrack->SetTPCSharedMap (esdV0Pos->GetTPCSharedMap());
@@ -971,7 +976,7 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd)
     esdV0Neg->GetPxPyPz(momNeg);
     esdV0Neg->GetXYZ(pos);
     esdV0Neg->GetCovarianceXYZPxPyPz(covTr);
-    esdV0Neg->GetESDpid(pid);
+    //    esdV0Neg->GetESDpid(pid);
     esdV0Neg->GetTOFLabel(tofLabel);
     
     if (!fUsedTrack[negFromV0]) {
@@ -988,12 +993,13 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd)
                                                              covTr, 
                                                              (Short_t)esdV0Neg->GetSign(),
                                                              esdV0Neg->GetITSClusterMap(), 
-                                                             pid,
+                                                             // pid,
                                                              vV0,
                                                              kTRUE,  // check if this is right
                                                              vtx->UsesTrack(esdV0Neg->GetID()),
-                                                             AliAODTrack::kSecondary,
+                                                             AliAODTrack::kFromDecayVtx,
                                                              selectInfo);
+      aodTrack->SetPIDForTracking(esdV0Neg->GetPIDForTracking());
       aodTrack->SetTPCFitMap(esdV0Neg->GetTPCFitMap());
       aodTrack->SetTPCClusterMap(esdV0Neg->GetTPCClusterMap());
       aodTrack->SetTPCSharedMap (esdV0Neg->GetTPCSharedMap());
@@ -1086,7 +1092,7 @@ void AliAnalysisTaskESDfilter::ConvertTPCOnlyTracks(const AliESDEvent& esd)
 
   Double_t pos[3] = { 0. };      
   Double_t covTr[21]={0.};
-  Double_t pid[10]={0.};  
+  //  Double_t pid[10]={0.};  
   Double_t p[3] = { 0. };
   Double_t pDCA[3] = { 0. }; // momentum at DCA
   Double_t rDCA[3] = { 0. }; // position at DCA
@@ -1165,7 +1171,7 @@ void AliAnalysisTaskESDfilter::ConvertTPCOnlyTracks(const AliESDEvent& esd)
 
     track->GetXYZ(pos);
     track->GetCovarianceXYZPxPyPz(covTr);
-    esdTrack->GetESDpid(pid);// original PID
+    //    esdTrack->GetESDpid(pid);// original PID
     esdTrack->GetTOFLabel(tofLabel);
     if(fMChandler)fMChandler->SelectParticle(esdTrack->GetLabel());
     fUsedTrackCopy[nTrack] |= selectInfo;
@@ -1178,12 +1184,13 @@ void AliAnalysisTaskESDfilter::ConvertTPCOnlyTracks(const AliESDEvent& esd)
                                                            covTr, 
                                                            (Short_t)track->GetSign(),
                                                            track->GetITSClusterMap(), 
-                                                           pid,
+                                                           // pid,
                                                            fPrimaryVertex,
                                                            kTRUE, // check if this is right
                                                            vtx->UsesTrack(track->GetID()),
                                                            AliAODTrack::kPrimary, 
                                                            selectInfo);
+    aodTrack->SetPIDForTracking(track->GetPIDForTracking());
     aodTrack->SetIsHybridTPCConstrainedGlobal(isHybridITSTPC);    
     aodTrack->SetTPCFitMap(track->GetTPCFitMap());
     aodTrack->SetTPCClusterMap(track->GetTPCClusterMap());
@@ -1238,7 +1245,7 @@ void AliAnalysisTaskESDfilter::ConvertGlobalConstrainedTracks(const AliESDEvent&
  
   Double_t pos[3] = { 0. };      
   Double_t covTr[21]={0.};
-  Double_t pid[10]={0.};  
+  //  Double_t pid[10]={0.};  
   Double_t p[3] = { 0. };
 
   Double_t pDCA[3] = { 0. }; // momentum at DCA
@@ -1298,7 +1305,7 @@ void AliAnalysisTaskESDfilter::ConvertGlobalConstrainedTracks(const AliESDEvent&
 
     esdTrack->GetConstrainedXYZ(pos);
     exParamGC->GetCovarianceXYZPxPyPz(covTr);
-    esdTrack->GetESDpid(pid);
+    //    esdTrack->GetESDpid(pid);
     esdTrack->GetTOFLabel(tofLabel); 
     if(fMChandler)fMChandler->SelectParticle(esdTrack->GetLabel());
     fUsedTrackCopy[nTrack] |= selectInfo;
@@ -1311,12 +1318,13 @@ void AliAnalysisTaskESDfilter::ConvertGlobalConstrainedTracks(const AliESDEvent&
                                                             covTr, 
                                                             (Short_t)esdTrack->GetSign(),
                                                             esdTrack->GetITSClusterMap(), 
-                                                            pid,
+                                                            // pid,
                                                             fPrimaryVertex,
                                                             kTRUE, // check if this is right
                                                             vtx->UsesTrack(esdTrack->GetID()),
                                                             AliAODTrack::kPrimary, 
                                                             selectInfo);
+    aodTrack->SetPIDForTracking(esdTrack->GetPIDForTracking());
     aodTrack->SetIsHybridGlobalConstrainedGlobal(isHybridGC);    
     aodTrack->SetIsGlobalConstrained(kTRUE);    
     aodTrack->SetTPCFitMap(esdTrack->GetTPCFitMap());
@@ -1355,7 +1363,7 @@ void AliAnalysisTaskESDfilter::ConvertTracks(const AliESDEvent& esd)
   Double_t p[3] = { 0. };
   Double_t pos[3] = { 0. };
   Double_t covTr[21] = { 0. };
-  Double_t pid[10] = { 0. };
+  //  Double_t pid[10] = { 0. };
   Int_t    tofLabel[3] = {0};
   AliAODTrack* aodTrack(0x0);
   AliAODPid* detpid(0x0);
@@ -1376,7 +1384,7 @@ void AliAnalysisTaskESDfilter::ConvertTracks(const AliESDEvent& esd)
     esdTrack->GetPxPyPz(p);
     esdTrack->GetXYZ(pos);
     esdTrack->GetCovarianceXYZPxPyPz(covTr);
-    esdTrack->GetESDpid(pid);
+    //    esdTrack->GetESDpid(pid);
     esdTrack->GetTOFLabel(tofLabel);
     if(fMChandler)fMChandler->SelectParticle(esdTrack->GetLabel());
     fUsedTrack[nTrack] = kTRUE;
@@ -1389,13 +1397,14 @@ void AliAnalysisTaskESDfilter::ConvertTracks(const AliESDEvent& esd)
                                                             covTr, 
                                                             (Short_t)esdTrack->GetSign(),
                                                             esdTrack->GetITSClusterMap(), 
-                                                            pid,
+                                                            // pid,
                                                             fPrimaryVertex,
                                                             kTRUE, // check if this is right
                                                             vtx->UsesTrack(esdTrack->GetID()),
                                                             AliAODTrack::kPrimary, 
                                                             selectInfo);
     fPrimaryVertex->AddDaughter(aodTrack);
+    aodTrack->SetPIDForTracking(esdTrack->GetPIDForTracking());
     aodTrack->SetTPCFitMap(esdTrack->GetTPCFitMap());
     aodTrack->SetTPCClusterMap(esdTrack->GetTPCClusterMap());
     aodTrack->SetTPCSharedMap (esdTrack->GetTPCSharedMap());
@@ -1572,7 +1581,8 @@ void AliAnalysisTaskESDfilter::ConvertEMCALCells(const AliESDEvent& esd)
     aodEMcells.SetType(AliAODCaloCells::kEMCALCell);
     for (Int_t iCell = 0; iCell < nEMcell; iCell++) {      
       aodEMcells.SetCell(iCell,esdEMcells.GetCellNumber(iCell),esdEMcells.GetAmplitude(iCell),
-                         esdEMcells.GetTime(iCell), esdEMcells.GetMCLabel(iCell), esdEMcells.GetEFraction(iCell));
+                         esdEMcells.GetTime(iCell), esdEMcells.GetMCLabel(iCell), esdEMcells.GetEFraction(iCell),
+                        esdEMcells.GetHighGain(iCell) );
     }
     aodEMcells.Sort();
   }
@@ -1594,7 +1604,8 @@ void AliAnalysisTaskESDfilter::ConvertPHOSCells(const AliESDEvent& esd)
     aodPHcells.SetType(AliAODCaloCells::kPHOSCell);
     for (Int_t iCell = 0; iCell < nPHcell; iCell++) {      
       aodPHcells.SetCell(iCell,esdPHcells.GetCellNumber(iCell),esdPHcells.GetAmplitude(iCell),
-                         esdPHcells.GetTime(iCell), esdPHcells.GetMCLabel(iCell), esdPHcells.GetEFraction(iCell));
+                         esdPHcells.GetTime(iCell), esdPHcells.GetMCLabel(iCell), esdPHcells.GetEFraction(iCell),
+                        esdPHcells.GetHighGain(iCell) );
     }
     aodPHcells.Sort();
   }
@@ -1609,8 +1620,9 @@ void AliAnalysisTaskESDfilter::ConvertTracklets(const AliESDEvent& esd)
   AliAODTracklets &SPDTracklets = *(AODEvent()->GetTracklets());
   const AliMultiplicity *mult = esd.GetMultiplicity();
   if (mult) {
-    if (mult->GetNumberOfTracklets()>0) {
+    if (mult->GetNumberOfTracklets()>0) {      
       SPDTracklets.CreateContainer(mult->GetNumberOfTracklets());
+      SPDTracklets.SetScaleDThetaBySin2T(mult->GetScaleDThetaBySin2T());
       for (Int_t n=0; n<mult->GetNumberOfTracklets(); n++) {
         if(fMChandler){
           fMChandler->SelectParticle(mult->GetLabel(n, 0));
@@ -1633,7 +1645,7 @@ void AliAnalysisTaskESDfilter::ConvertKinks(const AliESDEvent& esd)
   // The loop is on the tracks in order to find the mother and daugther of each kink
   
   Double_t covTr[21]={0.};
-  Double_t pid[10]={0.};
+  //  Double_t pid[10]={0.};
   AliAODPid* detpid(0x0);
   Int_t tofLabel[3] = {0};
   
@@ -1691,7 +1703,7 @@ void AliAnalysisTaskESDfilter::ConvertKinks(const AliESDEvent& esd)
             esdTrackM->GetPxPyPz(p);
             esdTrackM->GetXYZ(pos);
             esdTrackM->GetCovarianceXYZPxPyPz(covTr);
-            esdTrackM->GetESDpid(pid);
+           //            esdTrackM->GetESDpid(pid);
            esdTrackM->GetTOFLabel(tofLabel);
             if(fMChandler)fMChandler->SelectParticle(esdTrackM->GetLabel());
             mother = new(Tracks()[fNumberOfTracks++]) AliAODTrack(esdTrackM->GetID(),
@@ -1703,12 +1715,13 @@ void AliAnalysisTaskESDfilter::ConvertKinks(const AliESDEvent& esd)
                                                                  covTr, 
                                                                  (Short_t)esdTrackM->GetSign(),
                                                                  esdTrackM->GetITSClusterMap(), 
-                                                                 pid,
+                                                                 // pid,
                                                                  fPrimaryVertex,
                                                                  kTRUE, // check if this is right
                                                                  vtx->UsesTrack(esdTrack->GetID()),
                                                                  AliAODTrack::kPrimary,
                                                                  selectInfo);
+           mother->SetPIDForTracking(esdTrackM->GetPIDForTracking());
             mother->SetTPCFitMap(esdTrackM->GetTPCFitMap());
             mother->SetTPCClusterMap(esdTrackM->GetTPCClusterMap());
             mother->SetTPCSharedMap (esdTrackM->GetTPCSharedMap());
@@ -1750,7 +1763,7 @@ void AliAnalysisTaskESDfilter::ConvertKinks(const AliESDEvent& esd)
             esdTrackD->GetPxPyPz(p);
             esdTrackD->GetXYZ(pos);
             esdTrackD->GetCovarianceXYZPxPyPz(covTr);
-            esdTrackD->GetESDpid(pid);
+           //            esdTrackD->GetESDpid(pid);
            esdTrackD->GetTOFLabel(tofLabel);
             selectInfo = 0;
             if (fTrackFilter) selectInfo = fTrackFilter->IsSelected(esdTrackD);
@@ -1764,12 +1777,13 @@ void AliAnalysisTaskESDfilter::ConvertKinks(const AliESDEvent& esd)
                                                                    covTr, 
                                                                    (Short_t)esdTrackD->GetSign(),
                                                                    esdTrackD->GetITSClusterMap(), 
-                                                                   pid,
+                                                                   // pid,
                                                                    vkink,
                                                                    kTRUE, // check if this is right
                                                                    vtx->UsesTrack(esdTrack->GetID()),
-                                                                   AliAODTrack::kSecondary,
+                                                                   AliAODTrack::kFromDecayVtx,
                                                                    selectInfo);
+           daughter->SetPIDForTracking(esdTrackD->GetPIDForTracking());
             daughter->SetTPCFitMap(esdTrackD->GetTPCFitMap());
             daughter->SetTPCClusterMap(esdTrackD->GetTPCClusterMap());
             daughter->SetTPCSharedMap (esdTrackD->GetTPCSharedMap());
@@ -1902,13 +1916,13 @@ void AliAnalysisTaskESDfilter::ConvertTZERO(const AliESDEvent& esd)
   Int_t idxOfFirstPmtA = -1,       idxOfFirstPmtC = -1;
   Float_t timeOfFirstPmtA = 9999, timeOfFirstPmtC = 9999;
   for(int ipmt=0;  ipmt<12; ipmt++){
-    if( rawTime[ipmt] > -200 && rawTime[ipmt] < timeOfFirstPmtC && rawTime[ipmt]!=0){
+    if( rawTime[ipmt] > -2 && rawTime[ipmt] < timeOfFirstPmtC && rawTime[ipmt]!=0){
       timeOfFirstPmtC = rawTime[ipmt];
       idxOfFirstPmtC  = ipmt;
     }
   }
   for(int ipmt=12; ipmt<24; ipmt++){
-    if( rawTime[ipmt] > -200 && rawTime[ipmt] < timeOfFirstPmtA && rawTime[ipmt]!=0 ){
+    if( rawTime[ipmt] > -2 && rawTime[ipmt] < timeOfFirstPmtA && rawTime[ipmt]!=0 ){
       timeOfFirstPmtA = rawTime[ipmt];
       idxOfFirstPmtA  = ipmt;
     }
@@ -2076,12 +2090,12 @@ void AliAnalysisTaskESDfilter::ConvertTRD(const AliESDEvent& esd)
          Double_t mom[3]={0.};
          Double_t pos[3]={0.};
          Double_t covTr[21]={0.};
-         Double_t pid[10]={0.};
+         //      Double_t pid[10]={0.};
 
          esdTrkMatch->GetPxPyPz(mom);
          esdTrkMatch->GetXYZ(pos);
          esdTrkMatch->GetCovarianceXYZPxPyPz(covTr);
-         esdTrkMatch->GetESDpid(pid);
+         // esdTrkMatch->GetESDpid(pid);
          const AliESDVertex* vtx = esd.GetPrimaryVertex();
 
          fUsedTrack[idx] = kTRUE;
@@ -2096,12 +2110,13 @@ void AliAnalysisTaskESDfilter::ConvertTRD(const AliESDEvent& esd)
                                                                     covTr,
                                                                     (Short_t)esdTrkMatch->GetSign(),
                                                                     esdTrkMatch->GetITSClusterMap(),
-                                                                    pid,
+                                                                    // pid,
                                                                     fPrimaryVertex,
                                                                     kTRUE,
                                                                     vtx->UsesTrack(esdTrkMatch->GetID()),
                                                                     AliAODTrack::kUndef,
                                                                     selectInfo);
+         aodTrkMatch->SetPIDForTracking(esdTrkMatch->GetPIDForTracking());
          aodTrkMatch->SetTPCFitMap(esdTrkMatch->GetTPCFitMap());
          aodTrkMatch->SetTPCClusterMap(esdTrkMatch->GetTPCClusterMap());
          aodTrkMatch->SetTPCSharedMap (esdTrkMatch->GetTPCSharedMap());
@@ -2132,8 +2147,8 @@ void AliAnalysisTaskESDfilter::ConvertESDtoAOD()
 
   AliCodeTimerAuto("",0);
 
-  if (fRefitVertexTracks) AliESDUtils::RefitESDVertexTracks(esd,fRefitVertexTracks,
-                                                           fRefitVertexTracksNCuts ? fRefitVertexTracksCuts:0);
+  if (fRefitVertexTracks>=0) AliESDUtils::RefitESDVertexTracks(esd,fRefitVertexTracks,
+                                                              fRefitVertexTracksNCuts ? fRefitVertexTracksCuts:0);
   
   fOldESDformat = ( esd->GetAliESDOld() != 0x0 );
  
@@ -2183,7 +2198,9 @@ void AliAnalysisTaskESDfilter::ConvertESDtoAOD()
   // loop over events and fill them
   // Multiplicity information needed by the header (to be revised!)
   Int_t nTracks    = esd->GetNumberOfTracks();
-  for (Int_t iTrack=0; iTrack<nTracks; ++iTrack) esd->GetTrack(iTrack)->SetESDEvent(esd);
+
+// The line below should not be needed anymore (tracks already connected)
+//  for (Int_t iTrack=0; iTrack<nTracks; ++iTrack) esd->GetTrack(iTrack)->SetESDEvent(esd);
 
   // Update the header
   Int_t nV0s      = esd->GetNumberOfV0s();
@@ -2301,6 +2318,7 @@ void AliAnalysisTaskESDfilter::ConvertESDtoAOD()
     delete fESDpid;
     fESDpid = 0x0;
   }
+  AODEvent()->ConnectTracks();
 }
 
 //______________________________________________________________________________
@@ -2385,7 +2403,7 @@ void AliAnalysisTaskESDfilter::SetDetectorRawSignals(AliAODPid *aodpid, AliESDtr
   aodpid->SetTRDChi2(track->GetTRDchi2());
 
   //TOF PID  
-  Double_t times[AliPID::kSPECIESC]; track->GetIntegratedTimes(times);
+  Double_t times[AliPID::kSPECIESC]; track->GetIntegratedTimes(times,AliPID::kSPECIESC);
   aodpid->SetIntegratedTimes(times);
 
   //  Float_t tzeroTrack = fESDpid->GetTOFResponse().GetStartTime(track->P());