1)Substituted persistent AliAODTrack::fPID array by non-persistent pointer,
authorshahoian <ruben.shahoyan@cern.ch>
Sun, 2 Feb 2014 03:21:47 +0000 (04:21 +0100)
committershahoian <ruben.shahoyan@cern.ch>
Sun, 2 Feb 2014 03:42:25 +0000 (04:42 +0100)
for BWD comp. defined a rule in the AODLinkDef.
2)Removed transfer of PID probability array from ESD to AOD track, instead
the fPIDForTracking is transfered.
3) Modified tasks dependent on AODTrack constructor

ANALYSIS/ESDfilter/AliAnalysisTaskESDfilter.cxx
JETAN/AliAnalysisTaskFastEmbedding.cxx
PWG/CaloTrackCorrBase/AliCaloTrackMCReader.cxx
PWG/muon/AliAnalysisTaskESDMuonFilter.cxx
PWG/muon/AliAnalysisTaskLinkToMC.cxx
PWGCF/FEMTOSCOPYAOD/AliAnalysisTaskPWG2ESDfilter.cxx
PWGGA/CaloTasks/AliAnalysisTaskCaloFilter.cxx
PWGGA/EMCALTasks/AliAnalysisTaskEMCALPi0PbPb.cxx
STEER/AOD/AliAODTrack.cxx
STEER/AOD/AliAODTrack.h
STEER/AODLinkDef.h

index 3a5dbce..994e6b7 100644 (file)
@@ -471,7 +471,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 +579,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 +595,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,
                                                                 selectInfo);
+      aodTrack->SetPIDForTracking(esdCascadeBach->GetPIDForTracking());
       aodTrack->SetTPCFitMap(esdCascadeBach->GetTPCFitMap());
       aodTrack->SetTPCClusterMap(esdCascadeBach->GetTPCClusterMap());
       aodTrack->SetTPCSharedMap (esdCascadeBach->GetTPCSharedMap());
@@ -657,7 +658,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 +676,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,
                                                                   selectInfo);
+       aodTrack->SetPIDForTracking(esdCascadePos->GetPIDForTracking());
         aodTrack->SetTPCFitMap(esdCascadePos->GetTPCFitMap());
         aodTrack->SetTPCClusterMap(esdCascadePos->GetTPCClusterMap());
         aodTrack->SetTPCSharedMap (esdCascadePos->GetTPCSharedMap());
@@ -707,7 +709,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 +728,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,
                                                                   selectInfo);
+       aodTrack->SetPIDForTracking(esdCascadeNeg->GetPIDForTracking());
         aodTrack->SetTPCFitMap(esdCascadeNeg->GetTPCFitMap());
         aodTrack->SetTPCClusterMap(esdCascadeNeg->GetTPCClusterMap());
         aodTrack->SetTPCSharedMap (esdCascadeNeg->GetTPCSharedMap());
@@ -858,7 +861,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 +926,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 +945,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,
                                                                    selectInfo);
+           aodTrack->SetPIDForTracking(esdV0Pos->GetPIDForTracking());
            aodTrack->SetTPCFitMap(esdV0Pos->GetTPCFitMap());
            aodTrack->SetTPCClusterMap(esdV0Pos->GetTPCClusterMap());
            aodTrack->SetTPCSharedMap (esdV0Pos->GetTPCSharedMap());
@@ -971,7 +975,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 +992,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,
                                                              selectInfo);
+      aodTrack->SetPIDForTracking(esdV0Neg->GetPIDForTracking());
       aodTrack->SetTPCFitMap(esdV0Neg->GetTPCFitMap());
       aodTrack->SetTPCClusterMap(esdV0Neg->GetTPCClusterMap());
       aodTrack->SetTPCSharedMap (esdV0Neg->GetTPCSharedMap());
@@ -1086,7 +1091,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 +1170,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 +1183,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 +1244,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 +1304,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 +1317,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 +1362,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 +1383,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 +1396,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());
@@ -1633,7 +1641,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 +1699,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 +1711,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 +1759,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 +1773,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,
                                                                    selectInfo);
+           daughter->SetPIDForTracking(esdTrackD->GetPIDForTracking());
             daughter->SetTPCFitMap(esdTrackD->GetTPCFitMap());
             daughter->SetTPCClusterMap(esdTrackD->GetTPCClusterMap());
             daughter->SetTPCSharedMap (esdTrackD->GetTPCSharedMap());
@@ -2076,12 +2086,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 +2106,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());
index 4e20f0b..4527ec0 100644 (file)
@@ -944,7 +944,7 @@ void AliAnalysisTaskFastEmbedding::UserExec(Option_t *)
          NULL,   // covMatrix,
          -99,    // charge
          0,      // itsClusMap
-         NULL,   // pid 
+        //         NULL,   // pid 
          NULL,   // prodVertex
          kFALSE, // used for vertex fit
          kFALSE, // used for prim vtx fit
index 817b9a5..d6586e5 100755 (executable)
@@ -287,7 +287,7 @@ Bool_t AliCaloTrackMCReader::FillInputEvent(Int_t iEntry,
           p[0] = particle->Px(); p[1] = particle->Py(); p[2] = particle->Pz();
           //Create object and write it to file
           AliAODTrack *aodTrack = new AliAODTrack(0, iParticle, p, kTRUE, x, kFALSE,NULL, 0, 0, 
-                                                  NULL,
+                                                  // NULL,
                                                   0x0,//primary,
                                                   kFALSE, // No fit performed
                                                   kFALSE, // No fit performed
index c3c5d6e..df4a100 100644 (file)
@@ -231,11 +231,11 @@ void AliAnalysisTaskESDMuonFilter::ConvertESDtoAOD()
   // Define arrays for muons
   Double_t pos[3];
   Double_t p[3];
-  Double_t pid[10];
+  //  Double_t pid[10];
   
   // has to be changed once the muon pid is provided by the ESD
-  for (Int_t i = 0; i < 10; pid[i++] = 0.) {}
-  pid[AliAODTrack::kMuon]=1.;
+  //  for (Int_t i = 0; i < 10; pid[i++] = 0.) {}
+  //  pid[AliAODTrack::kMuon]=1.;
   
   AliAODHeader* header = AODEvent()->GetHeader();
   AliAODTrack *aodTrack = 0x0;
@@ -305,13 +305,14 @@ void AliAnalysisTaskESDMuonFilter::ConvertESDtoAOD()
                                                   0x0, // covariance matrix
                                                   esdMuTrack->Charge(), // charge
                                                   itsClusMap, // ITSClusterMap
-                                                  pid, // pid
+                                                  //pid, // pid
                                                   primary, // primary vertex
                                                   kFALSE, // used for vertex fit?
                                                   kFALSE, // used for primary vertex fit?
                                                   AliAODTrack::kPrimary,// track type
                                                   selectInfo); 
     
+    aodTrack->SetPIDForTracking(AliPID::kMuon);
     aodTrack->SetXYAtDCA(esdMuTrack->GetNonBendingCoorAtDCA(), esdMuTrack->GetBendingCoorAtDCA());
     aodTrack->SetPxPyPzAtDCA(esdMuTrack->PxAtDCA(), esdMuTrack->PyAtDCA(), esdMuTrack->PzAtDCA());
     aodTrack->SetRAtAbsorberEnd(esdMuTrack->GetRAtAbsorberEnd());
index 787daff..dead252 100644 (file)
@@ -583,11 +583,11 @@ void AliAnalysisTaskLinkToMC::CreateAODTracks(TMap& links)
        // Define arrays for muons
        Double_t pos[3];
        Double_t p[3];
-       Double_t pid[10];
+       //      Double_t pid[10];
        
        // has to be changed once the muon pid is provided by the ESD
-       for (Int_t i = 0; i < 10; pid[i++] = 0.) {}
-       pid[AliAODTrack::kMuon]=1.;
+       // for (Int_t i = 0; i < 10; pid[i++] = 0.) {}
+       // pid[AliAODTrack::kMuon]=1.;
        
        AliAODHeader* header = AODEvent()->GetHeader();
        AliAODTrack *aodTrack = 0x0;
@@ -647,7 +647,7 @@ void AliAnalysisTaskLinkToMC::CreateAODTracks(TMap& links)
                                0x0, // covariance matrix
                                esdMuTrack->Charge(), // charge
                                0, // ITSClusterMap
-                               pid, // pid
+                               // pid, // pid
                                primary, // primary vertex
                                kFALSE, // used for vertex fit?
                                kFALSE, // used for primary vertex fit?
@@ -655,6 +655,7 @@ void AliAnalysisTaskLinkToMC::CreateAODTracks(TMap& links)
                                selectInfo
                        );
                
+               aodTrack->SetPIDForTracking(AliPID::kMuon);
                aodTrack->SetXYAtDCA(esdMuTrack->GetNonBendingCoorAtDCA(), esdMuTrack->GetBendingCoorAtDCA());
                aodTrack->SetPxPyPzAtDCA(esdMuTrack->PxAtDCA(), esdMuTrack->PyAtDCA(), esdMuTrack->PzAtDCA());
                aodTrack->ConvertAliPIDtoAODPID();
index 49a24e3..a8d5bc0 100644 (file)
@@ -164,7 +164,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
     Double_t p[3];
     Double_t covVtx[6];
     Double_t covTr[21];
-    Double_t pid[10];
+    //    Double_t pid[10];
 
     for (Int_t i = 0; i < 6; i++)  covVtx[i] = 0.;
     for (Int_t i = 0; i < 21; i++) covTr [i] = 0.;
@@ -380,7 +380,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
            esdTrack->GetPxPyPz(p);
            esdTrack->GetXYZ(pos);
            esdTrack->GetCovarianceXYZPxPyPz(covTr);
-           esdTrack->GetESDpid(pid);
+           //      esdTrack->GetESDpid(pid);
            
            vV0FromCascade->AddDaughter(aodTrack =
                                        new(tracks[jTracks++]) AliAODTrack(esdTrack->GetID(),
@@ -392,7 +392,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
                                                                           covTr, 
                                                                           (Short_t)esdTrack->GetSign(),
                                                                           esdTrack->GetITSClusterMap(), 
-                                                                          pid,
+                                                                          // pid,
                                                                           vV0FromCascade,
                                                                           kTRUE,  // check if this is right
                                                                           kFALSE, // check if this is right
@@ -415,7 +415,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
            esdTrack->GetPxPyPz(p);
            esdTrack->GetXYZ(pos);
            esdTrack->GetCovarianceXYZPxPyPz(covTr);
-           esdTrack->GetESDpid(pid);
+           //      esdTrack->GetESDpid(pid);
            
            vV0FromCascade->AddDaughter(aodTrack =
                                        new(tracks[jTracks++]) AliAODTrack(esdTrack->GetID(),
@@ -427,7 +427,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
                                                                           covTr, 
                                                                           (Short_t)esdTrack->GetSign(),
                                                                           esdTrack->GetITSClusterMap(), 
-                                                                          pid,
+                                                                          //pid,
                                                                           vV0FromCascade,
                                                                           kTRUE,  // check if this is right
                                                                           kFALSE, // check if this is right
@@ -452,7 +452,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
            esdTrack->GetPxPyPz(p);
            esdTrack->GetXYZ(pos);
            esdTrack->GetCovarianceXYZPxPyPz(covTr);
-           esdTrack->GetESDpid(pid);
+           //      esdTrack->GetESDpid(pid);
            
            vcascade->AddDaughter(aodTrack =
                                  new(tracks[jTracks++]) AliAODTrack(esdTrack->GetID(),
@@ -464,7 +464,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
                                                                     covTr, 
                                                                     (Short_t)esdTrack->GetSign(),
                                                                     esdTrack->GetITSClusterMap(), 
-                                                                    pid,
+                                                                    //pid,
                                                                     vcascade,
                                                                     kTRUE,  // check if this is right
                                                                     kFALSE, // check if this is right
@@ -520,7 +520,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
            esdTrack->GetPxPyPz(p);
            esdTrack->GetXYZ(pos);
            esdTrack->GetCovarianceXYZPxPyPz(covTr);
-           esdTrack->GetESDpid(pid);
+           //esdTrack->GetESDpid(pid);
            
            vV0->AddDaughter(aodTrack =
                             new(tracks[jTracks++]) AliAODTrack(esdTrack->GetID(),
@@ -532,7 +532,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
                                                                covTr, 
                                                                (Short_t)esdTrack->GetSign(),
                                                                esdTrack->GetITSClusterMap(), 
-                                                               pid,
+                                                               //pid,
                                                                vV0,
                                                                kTRUE,  // check if this is right
                                                                kFALSE, // check if this is right
@@ -555,7 +555,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
            esdTrack->GetPxPyPz(p);
            esdTrack->GetXYZ(pos);
            esdTrack->GetCovarianceXYZPxPyPz(covTr);
-           esdTrack->GetESDpid(pid);
+           //esdTrack->GetESDpid(pid);
            
            vV0->AddDaughter(aodTrack =
                             new(tracks[jTracks++]) AliAODTrack(esdTrack->GetID(),
@@ -567,7 +567,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
                                                                covTr, 
                                                                (Short_t)esdTrack->GetSign(),
                                                                esdTrack->GetITSClusterMap(), 
-                                                               pid,
+                                                               //pid,
                                                                vV0,
                                                                kTRUE,  // check if this is right
                                                                kFALSE, // check if this is right
@@ -641,7 +641,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
                        esdTrackC->GetPxPyPz(p);
                        esdTrackC->GetXYZ(pos);
                        esdTrackC->GetCovarianceXYZPxPyPz(covTr);
-                       esdTrackC->GetESDpid(pid);
+                       //esdTrackC->GetESDpid(pid);
                        
                        mother = 
                            new(tracks[jTracks++]) AliAODTrack(esdTrackC->GetID(),
@@ -653,7 +653,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
                                                               covTr, 
                                                               (Short_t)esdTrackC->GetSign(),
                                                               esdTrackC->GetITSClusterMap(), 
-                                                              pid,
+                                                              //pid,
                                                               primary,
                                                               kTRUE, // check if this is right
                                                               kTRUE, // check if this is right
@@ -687,7 +687,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
                        esdTrackC->GetPxPyPz(p);
                        esdTrackC->GetXYZ(pos);
                        esdTrackC->GetCovarianceXYZPxPyPz(covTr);
-                       esdTrackC->GetESDpid(pid);
+                       //esdTrackC->GetESDpid(pid);
                        
                        daughter = 
                            new(tracks[jTracks++]) AliAODTrack(esdTrackC->GetID(),
@@ -699,7 +699,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
                                                               covTr, 
                                                               (Short_t)esdTrackC->GetSign(),
                                                               esdTrackC->GetITSClusterMap(), 
-                                                              pid,
+                                                              //pid,
                                                               vkink,
                                                               kTRUE, // check if this is right
                                                               kTRUE, // check if this is right
@@ -745,7 +745,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
        esdTrack->GetPxPyPz(p);
        esdTrack->GetXYZ(pos);
        esdTrack->GetCovarianceXYZPxPyPz(covTr);
-       esdTrack->GetESDpid(pid);
+       //esdTrack->GetESDpid(pid);
        
        Float_t impactXY, impactZ;
        
@@ -778,7 +778,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
                                                                    covTr, 
                                                                    (Short_t)esdTrack->GetSign(),
                                                                    esdTrack->GetITSClusterMap(), 
-                                                                   pid,
+                                                                   //pid,
                                                                    primary,
                                                                    kTRUE, // check if this is right
                                                                    kTRUE, // check if this is right
@@ -808,7 +808,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
                                                   covTr, 
                                                   (Short_t)esdTrack->GetSign(),
                                                   esdTrack->GetITSClusterMap(), 
-                                                  pid,
+                                                  //pid,
                                                   NULL,
                                                   kFALSE, // check if this is right
                                                   kFALSE, // check if this is right
@@ -840,8 +840,8 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
        pos[2] = primary->GetZ();
        
        // has to be changed once the muon pid is provided by the ESD
-       for (Int_t i = 0; i < 10; pid[i++] = 0.) {}
-       pid[AliAODTrack::kMuon]=1.;
+       //for (Int_t i = 0; i < 10; pid[i++] = 0.) {}
+       //pid[AliAODTrack::kMuon]=1.;
        
        primary->AddDaughter(
            new(tracks[jTracks++]) AliAODTrack(0, // no ID provided
@@ -853,7 +853,7 @@ void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
                                               NULL, // no covariance matrix provided
                                               (Short_t)-99, // no charge provided
                                               0, // no ITSClusterMap
-                                              pid,
+                                              //pid,
                                               primary,
                                               kTRUE,  // check if this is right
                                               kTRUE,  // not used for vertex fit
index 7850b82..d8e6d3c 100644 (file)
@@ -712,7 +712,7 @@ void AliAnalysisTaskCaloFilter::FillAODTracks()
   
   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. };
     
   // Copy from AODs
@@ -739,7 +739,7 @@ void AliAnalysisTaskCaloFilter::FillAODTracks()
       track->GetPxPyPz(p);
       Bool_t isDCA  = track->GetPosition(pos);
       track->GetCovMatrix(covTr);
-      track->GetPID(pid);
+      //track->GetPID(pid);
       
       AliAODVertex* primVertex = (AliAODVertex*) AODEvent()->GetVertices()->At(0); // primary vertex, copied previously!!!
 
@@ -753,7 +753,7 @@ void AliAnalysisTaskCaloFilter::FillAODTracks()
                                                             covTr, 
                                                             track->Charge(),
                                                             track->GetITSClusterMap(), 
-                                                            pid,
+                                                            // pid,
                                                             primVertex,
                                                             track->GetUsedForVtxFit(),
                                                             track->GetUsedForPrimVtxFit(),
@@ -762,6 +762,7 @@ void AliAnalysisTaskCaloFilter::FillAODTracks()
                                                             track->Chi2perNDF());
       
       
+      aodTrack->SetPIDForTracking(track->GetPIDForTracking());
       aodTrack->SetIsHybridGlobalConstrainedGlobal(track->IsHybridGlobalConstrainedGlobal());   
       aodTrack->SetIsHybridTPCConstrainedGlobal   (track->IsHybridTPCConstrainedGlobal());    
       aodTrack->SetIsGlobalConstrained            (track->IsGlobalConstrained());  
index ef81bb7..7d5b93a 100644 (file)
@@ -1214,8 +1214,8 @@ void AliAnalysisTaskEMCALPi0PbPb::CalcPrimTracks()
       copyt.GetXYZ(pos);
       Double_t covTr[21] = { 0. };
       copyt.GetCovarianceXYZPxPyPz(covTr);
-      Double_t pid[10]   = { 0. };  
-      copyt.GetESDpid(pid);
+      //      Double_t pid[10]   = { 0. };  
+      //      copyt.GetESDpid(pid);
       AliAODTrack *aTrack = new AliAODTrack(copyt.GetID(),
                                             copyt.GetLabel(),
                                             p,
@@ -1225,10 +1225,11 @@ void AliAnalysisTaskEMCALPi0PbPb::CalcPrimTracks()
                                             covTr, 
                                             (Short_t)copyt.GetSign(),
                                             copyt.GetITSClusterMap(), 
-                                            pid,
+                                            //pid,
                                             0,/*fPrimaryVertex,*/
                                             kTRUE, // check if this is right
                                             vtx->UsesTrack(copyt.GetID()));
+      aTrack->SetPIDForTracking(copyt.GetPIDForTracking());
       aTrack->SetTPCClusterMap(copyt.GetTPCClusterMap());
       aTrack->SetTPCSharedMap (copyt.GetTPCSharedMap());
       Float_t ndf = copyt.GetTPCNcls() + 1 - 5 ;
index a45e590..bdeca77 100644 (file)
@@ -39,6 +39,7 @@ AliAODTrack::AliAODTrack() :
   fRAtAbsorberEnd(0.),
   fChi2perNDF(-999.),
   fChi2MatchTrigger(0.),
+  fPID(0),
   fFlags(0),
   fLabel(-999),
   fTOFLabel(),
@@ -55,6 +56,7 @@ AliAODTrack::AliAODTrack() :
   fID(-999),
   fCharge(-99),
   fType(kUndef),
+  fPIDForTracking(AliPID::kPion),
   fCaloIndex(kEMCALNoMatch),
   fCovMatrix(NULL),
   fDetPid(NULL),
@@ -73,7 +75,6 @@ AliAODTrack::AliAODTrack() :
   SetPosition((Float_t*)NULL);
   SetXYAtDCA(-999., -999.);
   SetPxPyPzAtDCA(-999., -999., -999.);
-  SetPID((Float_t*)NULL);
   for (Int_t i = 0; i < 3; i++) {fTOFLabel[i] = -1;}
 }
 
@@ -87,7 +88,6 @@ AliAODTrack::AliAODTrack(Short_t id,
                         Double_t covMatrix[21],
                         Short_t charge,
                         UChar_t itsClusMap,
-                        Double_t pid[10],
                         AliAODVertex *prodVertex,
                         Bool_t usedForVtxFit,
                         Bool_t usedForPrimVtxFit,
@@ -98,6 +98,7 @@ AliAODTrack::AliAODTrack(Short_t id,
   fRAtAbsorberEnd(0.),
   fChi2perNDF(chi2perNDF),
   fChi2MatchTrigger(0.),
+  fPID(0),
   fFlags(0),
   fLabel(label),
   fTOFLabel(),
@@ -114,6 +115,7 @@ AliAODTrack::AliAODTrack(Short_t id,
   fID(id),
   fCharge(charge),
   fType(ttype),
+  fPIDForTracking(AliPID::kPion),
   fCaloIndex(kEMCALNoMatch),
   fCovMatrix(NULL),
   fDetPid(NULL),
@@ -135,7 +137,6 @@ AliAODTrack::AliAODTrack(Short_t id,
   SetUsedForVtxFit(usedForVtxFit);
   SetUsedForPrimVtxFit(usedForPrimVtxFit);
   if(covMatrix) SetCovMatrix(covMatrix);
-  SetPID(pid);
   SetITSClusterMap(itsClusMap);
   for (Int_t i=0;i<3;i++) {fTOFLabel[i]=-1;}
 }
@@ -150,17 +151,17 @@ AliAODTrack::AliAODTrack(Short_t id,
                         Float_t covMatrix[21],
                         Short_t charge,
                         UChar_t itsClusMap,
-                        Float_t pid[10],
                         AliAODVertex *prodVertex,
                         Bool_t usedForVtxFit,
                         Bool_t usedForPrimVtxFit,
                         AODTrk_t ttype,
                         UInt_t selectInfo,
-                        Float_t chi2perNDF) :
+                        Float_t chi2perNDF ) :
   AliVTrack(),
   fRAtAbsorberEnd(0.),
   fChi2perNDF(chi2perNDF),
   fChi2MatchTrigger(0.),
+  fPID(0),
   fFlags(0),
   fLabel(label),
   fTOFLabel(),
@@ -177,6 +178,7 @@ AliAODTrack::AliAODTrack(Short_t id,
   fID(id),
   fCharge(charge),
   fType(ttype),
+  fPIDForTracking(AliPID::kPion),
   fCaloIndex(kEMCALNoMatch),
   fCovMatrix(NULL),
   fDetPid(NULL),
@@ -198,7 +200,6 @@ AliAODTrack::AliAODTrack(Short_t id,
   SetUsedForVtxFit(usedForVtxFit);
   SetUsedForPrimVtxFit(usedForPrimVtxFit);
   if(covMatrix) SetCovMatrix(covMatrix);
-  SetPID(pid);
   SetITSClusterMap(itsClusMap);
   for (Int_t i=0;i<3;i++) {fTOFLabel[i]=-1;}
 }
@@ -210,6 +211,7 @@ AliAODTrack::~AliAODTrack()
   delete fCovMatrix;
   delete fDetPid;
   delete fDetectorPID;
+  delete[] fPID;
 }
 
 
@@ -219,6 +221,7 @@ AliAODTrack::AliAODTrack(const AliAODTrack& trk) :
   fRAtAbsorberEnd(trk.fRAtAbsorberEnd),
   fChi2perNDF(trk.fChi2perNDF),
   fChi2MatchTrigger(trk.fChi2MatchTrigger),
+  fPID(0),
   fFlags(trk.fFlags),
   fLabel(trk.fLabel),
   fTOFLabel(),
@@ -235,6 +238,7 @@ AliAODTrack::AliAODTrack(const AliAODTrack& trk) :
   fID(trk.fID),
   fCharge(trk.fCharge),
   fType(trk.fType),
+  fPIDForTracking(trk.fPIDForTracking),
   fCaloIndex(trk.fCaloIndex),
   fCovMatrix(NULL),
   fDetPid(NULL),
@@ -277,7 +281,7 @@ AliAODTrack& AliAODTrack::operator=(const AliAODTrack& trk)
     fRAtAbsorberEnd    = trk.fRAtAbsorberEnd;
     fChi2perNDF        = trk.fChi2perNDF;
     fChi2MatchTrigger  = trk.fChi2MatchTrigger;
-    trk.GetPID(fPID);
+    SetPID( trk.fPID );
     fFlags             = trk.fFlags;
     fLabel             = trk.fLabel;    
     fTrackLength       = trk.fTrackLength;
@@ -293,6 +297,7 @@ AliAODTrack& AliAODTrack::operator=(const AliAODTrack& trk)
     fID                = trk.fID;
     fCharge            = trk.fCharge;
     fType              = trk.fType;
+    fPIDForTracking    = trk.fPIDForTracking;
     fCaloIndex         = trk.fCaloIndex;
     fTrackPhiOnEMCal   = trk.fTrackPhiOnEMCal;
     fTrackEtaOnEMCal   = trk.fTrackEtaOnEMCal;
@@ -444,21 +449,22 @@ AliAODTrack::AODTrkPID_t AliAODTrack::GetMostProbablePID() const
   
   Int_t nPID = 10;
   AODTrkPID_t loc = kUnknown;
-  Double_t max = 0.;
   Bool_t allTheSame = kTRUE;
-  
-  for (Int_t iPID = 0; iPID < nPID; iPID++) {
-    if (fPID[iPID] >= max) {
-      if (fPID[iPID] > max) {
-       allTheSame = kFALSE;
-       max = fPID[iPID];
-       loc = (AODTrkPID_t)iPID;
-      } else {
-       allTheSame = kTRUE;
+  if (fPID) {
+    Double_t max = 0.;
+    for (Int_t iPID = 0; iPID < nPID; iPID++) {
+      if (fPID[iPID] >= max) {
+       if (fPID[iPID] > max) {
+         allTheSame = kFALSE;
+         max = fPID[iPID];
+         loc = (AODTrkPID_t)iPID;
+       } else {
+         allTheSame = kTRUE;
+       }
       }
     }
   }
-  return allTheSame ? kUnknown : loc;
+  return allTheSame ? AODTrkPID_t(GetPIDForTracking()) : loc;
 }
 
 //______________________________________________________________________________
@@ -467,13 +473,13 @@ void AliAODTrack::ConvertAliPIDtoAODPID()
   // Converts AliPID array.
   // The numbering scheme is the same for electrons, muons, pions, kaons, and protons.
   // Everything else has to be set to zero.
-
-  fPID[kDeuteron] = 0.;
-  fPID[kTriton]   = 0.;
-  fPID[kHelium3]  = 0.;
-  fPID[kAlpha]    = 0.;
-  fPID[kUnknown]  = 0.;
-  
+  if (fPID) {
+    fPID[kDeuteron] = 0.;
+    fPID[kTriton]   = 0.;
+    fPID[kHelium3]  = 0.;
+    fPID[kAlpha]    = 0.;
+    fPID[kUnknown]  = 0.;
+  }
   return;
 }
 
@@ -1109,3 +1115,10 @@ void  AliAODTrack::GetITSdEdxSamples(Double_t s[4]) const
   if (!fDetPid) for (int i=4;i--;) s[i]=0;
   else          for (int i=4;i--;) s[i] = fDetPid->GetITSdEdxSample(i);
 }
+
+//_____________________________________________
+Double_t AliAODTrack::GetMassForTracking() const
+{
+  double m = AliPID::ParticleMass(fPIDForTracking);
+  return (fPIDForTracking==AliPID::kHe3 || fPIDForTracking==AliPID::kAlpha) ? -m : m;
+}
index 2adb7bd..1d0bfac 100644 (file)
@@ -80,7 +80,6 @@ class AliAODTrack : public AliVTrack {
              Double_t covMatrix[21],
              Short_t q,
              UChar_t itsClusMap,
-             Double_t pid[10],
              AliAODVertex *prodVertex,
              Bool_t usedForVtxFit,
              Bool_t usedForPrimVtxFit,
@@ -88,6 +87,7 @@ class AliAODTrack : public AliVTrack {
              UInt_t selectInfo=0,
              Float_t chi2perNDF = -999.);
 
+
   AliAODTrack(Short_t id,
              Int_t label,
              Float_t p[3],
@@ -97,7 +97,6 @@ class AliAODTrack : public AliVTrack {
              Float_t covMatrix[21],
              Short_t q,
              UChar_t itsClusMap,
-             Float_t pid[10],
              AliAODVertex *prodVertex,
              Bool_t usedForVtxFit,
              Bool_t usedForPrimVtxFit,
@@ -163,13 +162,21 @@ class AliAODTrack : public AliVTrack {
   void ConvertAliPIDtoAODPID();
   void SetDetPID(AliAODPid *aodpid) {fDetPid = aodpid;}
 
+  void     SetPIDForTracking(Int_t pid) {fPIDForTracking = pid;}
+  Int_t    GetPIDForTracking()  const   {return fPIDForTracking;}
+  Double_t GetMassForTracking() const;
+
   template <typename T> void GetPID(T *pid) const {
-    for(Int_t i=0; i<10; ++i) pid[i]=fPID[i];}
+    for(Int_t i=0; i<10; ++i) pid[i] = fPID ? fPID[i]:0;}
  
   template <typename T> void SetPID(const T *pid) {
-    if(pid) for(Int_t i=0; i<10; ++i) fPID[i]=pid[i];
-    else {  for(Int_t i=0; i<10; i++) fPID[i]=0.; fPID[AliAODTrack::kUnknown]=1.;}}
-
+    if (pid) {
+      if (!fPID) fPID = new Double32_t[10];
+      for(Int_t i=0; i<10; ++i) fPID[i]=pid[i];
+    }
+    else {delete[] fPID; fPID = 0;}
+  }
+  
   Bool_t IsOn(Int_t mask) const {return (fFlags&mask)>0;}
   ULong_t GetStatus() const { return GetFlags(); }
   ULong_t GetFlags() const { return fFlags; }
@@ -421,7 +428,7 @@ class AliAODTrack : public AliVTrack {
   
   Double32_t    fChi2perNDF;        // chi2/NDF of momentum fit
   Double32_t    fChi2MatchTrigger;  // chi2 of trigger/track matching
-  Double32_t    fPID[10];           // [0.,1.,8] pointer to PID object
+  Double32_t*   fPID;               //! [0.,1.,8] pointer to PID object
 
   ULong_t       fFlags;             // reconstruction status flags 
   Int_t         fLabel;             // track label, points back to MC track
@@ -445,6 +452,8 @@ class AliAODTrack : public AliVTrack {
   Char_t        fCharge;            // particle charge
   Char_t        fType;              // Track Type
 
+  Char_t        fPIDForTracking;    // pid using for tracking of ESD track
+
   Int_t         fCaloIndex;         // index of associated EMCAL/PHOS cluster (AliAODCaloCluster)
 
   
@@ -462,7 +471,7 @@ class AliAODTrack : public AliVTrack {
 
   const AliAODEvent* fAODEvent;     //! 
 
-  ClassDef(AliAODTrack, 22);
+  ClassDef(AliAODTrack, 23);
 };
 
 inline Bool_t  AliAODTrack::IsPrimaryCandidate() const
index c1241bf..b5e85da 100644 (file)
@@ -17,7 +17,6 @@
 
 #pragma link C++ class AliAODEvent+;
 #pragma link C++ class AliAODHeader+;
-#pragma link C++ class AliAODTrack+;
 
 #pragma read                                              \
     sourceClass="AliAODPid"                               \
     code="{newObj->SetTPCsignalN((UChar_t)onfile.fTPCsignalN); newObj->SetTPCmomentum(onfile.fTPCmomentum); for (Int_t i=0;i<6;++i) newObj->SetTRDmomentum(i,onfile.fTRDmomentum[i]);}" 
 
 #pragma link C++ class AliAODPid+;
+
+
+#pragma read sourceClass="AliAODTrack" targetClass="AliAODTrack" source="Double32_t fPID[10]"  version="[-23]" \
+ target="fPID" targetType="Double32_t*" \
+   code="{fPID = new Double32_t[10];for(Int_t isp=10;isp--;) fPID[isp]=onfile.fPID[isp];}"
+
+#pragma link C++ class AliAODTrack+;
+
 #pragma link C++ class AliAODVertex+;
 #pragma link C++ class AliAODCluster+;
 #pragma link C++ class AliAODCaloCluster+;