Completed changes needed because of previous commit
authormfloris <michele.floris@cern.ch>
Thu, 4 Sep 2014 12:04:43 +0000 (14:04 +0200)
committerhristov <Peter.Hristov@cern.ch>
Mon, 27 Oct 2014 12:50:01 +0000 (13:50 +0100)
AliAODEvent::GetTrack was changed to return AliVTrack* This required
patching several users tasks.  The most common patch consisted in
adding an explicit dynamic_cast to the GetTrack and checking for a non
null pointer.

98 files changed:
ANALYSIS/AliCentralitySelectionTask.cxx
ANALYSIS/AliEPSelectionTask.cxx
EMCAL/AliEMCALRecoUtils.cxx
JETAN/AliAnalysisTaskFastEmbedding.cxx
PWG/FLOW/Tasks/AliAnalysisTaskFlowStrange.cxx
PWG/FLOW/Tasks/AliAnalysisTaskPhiFlow.cxx
PWG/FLOW/Tasks/AliAnalysisTaskVnV0.cxx
PWG/FLOW/Tasks/AliFlowEvent.cxx
PWG/FLOW/Tasks/AliFlowEventCuts.cxx
PWG/FLOW/Tasks/AliFlowEventSimpleMaker.cxx
PWG/muon/AliAnalysisTaskCreateMixedDimuons.cxx
PWG/muon/AliAnalysisTaskDimuonCFContainerBuilder.cxx
PWG/muon/AliAnalysisTaskMuonAODCreation.cxx
PWG/muon/AliAnalysisTaskMuonAODfromGeneral.cxx
PWG/muon/AliAnalysisTaskMuonCollisionMultiplicity.cxx
PWG/muon/AliAnalysisTaskMuonDistributions.cxx
PWG/muon/AliCFMuonResUpsilon.cxx
PWGCF/Correlations/DPhi/AliAnalysisTaskContMC.cxx
PWGCF/Correlations/DPhi/AliAnalysisTaskDiHadron.cxx
PWGCF/Correlations/DPhi/AliAnalysisTaskDptDptCorrelations.cxx
PWGCF/Correlations/DPhi/AliAnalysisTaskMinijet.cxx
PWGCF/Correlations/DPhi/AliAnalysisTaskPhiCorrelations.cxx
PWGCF/Correlations/DPhi/AliDptDptInMC.cxx
PWGCF/Correlations/DPhi/DiHadronPID/AliAnalysisTaskCompareAODTrackCuts.cxx
PWGCF/Correlations/DPhi/FourierDecomposition/AliDhcTask.cxx
PWGCF/Correlations/DPhi/MuonHadron/AliAnalysisTaskDiMuonCorrelations.cxx
PWGCF/Correlations/DPhi/MuonHadron/AliAnalysisTaskMuonHadronCorrelations.cxx
PWGCF/Correlations/DPhi/PhiEffMC/AliAnalysisTaskPhiEffMc.cxx
PWGCF/Correlations/DPhi/TriggerPID/AliAnalysisTaskPIDCORR.cxx
PWGCF/EBYE/BalanceFunctions/AliAnalysisTaskBF.cxx
PWGCF/EBYE/BalanceFunctions/AliAnalysisTaskEffContBF.cxx
PWGCF/EBYE/Fluctuations/AliAnalysisTaskChargeFluctuations.cxx
PWGCF/EBYE/Fluctuations/AliEbyEHigherMomentsEffContTask.cxx
PWGCF/EBYE/Fluctuations/AliEbyEMultFluctuationTask.cxx
PWGCF/EBYE/Fluctuations/AliHigherMomentsToyModel.cxx
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoEventReaderStandard.cxx
PWGCF/FEMTOSCOPY/AliFemtoUser/AliAnalysisTaskParticleEfficiency.cxx
PWGCF/FEMTOSCOPY/Chaoticity/AliChaoticity.cxx
PWGCF/FEMTOSCOPY/Chaoticity/AliFourPion.cxx
PWGCF/FEMTOSCOPY/Chaoticity/AliThreePionRadii.cxx
PWGCF/FEMTOSCOPY/PLamAnalysis/AliAnalysisTaskProtonLambda.cxx
PWGCF/FEMTOSCOPYAOD/AliAnalysisTaskPWG2AODUpdate.cxx
PWGCF/FLOW/CME/AliAnalysisTaskCMEv2A.cxx
PWGDQ/dielectron/AliAnalysisTaskDielectronFilter.cxx
PWGGA/CaloTasks/AliAnalysisTaskCaloFilter.cxx
PWGGA/EMCALTasks/AliAnalysisTaskEMCALMesonGGSDM.cxx
PWGGA/EMCALTasks/AliAnalysisTaskEMCALMesonGGSDMpPb.cxx
PWGHF/correlationHF/AliAnalysisTaskSED0Correlations.cxx
PWGHF/correlationHF/AliAnalysisTaskSEHFCJqa.cxx
PWGHF/correlationHF/AliHFCorrelator.cxx
PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.cxx
PWGHF/hfe/AliAnalysisTaskFlowITSTPCTOFQCSP.cxx
PWGHF/hfe/AliAnalysisTaskFlowTPCEMCalQCSP.cxx
PWGHF/hfe/AliAnalysisTaskHFE.cxx
PWGHF/vertexingHF/AliAnalysisTaskSEBkgLikeSignD0.cxx
PWGHF/vertexingHF/AliAnalysisTaskSECharmFraction.cxx
PWGHF/vertexingHF/AliAnalysisTaskSED0Mass.cxx
PWGHF/vertexingHF/AliAnalysisTaskSEDStarSpectra.cxx
PWGHF/vertexingHF/AliAnalysisTaskSEHFQA.cxx
PWGHF/vertexingHF/AliAnalysisTaskSEImproveITS.cxx
PWGHF/vertexingHF/AliAnalysisTaskSESelectHF.cxx
PWGHF/vertexingHF/AliAnalysisVertexingHF.cxx
PWGJE/AliAnalysisTaskAj.cxx
PWGJE/AliAnalysisTaskFragmentationFunction.cxx
PWGJE/AliAnalysisTaskJetCorePP.cxx
PWGJE/AliAnalysisTaskJetProperties.cxx
PWGJE/AliAnalysisTaskJetServices.cxx
PWGJE/AliAnalysisTaskJetSpectrum2.cxx
PWGJE/AliAnalysisTaskJetsTM.cxx
PWGJE/AliAnalysisTaskPartonDisc.cxx
PWGJE/AliPWG4HighPtSpectra.cxx
PWGJE/AliPWG4HighPtTrackQA.cxx
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskCLQA.cxx
PWGJE/UserTasks/AliAnalysisTaskIDFFTCF.cxx
PWGJE/UserTasks/AliAnalysisTaskJetAntenna.cxx
PWGJE/UserTasks/AliAnalysisTaskJetProtonCorr.cxx
PWGJE/UserTasks/AliAnalysisTaskJetShape.cxx
PWGLF/QATasks/AliAnalysisTaskQAHighPtDeDx.cxx
PWGLF/RESONANCES/AliRsnEvent.cxx
PWGLF/RESONANCES/extra/AliXiStar.cxx
PWGLF/SPECTRA/ChargedHadrons/dNdPt/AlidNdPtAnalysisPbPbAOD.cxx
PWGLF/SPECTRA/Nuclei/B2/AliAnalysisTaskB2AOD.cxx
PWGLF/SPECTRA/PiKaPr/TestAOD/AliAnalysisTaskSpectraAOD.cxx
PWGLF/SPECTRA/PiKaPr/TestAOD/AliAnalysisTaskSpectraAllChAOD.cxx
PWGLF/SPECTRA/PiKaPr/TestAOD/AliAnalysisTaskV2AllChAOD.cxx
PWGLF/STRANGENESS/Cascades/AliAnalysisTaskCheckCascadePbPb.cxx
PWGLF/STRANGENESS/Cascades/AliAnalysisTaskCheckPerformanceCascadePbPb.cxx
PWGLF/STRANGENESS/Correlations/AliAnalysisTaskLambdaOverK0sJets.cxx
PWGLF/STRANGENESS/Correlations/AliAnalysisTaskV0ChCorrelations.cxx
PWGLF/STRANGENESS/LambdaK0PbPb/AliAnalysisTaskCTauPbPbaod.cxx
PWGPP/pid/AliAnalysisTaskK0sBayes.cxx
PWGPP/pid/AliAnalysisTaskLambdaBayes.cxx
PWGPP/pid/AliAnalysisTaskPhiBayes.cxx
PWGUD/DIFFRACTIVE/xsAndTwoProng/AliCDMesonTracks.cxx
PWGUD/UPC/AliAnalysisTaskUpcK0sK0s.cxx
PWGUD/UPC/AliAnalysisTaskUpcPsi2s.cxx
STEER/AOD/AliAODHandler.cxx
STEER/AOD/AliAODTagCreator.cxx

index 75c0e8f..ee1e960 100644 (file)
@@ -1469,7 +1469,8 @@ void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
     Short_t nTrTPCcandle = 0;
     for (Int_t iTracks = 0; iTracks < aod->GetNumberOfTracks(); iTracks++) {
 
-      AliAODTrack* track = aod->GetTrack(iTracks);
+      AliAODTrack* track = dynamic_cast<AliAODTrack*>(aod->GetTrack(iTracks));
+      if(!track) AliFatal("Not a standard AOD");
 
       if (!track) continue;
       if (!track->TestFilterBit(1<<5) && 
index cf7bd3e..0281826 100644 (file)
@@ -419,7 +419,8 @@ void AliEPSelectionTask::UserExec(Option_t */*option*/)
          }
        }
        
-       AliAODTrack* trmax = aod->GetTrack(0);
+       AliAODTrack* trmax = dynamic_cast<AliAODTrack*>(aod->GetTrack(0));
+       if(!trmax) AliFatal("Not a standard AOD");
        for (int iter = 1; iter<NT;iter++){
          AliAODTrack* track = dynamic_cast<AliAODTrack*> (tracklist->At(iter));
          if (track && (track->Pt() > trmax->Pt())) trmax = track;
@@ -883,7 +884,8 @@ TObjArray* AliEPSelectionTask::GetAODTracksAndMaxID(AliAODEvent* aod, Int_t& max
   Int_t ntpc = fESDtrackCuts->GetMinNClusterTPC(); 
   
   for (Int_t i = 0; i < aod->GetNumberOfTracks() ; i++){
-     tr = aod->GetTrack(i);
+     tr = dynamic_cast<AliAODTrack*>(aod->GetTrack(i));
+     if(!tr) AliFatal("Not a standard AOD");
      maxidtemp = tr->GetID(); 
      if(maxidtemp < 0 && fAODfilterbit != 128) continue;
      if(maxidtemp > -1 && fAODfilterbit == 128) continue;
index 7a46f16..d44a4f9 100644 (file)
@@ -1808,7 +1808,8 @@ void AliEMCALRecoUtils::FindMatches(AliVEvent *event,
     //If the input event is AOD, the starting point for extrapolation is at vertex
     //AOD tracks are selected according to its filterbit.
     else if (aodevent) {
-      aodTrack = aodevent->GetTrack(itr);
+      aodTrack = dynamic_cast<AliAODTrack*>(aodevent->GetTrack(itr));
+      if(!aodTrack) AliFatal("Not a standard AOD");
       if (!aodTrack) continue;
             
       if (fAODTPCOnlyTracks) { // Match with TPC only tracks, default from May 2013, before filter bit 32
index 46b723a..bf8b097 100644 (file)
@@ -825,7 +825,10 @@ void AliAnalysisTaskFastEmbedding::UserExec(Option_t *)
 
          for(Int_t it=0; it<nTracks; ++it){
             AliAODTrack *tmpTr = 0x0;
-            if(fEmbedMode==kAODFull)      tmpTr = fAODevent->GetTrack(it);
+            if(fEmbedMode==kAODFull)  {
+              tmpTr = dynamic_cast<AliAODTrack*>(fAODevent->GetTrack(it));
+              if(!tmpTr) AliFatal("Not a standard AOD");
+            }
             if(fEmbedMode==kAODJetTracks) tmpTr = dynamic_cast<AliAODTrack*>(leadJet->GetRefTracks()->At(it));
             if(!tmpTr) continue;
             Double_t rd=rndm->Uniform(0.,1.);
index e502a60..44646f6 100644 (file)
@@ -978,7 +978,8 @@ Int_t AliAnalysisTaskFlowStrange::GetReferenceMultiplicity() { //toberefined
   Int_t rawN = tAOD->GetNumberOfTracks();
   Int_t ref=0;
   for(Int_t id=0; id!=rawN; ++id) {
-    track = tAOD->GetTrack(id);
+    track = dynamic_cast<AliAODTrack*>(tAOD->GetTrack(id));
+    if(!track) AliFatal("Not a standard AOD");
     if(!track->TestFilterBit(fRFPFilterBit)) continue;
     ++ref;
   }
@@ -1724,7 +1725,7 @@ void AliAnalysisTaskFlowStrange::ChargeParticles(AliAODEvent *tAOD) {
     ReadStack(mcArray);
   }
   for(int i=0; i!=tAOD->GetNumberOfTracks(); ++i) {
-    AliAODTrack *t = tAOD->GetTrack( i );
+    AliAODTrack *t = dynamic_cast<AliAODTrack*>(tAOD->GetTrack( i ));
     if(!t) continue;
     if( !t->TestFilterBit(1) ) continue;
     fDecayMass=0.0; // using mass as nsigmas control plot
@@ -2271,7 +2272,8 @@ void AliAnalysisTaskFlowStrange::MakeQTPC(AliAODEvent *tAOD) {
   //=>looping
   Int_t rawN = tAOD->GetNumberOfTracks();
   for(Int_t id=0; id!=rawN; ++id) {
-    track = tAOD->GetTrack(id);
+    track = dynamic_cast<AliAODTrack*>(tAOD->GetTrack(id));
+    if(!track) AliFatal("Not a standard AOD");
     //=>cuts
     if(!track->TestFilterBit(fRFPFilterBit)) continue;
     if( fExcludeTPCEdges )
@@ -2818,7 +2820,7 @@ void AliAnalysisTaskFlowStrange::SaveVZEROResponse() {
 Int_t AliAnalysisTaskFlowStrange::RefMult(AliAODEvent *tAOD, Int_t fb) {
   Int_t found = 0;
   for(int i=0; i!=tAOD->GetNumberOfTracks(); ++i) {
-    AliAODTrack *t = tAOD->GetTrack( i );
+    AliAODTrack *t = dynamic_cast<AliAODTrack*>(tAOD->GetTrack( i ));
     if(!t) continue;
     if( !t->TestFilterBit(fb) ) continue;
     if( t->Eta()<-0.8 || t->Eta()>+0.8 ) continue;
@@ -2836,7 +2838,7 @@ Int_t AliAnalysisTaskFlowStrange::RefMultTPC() {
   if(!ev) return -1;
   Int_t found = 0;
   for(int i=0; i!=ev->GetNumberOfTracks(); ++i) {
-    AliAODTrack *t = ev->GetTrack( i );
+    AliAODTrack *t = dynamic_cast<AliAODTrack*>(ev->GetTrack( i ));
     if(!t) continue;
     if( !t->TestFilterBit(1) ) continue;
     if( t->Eta()<-0.8 || t->Eta()>+0.8 ) continue;
@@ -2854,7 +2856,7 @@ Int_t AliAnalysisTaskFlowStrange::RefMultGlobal() {
   if(!ev) return -1;
   Int_t found = 0;
   for(int i=0; i!=ev->GetNumberOfTracks(); ++i) {
-    AliAODTrack *t = ev->GetTrack( i );
+    AliAODTrack *t = dynamic_cast<AliAODTrack*>(ev->GetTrack( i ));
     if(!t) continue;
     if( !t->TestFilterBit(16) ) continue;
     if( t->Eta()<-0.8 || t->Eta()>+0.8 ) continue;
index b971d92..ef3e5ed 100644 (file)
@@ -402,14 +402,16 @@ template <typename T> Bool_t AliAnalysisTaskPhiFlow::CheckCentrality(T* event)
       Float_t multTPC(0.); // tpc mult estimate
       Float_t multGlob(0.); // global multiplicity
       for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill tpc mult
-          AliAODTrack* trackAOD = event->GetTrack(iTracks);
+          AliAODTrack* trackAOD = dynamic_cast<AliAODTrack*>(event->GetTrack(iTracks));
+          if(!trackAOD) AliFatal("Not a standard AOD");
           if (!trackAOD) continue;
           if (!(trackAOD->TestFilterBit(1))) continue;
           if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70)  || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.2)) continue;
           multTPC++;
       }
       for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill global mult
-          AliAODTrack* trackAOD = event->GetTrack(iTracks);
+          AliAODTrack* trackAOD = dynamic_cast<AliAODTrack*>(event->GetTrack(iTracks));
+          if(!trackAOD) AliFatal("Not a standard AOD");
           if (!trackAOD) continue;
           if (!(trackAOD->TestFilterBit(16))) continue;
           if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70) || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.1)) continue;
@@ -432,14 +434,16 @@ template <typename T> Bool_t AliAnalysisTaskPhiFlow::CheckCentrality(T* event)
       Float_t multTPC(0.); // tpc mult estimate
       Float_t multGlob(0.); // global multiplicity
       for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill tpc mult
-          AliAODTrack* trackAOD = event->GetTrack(iTracks);
+          AliAODTrack* trackAOD = dynamic_cast<AliAODTrack*>(event->GetTrack(iTracks));
+          if(!trackAOD) AliFatal("Not a standard AOD");
           if (!trackAOD) continue;
           if (!(trackAOD->TestFilterBit(1))) continue;
           if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70)  || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.2)) continue;
           multTPC++;
       }
       for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill global mult
-          AliAODTrack* trackAOD = event->GetTrack(iTracks);
+          AliAODTrack* trackAOD = dynamic_cast<AliAODTrack*>(event->GetTrack(iTracks));
+          if(!trackAOD) AliFatal("Not a standard AOD");
           if (!trackAOD) continue;
           if (!(trackAOD->TestFilterBit(16))) continue;
           if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70) || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.1)) continue;
@@ -722,7 +726,8 @@ void AliAnalysisTaskPhiFlow::UserExec(Option_t *)
       Int_t unp(0);
       Int_t unn(0);
       for (Int_t iTracks = 0; iTracks < unTracks; iTracks++) { // select analysis candidates
-         AliAODTrack* track = fAOD->GetTrack(iTracks);
+         AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
+         if(!track) AliFatal("Not a standard AOD");
          if (!PhiTrack(track)) continue;
          if (fQA) {
             if(track->Charge() > 0) {fEventStats->Fill(1); fPtP->Fill(track->Pt());}
@@ -951,7 +956,8 @@ void AliAnalysisTaskPhiFlow::IsMC()
    arrayMC = (TClonesArray*) fAOD->GetList()->FindObject(AliAODMCParticle::StdBranchName());
    if (!arrayMC) AliFatal("Error: MC particles branch not found!\n");
    for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++) {
-     AliAODTrack* track = fAOD->GetTrack(iTracks);
+     AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
+     if(!track) AliFatal("Not a standard AOD");
      if(!PhiTrack(track) || !IsKaon(track)) { // check for kaons
          if(fDebug>1) cout << " Rejected track" << endl;
          continue;
index 1dc29e7..c3b2d68 100644 (file)
@@ -1072,7 +1072,8 @@ void AliAnalysisTaskVnV0::Analyze(AliAODEvent* aodEvent, Float_t v0Centr)
 
     for(Int_t iT = 0; iT < nAODTracks; iT++) {
       
-      AliAODTrack* aodTrack = aodEvent->GetTrack(iT);
+      AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(iT));
+      if(!aodTrack) AliFatal("Not a standard AOD");
       
       if (!aodTrack){
        continue;
@@ -1206,7 +1207,8 @@ void AliAnalysisTaskVnV0::Analyze(AliAODEvent* aodEvent, Float_t v0Centr)
     fHKsPhiEP->Fill(fZvtx,fgPsi2v0c);                           
     //loop track and get pid
     for(Int_t iT = 0; iT < nAODTracks; iT++) { // loop on the tracks
-      AliAODTrack* aodTrack = aodEvent->GetTrack(iT);
+      AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(iT));
+      if(!aodTrack) AliFatal("Not a standard AOD");
        
       if (!aodTrack){
        continue;
@@ -2141,7 +2143,8 @@ void AliAnalysisTaskVnV0::SelectK0s(){
   // fill pion stacks
   Int_t nAODTracks = fOutputAOD->GetNumberOfTracks();
   for(Int_t iT = 0; iT < nAODTracks; iT++) { // loop on the tracks
-    AliAODTrack* aodTrack = fOutputAOD->GetTrack(iT);
+    AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(fOutputAOD->GetTrack(iT));
+    if(!aodTrack) AliFatal("Not a standard AOD");
     
     if (!aodTrack){
       continue;
@@ -2183,11 +2186,13 @@ void AliAnalysisTaskVnV0::SelectK0s(){
   }
 
   for(Int_t i=0;i < fNpiPos;i++){
-    AliAODTrack *pip = fOutputAOD->GetTrack(fIPiPos[i]);
+    AliAODTrack *pip = dynamic_cast<AliAODTrack*>(fOutputAOD->GetTrack(fIPiPos[i]));
+    if(!pip) AliFatal("Not a standard AOD");
     AliESDtrack pipE(pip);
 
     for(Int_t j=0;j < fNpiNeg;j++){
-      AliAODTrack *pin = fOutputAOD->GetTrack(fIPiNeg[j]);
+      AliAODTrack *pin = dynamic_cast<AliAODTrack*>(fOutputAOD->GetTrack(fIPiNeg[j]));
+      if(!pin) AliFatal("Not a standard AOD");
       AliESDtrack pinE(pin);
 
       Double_t xn, xp, mindist=pinE.GetDCA(&pipE,fOutputAOD->GetMagneticField(),xn,xp);
index f9a7b70..1a2e7ec 100644 (file)
@@ -334,7 +334,8 @@ AliFlowEvent::AliFlowEvent( const AliAODEvent* anInput,
   //loop over tracks
   for (Int_t itrkN=0; itrkN<iNumberOfInputTracks; itrkN++)
   {
-    AliAODTrack* pParticle = anInput->GetTrack(itrkN);   //get input particle
+    AliAODTrack* pParticle = dynamic_cast<AliAODTrack*>(anInput->GetTrack(itrkN));
+    if(!pParticle) AliFatal("Not a standard AOD");   //get input particle
 
     //check if pParticle passes the cuts
     Bool_t rpOK = kTRUE;
index 87b6054..5f2881f 100644 (file)
@@ -324,7 +324,7 @@ Bool_t AliFlowEventCuts::PassesCuts(AliVEvent *event, AliMCEvent *mcevent)
     //runnumber
     Int_t nTracks(aodevent->GetNumberOfTracks());
     for(Int_t iTracks = 0; iTracks < nTracks; iTracks++) { 
-      AliAODTrack* track = aodevent->GetTrack(iTracks);
+      AliAODTrack* track = dynamic_cast<AliAODTrack*>(aodevent->GetTrack(iTracks));
       if(!track) continue;
       if (!track || track->Pt() < .2 || track->Pt() > 5.0 || TMath::Abs(track->Eta()) > .8 || track->GetTPCNcls() < 70 || !track->GetDetPid() || track->GetDetPid()->GetTPCsignal() < 10.0)  continue;  // general quality cut
       if (track->TestFilterBit(1) && track->Chi2perNDF() > 0.2) multTPC++;
index e218a0b..651f7de 100644 (file)
@@ -35,6 +35,7 @@
 #include "AliAODTrack.h"
 #include "AliCFManager.h"
 #include "AliFlowTrackSimpleCuts.h"
+#include "assert.h"
 
 using std::endl;
 using std::cout;
@@ -270,7 +271,8 @@ AliFlowEventSimple* AliFlowEventSimpleMaker::FillTracks(AliAODEvent* anInput,  c
 
     //loop over tracks
     while (iGoodTracks < iN && itrkN < iNumberOfInputTracks) {
-      AliAODTrack* pParticle = anInput->GetTrack(itrkN);   //get input particle
+      AliAODTrack* pParticle = dynamic_cast<AliAODTrack*>(anInput->GetTrack(itrkN));
+      assert((pParticle)&&"Not a standard AOD");   //get input particle
       //make new AliFlowTrackSimple
       AliFlowTrackSimple* pTrack = new AliFlowTrackSimple();
       pTrack->SetPt(pParticle->Pt() );
@@ -718,7 +720,8 @@ AliFlowEventSimple* AliFlowEventSimpleMaker::FillTracks(AliAODEvent* anInput)
   
   //normal loop
   while (iGoodTracks < iN && itrkN < iNumberOfInputTracks) {
-    AliAODTrack* pParticle = anInput->GetTrack(itrkN);   //get input particle
+    AliAODTrack* pParticle = dynamic_cast<AliAODTrack*>(anInput->GetTrack(itrkN));
+    assert((pParticle)&&"Not a standard AOD");   //get input particle
     //cut on tracks
     if (TMath::Abs(pParticle->Eta()) < 0.9)
       {
index d61d8ec..c1dd46d 100644 (file)
@@ -131,9 +131,13 @@ void AliAnalysisTaskCreateMixedDimuons::UserExec(Option_t *) {
       
       nTracksEv[0] = fInputAOD[iEv]->GetNumberOfTracks();
       nTracksEv[1] = fInputAOD[jEv]->GetNumberOfTracks();
-      
-      for (Int_t i=0; i<nTracksEv[0]; i++) if(fInputAOD[iEv]->GetTrack(i)->IsMuonTrack()) nFWMuonsEv[0]++;
-      for (Int_t i=0; i<nTracksEv[1]; i++) if(fInputAOD[jEv]->GetTrack(i)->IsMuonTrack()) nFWMuonsEv[1]++;
+      // Check if both events contain std aod tracks
+      if (!dynamic_cast<AliAODTrack*>(fInputAOD[iEv]->GetTrack(0)) || dynamic_cast<AliAODTrack*>(fInputAOD[jEv]->GetTrack(0))){
+        AliFatal("Not a standard AOD");
+      }
+
+      for (Int_t i=0; i<nTracksEv[0]; i++) if(((AliAODTrack*)fInputAOD[iEv]->GetTrack(i))->IsMuonTrack()) nFWMuonsEv[0]++;
+      for (Int_t i=0; i<nTracksEv[1]; i++) if(((AliAODTrack*)fInputAOD[jEv]->GetTrack(i))->IsMuonTrack()) nFWMuonsEv[1]++;
       
       // Muon track mixing to fill a mass spectrum
       
@@ -157,12 +161,12 @@ void AliAnalysisTaskCreateMixedDimuons::UserExec(Option_t *) {
        // adding tracks and vertex to the output event...
        
        for (Int_t i=0; i<nTracksEv[0]; i++) {
-         if(fInputAOD[iEv]->GetTrack(i)->IsMuonTrack()) {
+         if(((AliAODTrack*)fInputAOD[iEv]->GetTrack(i))->IsMuonTrack()) {
            if (fDebug) printf("fInputAOD[%d]->GetTrack(%d) = %p    pt = %f     uniqueID = %d\n",
                               iEv,i,fInputAOD[iEv]->GetTrack(i),fInputAOD[iEv]->GetTrack(i)->Pt(),
                               fInputAOD[iEv]->GetTrack(i)->GetUniqueID());
            if (muonCounter[0]==rndMuonTrack[0]) {
-             fOutputUserAOD->AddTrack(fInputAOD[iEv]->GetTrack(i));
+             fOutputUserAOD->AddTrack((AliAODTrack*)fInputAOD[iEv]->GetTrack(i));
              nFWMUonsAdded++;
              if (fInputAOD[iEv]->GetTrack(i)->Charge()>0) nPosTracksAdded++;
              else nNegTracksAdded++;
@@ -172,12 +176,12 @@ void AliAnalysisTaskCreateMixedDimuons::UserExec(Option_t *) {
        }
        
        for (Int_t i=0; i<nTracksEv[1]; i++) {
-         if(fInputAOD[jEv]->GetTrack(i)->IsMuonTrack()) {
+         if(((AliAODTrack*)fInputAOD[jEv]->GetTrack(i))->IsMuonTrack()) {
            if (fDebug) printf("fInputAOD[%d]->GetTrack(%d) = %p    pt = %f     uniqueID = %d\n",
                               jEv,i,fInputAOD[jEv]->GetTrack(i),fInputAOD[jEv]->GetTrack(i)->Pt(),
                               fInputAOD[jEv]->GetTrack(i)->GetUniqueID());
            if (muonCounter[1]==rndMuonTrack[1]) {
-             fOutputUserAOD->AddTrack(fInputAOD[jEv]->GetTrack(i));
+             fOutputUserAOD->AddTrack((AliAODTrack*)fInputAOD[jEv]->GetTrack(i));
              nFWMUonsAdded++;
              if (fInputAOD[jEv]->GetTrack(i)->Charge()>0) nPosTracksAdded++;
              else nNegTracksAdded++;
@@ -192,7 +196,8 @@ void AliAnalysisTaskCreateMixedDimuons::UserExec(Option_t *) {
        
        if (fDebug) {
          for (Int_t i=0; i<nFWMUonsAdded; i++) {
-           AliAODTrack *tr = (AliAODTrack*) fOutputUserAOD->GetTrack(i);
+           AliAODTrack *tr = dynamic_cast<AliAODTrack*>( fOutputUserAOD->GetTrack(i));
+           if(!tr) AliFatal("Not a standard AOD");
            printf("fOutputUserAOD->GetTrack(%d) = %p    pt = %f\n",i,tr,tr->Pt());
          }
        }
index fd73682..99e6541 100644 (file)
@@ -642,7 +642,8 @@ void AliAnalysisTaskDimuonCFContainerBuilder::UserExec(Option_t *)
       ((TH1D*)(fOutput->FindObject("zvSPDcut")))->Fill(aod->GetPrimaryVertex()->GetZ());
       if (!fCutOnNContributors || (fCutOnNContributors && (aod->GetPrimaryVertex()->GetNContributors()>fNContributors[0] && aod->GetPrimaryVertex()->GetNContributors()<fNContributors[1]))){
       for (Int_t j = 0; j<ntracks; j++) {
-       AliAODTrack *mu1 = aod->GetTrack(j);
+       AliAODTrack *mu1 = dynamic_cast<AliAODTrack*>(aod->GetTrack(j));
+       if(!mu1) AliFatal("Not a standard AOD");
        if(!mu1->IsMuonTrack()) continue;
        if (mu1->Chi2perNDF()<fChi2Track[0] || mu1->Chi2perNDF()>fChi2Track[1]) continue;
        if (mu1->GetChi2MatchTrigger()<fChi2MatchTrig[0] || mu1->GetChi2MatchTrigger()>fChi2MatchTrig[1]) continue;
@@ -661,7 +662,8 @@ void AliAnalysisTaskDimuonCFContainerBuilder::UserExec(Option_t *)
        ((TH1D*)(fOutput->FindObject("ymuonREC")))->Fill(rapiditymu1);
        if(chargemu1<0){
          for (Int_t jj = 0; jj<ntracks; jj++) { 
-           AliAODTrack *mu2 = aod->GetTrack(jj);
+           AliAODTrack *mu2 = dynamic_cast<AliAODTrack*>(aod->GetTrack(jj));
+           if(!mu2) AliFatal("Not a standard AOD");
            if(!mu2->IsMuonTrack()) continue;
            if (mu2->Chi2perNDF()<fChi2Track[0] || mu2->Chi2perNDF()>fChi2Track[1]) continue;
            if (mu2->GetChi2MatchTrigger()<fChi2MatchTrig[0] || mu2->GetChi2MatchTrigger()>fChi2MatchTrig[1]) continue;
index 3e5ecda..8a7b003 100755 (executable)
@@ -116,7 +116,8 @@ void AliAnalysisTaskMuonAODCreation::UserExec(Option_t *)
   Int_t nMuons=0;
  
   for (Int_t j = 0; j<aod->GetNumberOfTracks(); j++) { 
-    AliAODTrack *track = aod->GetTrack(j);
+    AliAODTrack *track = dynamic_cast<AliAODTrack*>(aod->GetTrack(j));
+    if(!track) AliFatal("Not a standard AOD");
     ((TH1D*)(fOutput->FindObject("pt_alltracks")))->Fill(track->Pt()); 
     if(track->IsMuonTrack()) {
       nMuons++;
index 0663a67..98518ca 100644 (file)
@@ -111,9 +111,9 @@ void AliAnalysisTaskMuonAODfromGeneral::Exec(Option_t *) {
   Double_t pos[3];
   Double_t covVtx[6];
   
-    // Access to the header
-    AliAODHeader *header = dynamic_cast<AliAODHeader*>(fNewAOD->GetHeader());
-    if(!header) AliFatal("Not a standard AOD");
+  // Access to the header
+  AliAODHeader *header = dynamic_cast<AliAODHeader*>(fNewAOD->GetHeader());
+  if(!header) AliFatal("Not a standard AOD");
 
   // fill the header
   header->SetRunNumber       (fOrgAOD->GetRunNumber()       );
@@ -163,8 +163,10 @@ void AliAnalysisTaskMuonAODfromGeneral::Exec(Option_t *) {
   static int ncal=0;
   static int numtracks=0;
   for (Int_t iTrack=0; iTrack<nMuTracks; iTrack++) {
+        AliAODTrack * track = dynamic_cast<AliAODTrack*>((fOrgAOD->GetTrack(mutrNumb[iTrack])));
+        if(!track) AliFatal("Not a standard AOD");
        primary->AddDaughter(new(tracks[jTracks++])
-       AliAODTrack((*(fOrgAOD->GetTrack(mutrNumb[iTrack])))));
+       AliAODTrack((*track)));
         ncal++;
   }
   numtracks+=jTracks;
index 5cf0495..d069ab8 100644 (file)
@@ -281,17 +281,19 @@ void AliAnalysisTaskMuonCollisionMultiplicity::FillHistosAOD(Int_t triggerClass)
   
 
   // Loop on the muons tracks
-  for (Int_t ii = 0; ii < nTracks; ii++)
-    if (IsUsableMuon(fAOD->GetTrack(ii)))
+  for (Int_t ii = 0; ii < nTracks; ii++){
+    AliAODTrack * aodtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(ii));
+    if(!aodtrack) AliFatal("Not a standard AOD");
+    if (IsUsableMuon(aodtrack))
       {
-       Double_t matchTrigger = fAOD->GetTrack(ii)->GetMatchTrigger();
+       Double_t matchTrigger = aodtrack->GetMatchTrigger();
        if (matchTrigger > 1.0)
          matchTrigger = 1.0;                                            // We don't care what type of trigger it is (low or high pT)
        
-       Double_t thetaAbs = (180.0 / TMath::Pi()) * TMath::ATan(fAOD->GetTrack(ii)->GetRAtAbsorberEnd()/505.0);
-       Double_t eta = fAOD->GetTrack(ii)->Eta();
-       Double_t p = fAOD->GetTrack(ii)->P();
-       Double_t pT = fAOD->GetTrack(ii)->Pt();
+       Double_t thetaAbs = (180.0 / TMath::Pi()) * TMath::ATan(aodtrack->GetRAtAbsorberEnd()/505.0);
+       Double_t eta = aodtrack->Eta();
+       Double_t p = aodtrack->P();
+       Double_t pT = aodtrack->Pt();
        // For the p used in the pDCA, we want the mean between the p before the muon go through the absorber (p corrected) and after (p uncorrected)
        // However p uncorrected is not saved in the AODs
        // Instead we define p uncorrected as p corrected minus the mean p lost when a muon go through the absorber
@@ -299,16 +301,16 @@ void AliAnalysisTaskMuonCollisionMultiplicity::FillHistosAOD(Int_t triggerClass)
        // 2.0 < theta_abs < 3.0 ---> 2.98 GeV
        // 3.0 < theta_abs < 10.0 --->  2.4 GeV
        // No correction applied otherwise
-       Double_t pDCA = p*fAOD->GetTrack(ii)->DCA();
+       Double_t pDCA = p*aodtrack->DCA();
        if (2.0 < thetaAbs && thetaAbs < 3.0)
-         pDCA = (p-2.98/2.0) * fAOD->GetTrack(ii)->DCA();
+         pDCA = (p-2.98/2.0) * aodtrack->DCA();
        if (3.0 < thetaAbs && thetaAbs < 10.0)
-         pDCA = (p-2.4/2.0) * fAOD->GetTrack(ii)->DCA();
+         pDCA = (p-2.4/2.0) * aodtrack->DCA();
        
        Double_t valuesMuon[9] = {static_cast<Double_t>(fTrackletMultiplicity), vertexPosition, pileUp, matchTrigger, thetaAbs, eta, pDCA, static_cast<Double_t>(p), static_cast<Double_t>(pT)};
        ((THnSparseD *)fSingleMuonList->At(triggerClass))->Fill(valuesMuon);
       }
-  
+  }
   // Loop on Dimuons
   for (Int_t ii = 0; ii < nDimuons; ii++)
     if (fAOD->GetDimuon(ii)->Charge() == 0.0)
index 6381247..d021a19 100755 (executable)
@@ -228,7 +228,8 @@ void AliAnalysisTaskMuonDistributions::UserExec(Option_t *)
       ptmu1 = mu1->Pt();
       rapiditymu1 = Rapidity(emu1,pzmu1);
     } else if(strcmp(fkAnalysisType,"AOD")==0){
-      AliAODTrack *mu1 = aod->GetTrack(j);
+      AliAODTrack *mu1 = dynamic_cast<AliAODTrack*>(aod->GetTrack(j));
+      if(!mu1) AliFatal("Not a standard AOD");
       if(!mu1->IsMuonTrack()) continue;
       chargemu1 = mu1->Charge();
       pxmu1 = mu1->Px();
@@ -256,7 +257,8 @@ void AliAnalysisTaskMuonDistributions::UserExec(Option_t *)
           pzmu2 = mu2->Pz();
          emu2 = mu2->E();
         } else if(strcmp(fkAnalysisType,"AOD")==0){
-          AliAODTrack *mu2 = aod->GetTrack(jj);
+          AliAODTrack *mu2 = dynamic_cast<AliAODTrack*>(aod->GetTrack(jj));
+          if(!mu2) AliFatal("Not a standard AOD");
           if(!mu2->IsMuonTrack()) continue; 
          chargemu2 = mu2->Charge();
           pxmu2 = mu2->Px();
index 45f8b0a..78911dd 100644 (file)
@@ -592,9 +592,11 @@ if(fReadMCInfo && !flag) return;
 
                for(Int_t j=0; j<ntrk; j++) {
                        for(Int_t jj=j+1; jj<ntrk; jj++) {
-                               AliAODTrack *mu1 = fAOD->GetTrack(j);
+                               AliAODTrack *mu1 = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(j));
+                               if(!mu1) AliFatal("Not a standard AOD");
                                if(!mu1->IsMuonTrack() || !(mu1->Y()>-4 && mu1->Y()<-2.5)) continue;
-                               AliAODTrack *mu2 = fAOD->GetTrack(jj);
+                               AliAODTrack *mu2 = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(jj));
+                               if(!mu2) AliFatal("Not a standard AOD");
                                if(!mu2->IsMuonTrack() || !(mu2->Y()>-4 && mu2->Y()<-2.5)) continue;
 
                Double_t trigCondition=0;
index bfe2f95..fbe84d6 100644 (file)
@@ -145,7 +145,8 @@ void AliAnalysisTaskContMC::UserExec(Option_t *)
   //Int_t count=0;  
   //track loop
   for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++) {
-    AliAODTrack* track = fAOD->GetTrack(iTracks);
+    AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
+    if(!track) AliFatal("Not a standard AOD");
     if(!(track->TestFilterBit(32)))continue;
     if (TMath::Abs(track->Eta()) > .8 || track->Pt() < .2) continue;
     
index ac95e48..f481b7b 100644 (file)
@@ -1179,7 +1179,8 @@ Int_t AliAnalysisTaskDiHadron::TrackCutsAOD(const AliAODEvent *rAOD, Float_t *rP
   Int_t sNcls, sNclsF, sITScls;
   Short_t sCharge;
   for(int iTrack=0;iTrack<rTrack;iTrack++){
-    AliAODTrack *aodTrack=rAOD->GetTrack(iTrack);
+    AliAODTrack *aodTrack=dynamic_cast<AliAODTrack*>(rAOD->GetTrack(iTrack));
+    if(!aodTrack) AliFatal("Not a standard AOD");
     sPt=aodTrack->Pt();
     sEta=aodTrack->Eta();
     sPhi=aodTrack->Phi();
index 7a286ef..c03c7ba 100644 (file)
@@ -1196,8 +1196,9 @@ void  AliAnalysisTaskDptDptCorrelations::UserExec(Option_t */*option*/)
          if (!bitOK) continue; //128bit or 272bit
          
          Int_t gID = t->GetID();
-         newAodTrack = gID >= 0 ?t : fAODEvent->GetTrack(trackMap->GetValue(-1-gID));
-         
+         newAodTrack = gID >= 0 ?t : dynamic_cast<AliAODTrack*>(fAODEvent->GetTrack(trackMap->GetValue(-1-gID)));
+         if(!newAodTrack) AliFatal("Not a standard AOD?");
          q      = t->Charge();
          charge = int(q);
          phi    = t->Phi();
index 852ba5b..7385f45 100644 (file)
@@ -590,7 +590,8 @@ void AliAnalysisTaskMinijet::UserExec(Option_t *)
                 Bool_t useEvent = false;
                 Int_t nTracks = fAODEvent->GetNumberOfTracks();
                 for(Int_t itrack=0; itrack<nTracks; itrack++) {
-                    AliAODTrack * track = fAODEvent->GetTrack(itrack);
+                    AliAODTrack * track = dynamic_cast<AliAODTrack*>(fAODEvent->GetTrack(itrack));
+                    if(!track) AliFatal("Not a standard AOD");
                     if(TESTBIT(track->GetITSClusterMap(),2) || TESTBIT(track->GetITSClusterMap(),3) ){
                         useEvent=true;
                         break;
@@ -1220,7 +1221,8 @@ Double_t AliAnalysisTaskMinijet::ReadEventAOD( vector<Float_t> &ptArray,  vector
     Double_t nAcceptedTracks=0;
     Float_t nAcceptedTracksStrange=0;
     for (Int_t iTracks = 0; iTracks < ntracks; iTracks++) {
-        AliAODTrack *track = (AliAODTrack *)fAODEvent->GetTrack(iTracks);
+        AliAODTrack *track = dynamic_cast<AliAODTrack*>(fAODEvent->GetTrack(iTracks));
+        if(!track) AliFatal("Not a standard AOD");
         if (!track) {
             Error("ReadEventAOD", "Could not receive track %d", iTracks);
             continue;
@@ -1356,7 +1358,8 @@ Double_t AliAnalysisTaskMinijet::ReadEventAODRecMcProp( vector<Float_t> &ptArray
     
     Double_t nAcceptedTracks=0;
     for (Int_t iTracks = 0; iTracks < ntracks; iTracks++) {
-        AliAODTrack *track = (AliAODTrack *)fAODEvent->GetTrack(iTracks);
+        AliAODTrack *track = dynamic_cast<AliAODTrack*>(fAODEvent->GetTrack(iTracks));
+        if(!track) AliFatal("Not a standard AOD");
         
         AliVParticle *vtrack = fAODEvent->GetTrack(iTracks);
         
@@ -2035,7 +2038,8 @@ Bool_t AliAnalysisTaskMinijet::CheckEvent(const Bool_t recVertex)
             Int_t nAcceptedTracksTPC=0;
             Int_t nAcceptedTracksITSTPC=0;
             for (Int_t iTracks = 0; iTracks < fAODEvent->GetNumberOfTracks(); iTracks++) {
-                AliAODTrack *track = (AliAODTrack *)fAODEvent->GetTrack(iTracks);
+                AliAODTrack *track = dynamic_cast<AliAODTrack*>(fAODEvent->GetTrack(iTracks));
+                if(!track) AliFatal("Not a standard AOD");
                 if (!track) continue;
                 if(track->TestFilterBit(128) && TMath::Abs(track->Eta())<fEtaCut &&
                    track->Pt()>fPtMin && track->Pt()<fPtMax)
@@ -2061,7 +2065,8 @@ Bool_t AliAnalysisTaskMinijet::CheckEvent(const Bool_t recVertex)
             }
             Int_t nAcceptedTracks=0;
             for (Int_t iTracks = 0; iTracks < fAODEvent->GetNumberOfTracks(); iTracks++) {
-                AliAODTrack *track = (AliAODTrack *)fAODEvent->GetTrack(iTracks);
+                AliAODTrack *track = dynamic_cast<AliAODTrack*>(fAODEvent->GetTrack(iTracks));
+                if(!track) AliFatal("Not a standard AOD");
                 if (!track) continue;
                 if(track->TestFilterBit(fFilterBit) && TMath::Abs(track->Eta())<fEtaCut
                    && track->Pt()>fPtMin && track->Pt()<fPtMax) nAcceptedTracks++;
index c74e0e7..cc921f7 100644 (file)
@@ -1560,7 +1560,8 @@ TObjArray* AliAnalysisTaskPhiCorrelations::GetParticlesFromDetector(AliVEvent* i
       if(!fAOD)
        AliFatal("Muon selection only implemented on AOD");//FIXME to be implemented also for ESDs as in AliAnalyseLeadingTrackUE::GetAcceptedPArticles
       for (Int_t iTrack = 0; iTrack < fAOD->GetNumberOfTracks(); iTrack++) {
-       AliAODTrack* track = fAOD->GetTrack(iTrack);
+       AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTrack));
+       if(!track) AliFatal("Not a standard AOD");
        if (!track->IsMuonTrack()) continue;
        //Float_t dca    = track->DCA();
        //Float_t chi2   = track->Chi2perNDF();
@@ -1589,7 +1590,8 @@ Bool_t AliAnalysisTaskPhiCorrelations::IsMuEvent(){
   if(!fAOD)
     AliFatal("Muon selection only implemented on AOD");//FIXME to be implemented also for ESDs as in AliAnalyseLeadingTrackUE::GetAcceptedPArticles
   for (Int_t iTrack = 0; iTrack < fAOD->GetNumberOfTracks(); iTrack++) {
-    AliAODTrack* track = fAOD->GetTrack(iTrack);
+    AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTrack));
+    if(!track) AliFatal("Not a standard AOD");
     if (!track->IsMuonTrack()) continue;
     //Float_t dca    = track->DCA();
     //Float_t chi2   = track->Chi2perNDF();
index 4ca3f12..f4973ed 100644 (file)
@@ -1536,7 +1536,10 @@ void  AliDptDptInMC::UserExec(Option_t */*option*/)
              bitOK  = t->TestFilterBit(_trackFilterBit);
              if (!bitOK) continue;
              Int_t gID = t->GetID();
-             newAodTrack = gID >= 0 ?t : fAODEvent->GetTrack(trackMap->GetValue(-1-gID));
+             newAodTrack = gID >= 0 ?t : dynamic_cast<AliAODTrack*>(fAODEvent->GetTrack(trackMap->GetValue(-1-gID)));
+              if(!newAodTrack) {
+                AliFatal("Not a standard AOD?");
+              }
              
              q      = t->Charge();
              charge = int(q);
index 61b9e5e..81b1158 100644 (file)
@@ -200,7 +200,8 @@ void AliAnalysisTaskCompareAODTrackCuts::FillGlobalTracksArray() {
                
        for (Int_t iTrack = 0; iTrack < fCurrentAODEvent->GetNumberOfTracks(); iTrack++) {      
 
-               track = fCurrentAODEvent->GetTrack(iTrack);
+               track = dynamic_cast<AliAODTrack*>(fCurrentAODEvent->GetTrack(iTrack));
+               if(!track) AliFatal("Not a standard AOD");
         if (track->GetID()>-1) fGlobalTracksArray->AddAtAndExpand(track,track->GetID());
        }
 
@@ -303,7 +304,8 @@ void AliAnalysisTaskCompareAODTrackCuts::UserExec(Option_t*) {
        for (Int_t iTrack = 0; iTrack < fCurrentAODEvent->GetNumberOfTracks(); iTrack++) {
 
                // Get the Current Track.
-               fCurrentAODTrack = (AliAODTrack*)fCurrentAODEvent->GetTrack(iTrack);
+               fCurrentAODTrack = dynamic_cast<AliAODTrack*>(fCurrentAODEvent->GetTrack(iTrack));
+               if(!fCurrentAODTrack) AliFatal("Not a standard AOD");
                if (!fCurrentAODTrack) {
                        cout<<"AliAnalysisTaskCompareAODTrackCuts::UserExec -> AOD Track not found."<<endl;
                        continue;
index 91d0417..f5b20e2 100644 (file)
@@ -753,7 +753,8 @@ void AliDhcTask::GetAODTracks(MiniEvent* miniEvt)
 
     // Loop 1.
     for (Int_t i = 0; i < nTrax; ++i) {
-      AliAODTrack* aodtrack = fAOD->GetTrack(i);
+      AliAODTrack* aodtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(i));
+      if(!aodtrack) AliFatal("Not a standard AOD");
       if (!aodtrack) {
         AliError(Form("Couldn't get AOD track %d\n", i));
         continue;
@@ -778,7 +779,8 @@ void AliDhcTask::GetAODTracks(MiniEvent* miniEvt)
   
     // Loop 2.  
     for (Int_t i = 0; i < nTrax; ++i) {
-      AliAODTrack* aodtrack = fAOD->GetTrack(i);
+      AliAODTrack* aodtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(i));
+      if(!aodtrack) AliFatal("Not a standard AOD");
       if (!aodtrack) {
         AliError(Form("Couldn't get AOD track %d\n", i));
         continue;
@@ -845,7 +847,8 @@ void AliDhcTask::GetAODTracks(MiniEvent* miniEvt)
     // count good muons
     Int_t nGoodMuons = 0;
     for (Int_t iMu = 0; iMu<fAOD->GetNumberOfTracks(); iMu++) {
-      AliAODTrack* muonTrack = fAOD->GetTrack(iMu);
+      AliAODTrack* muonTrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iMu));
+      if(!muonTrack) AliFatal("Not a standard AOD");
       if (muonTrack) {
         if (!IsGoodMUONtrack(*muonTrack))
           continue;
@@ -858,7 +861,8 @@ void AliDhcTask::GetAODTracks(MiniEvent* miniEvt)
     miniEvt->reserve(miniEvt->size()+nGoodMuons);
     // fill them into the mini event
     for (Int_t iMu = 0; iMu<fAOD->GetNumberOfTracks(); iMu++) {
-      AliAODTrack* muonTrack = fAOD->GetTrack(iMu);
+      AliAODTrack* muonTrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iMu));
+      if(!muonTrack) AliFatal("Not a standard AOD");
       if (muonTrack) {
         if (!IsGoodMUONtrack(*muonTrack)) 
           continue;
index f0832b8..6b5e886 100644 (file)
@@ -428,7 +428,8 @@ TObjArray* AliAnalysisTaskDiMuonCorrelations::GetAcceptedTracksMuonArm(AliAODEve
   AliAODTrack *track = 0;
   
   for (Int_t iTrack=0; iTrack<nTracks; iTrack++) {
-    track = aodEvent->GetTrack(iTrack);
+    track = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(iTrack));
+    if(!track) AliFatal("Not a standard AOD");
     if (track->IsMuonTrack() && track->GetMatchTrigger()>=fTriggerMatchLevelMuon) {
       if (track->Chi2perNDF() < fMaxChi2Muon) {
        if (track->Eta() > fMinEtaMuon && track->Eta() < fMaxEtaMuon) {
index bee7237..62b0bd0 100644 (file)
@@ -461,7 +461,8 @@ TObjArray* AliAnalysisTaskMuonHadronCorrelations::GetAcceptedTracksCentralBarrel
   AliAODTrack *track = 0;
 
   for (Int_t iTrack=0; iTrack<nTracks; iTrack++) {
-    track = aodEvent->GetTrack(iTrack);
+    track = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(iTrack));
+    if(!track) AliFatal("Not a standard AOD");
     if (track->TestFilterBit(fFilterBitCentralBarrel) && track->Eta()>fMinEtaCentralBarrel && track->Eta()<fMaxEtaCentralBarrel) {
       tracks->Add(new AliAODTrack(*track));
     }
@@ -485,7 +486,8 @@ TObjArray* AliAnalysisTaskMuonHadronCorrelations::GetAcceptedTracksMuonArm(AliAO
   AliAODTrack *track = 0;
   
   for (Int_t iTrack=0; iTrack<nTracks; iTrack++) {
-    track = aodEvent->GetTrack(iTrack);
+    track = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(iTrack));
+    if(!track) AliFatal("Not a standard AOD");
     if (track->IsMuonTrack()) fHistSingleMuonsTrigMatch[centBin]->Fill(track->GetMatchTrigger());
     if (track->IsMuonTrack() && track->GetMatchTrigger()>=fTriggerMatchLevelMuon) {
       fHistSingleMuonsChi2[centBin]->Fill(track->Chi2perNDF());
index a9c74e8..4ea17f1 100644 (file)
@@ -327,7 +327,8 @@ void AliAnalysisTaskPhiEffMc::UserExec(Option_t *)
 
   //track loop
   for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++) {
-    AliAODTrack* track = fAOD->GetTrack(iTracks);
+    AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
+    if(!track) AliFatal("Not a standard AOD");
     if (!fTrackCuts->IsSelected(track,kTRUE)) continue;
     if(track->Charge()==0) continue;
     if(track->Pt()<fPtCut) continue;
index ad5c998..4d026e0 100644 (file)
@@ -448,7 +448,8 @@ void AliAnalysisTaskPIDCORR::FillGlobalTracksArray() {
                
        for (Int_t iTrack = 0; iTrack < fAOD->GetNumberOfTracks(); iTrack++) {
                
-               track = fAOD->GetTrack(iTrack);
+               track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTrack));
+               if(!track) AliFatal("Not a standard AOD");
                
                // I.e., if it does NOT pass the filtermask.
                if (!(track->TestFilterMask(1<<7))) {
@@ -548,7 +549,8 @@ Double_t TriggerPt=TriggerPtMin;
   // Track loop to fill a pT spectrum
   for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++)
         {
-    AliAODTrack* track = fAOD->GetTrack(iTracks);
+    AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
+    if(!track) AliFatal("Not a standard AOD");
     if (!track) {
       //printf("ERROR: Could not receive track %d\n", iTracks);
       continue;
@@ -846,7 +848,8 @@ TObjArray *AliAnalysisTaskPIDCORR::AcceptTracksforMixing(AliAODEvent *inputEvent
 
        for (Int_t iTrack=0; iTrack<nTracks; ++iTrack)
 {
-       AliAODTrack* track = inputEvent->GetTrack(iTrack);
+       AliAODTrack* track = dynamic_cast<AliAODTrack*>(inputEvent->GetTrack(iTrack));
+       if(!track) AliFatal("Not a standard AOD");
        
        Int_t trackclass=ClassifyTrack(track);
        if (trackclass==1)
index c6dda4d..139b313 100755 (executable)
@@ -773,7 +773,8 @@ void AliAnalysisTaskBF::UserExec(Option_t *) {
                    if(!aodTrack->TestFilterBit(fAODtrackCutBit)) continue;
 
                    Int_t gID = aodTrack->GetID();
-                   newAodTrack = gID >= 0 ? aodTrack : gAOD->GetTrack(trackMap->GetValue(-1-gID));
+                   newAodTrack = gID >= 0 ? aodTrack : dynamic_cast<AliAODTrack*>(gAOD->GetTrack(trackMap->GetValue(-1-gID)));
+                    if(!newAodTrack) AliFatal("Not a standard AOD");
                    //Printf("Label: %d - Pt: %lf (old) - %d - Pt: %lf(new)",gID,aodTrack->Pt(), newAodTrack->GetID(), newAodTrack->Pt());
                     //===========================================//
 
index e480caa..9ea3f58 100644 (file)
@@ -428,7 +428,8 @@ void AliAnalysisTaskEffContBF::UserExec(Option_t *) {
              TArrayI labelMCArray(nMCParticles);
              
              for(Int_t jTracks = 0; jTracks < nGoodAODTracks; jTracks++) {
-               AliAODTrack* track = fAOD->GetTrack(jTracks);
+               AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(jTracks));
+               if(!track) AliFatal("Not a standard AOD");
                if(!track) continue;
                
                if (!track->TestFilterBit(fAODTrackCutBit))
@@ -564,7 +565,7 @@ void AliAnalysisTaskEffContBF::UserExec(Option_t *) {
              Int_t labelCounter = 0;
              
              for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
-               AliAODTrack *trackAOD = static_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));    
+               AliAODTrack *trackAOD = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));    
                if(!trackAOD) continue;
                
                //track cuts
index e45f87d..de8573a 100755 (executable)
@@ -143,7 +143,8 @@ void AliAnalysisTaskChargeFluctuations::UserExec(Option_t *) {
 
     Printf("There are %d tracks in this event", gAOD->GetNumberOfTracks());
     for (Int_t iTracks = 0; iTracks < gAOD->GetNumberOfTracks(); iTracks++) {
-      AliAODTrack* track = gAOD->GetTrack(iTracks);
+      AliAODTrack* track = dynamic_cast<AliAODTrack*>(gAOD->GetTrack(iTracks));
+      if(!track) AliFatal("Not a standard AOD");
       if (!track) {
        Printf("ERROR: Could not receive track %d", iTracks);
        continue;
index f44d3f9..ba2aad2 100644 (file)
@@ -481,7 +481,8 @@ void AliEbyEHigherMomentsEffContTask::doAODEvent(){
       Int_t gID = aodTrack1->GetID();
       
       //if( aodTrack->GetID() != (-aodTrack1->GetID() -1) ) continue;
-      newAodTrack = gID >= 0 ? aodTrack1 : fAOD->GetTrack(trackMap->GetValue(-1-gID)); //Take those global track who corresponds to TPC only track
+      newAodTrack = gID >= 0 ? aodTrack1 : dynamic_cast<AliAODTrack*>(fAOD->GetTrack(trackMap->GetValue(-1-gID))); //Take those global track who corresponds to TPC only track
+      if(!newAodTrack) AliFatal("Not a standard AOD");
       
       Float_t dxy = 0., dz = 0.;
       
@@ -715,7 +716,8 @@ void AliEbyEHigherMomentsEffContTask::doMCAODEvent(){
     
     //if( aodTrack->GetID() != (-aodTrack1->GetID() -1) ) continue;
     
-    newAodTrack = gID >= 0 ? aodTrack1 : fAOD->GetTrack(trackMap->GetValue(-1-gID)); //Take those global track who corresponds to TPC only track
+    newAodTrack = gID >= 0 ? aodTrack1 : dynamic_cast<AliAODTrack*>(fAOD->GetTrack(trackMap->GetValue(-1-gID))); //Take those global track who corresponds to TPC only track
+    if(!newAodTrack) AliFatal("Not a standard AOD");
     
     Float_t dxy = 0., dz = 0.;
     
@@ -939,7 +941,8 @@ void AliEbyEHigherMomentsEffContTask::FillEffSparse(){
          
          if(fAOD)
            
-           aodTrack = fAOD->GetTrack(iRec);
+           aodTrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iRec));
+           if(!aodTrack) AliFatal("Not a standard AOD");
          
          if(aodTrack){
            
index aaae655..acaae90 100644 (file)
@@ -360,7 +360,8 @@ Double_t Mult=0.0;
 
  
   for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++) {
-  AliAODTrack*  track = fAOD->GetTrack(iTracks);
+  AliAODTrack*  track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
+  if(!track) AliFatal("Not a standard AOD");
     if (!track) {
       printf("ERROR: Could not receive track %d\n", iTracks);
       continue;
index fc92bdd..eba0d08 100644 (file)
@@ -415,7 +415,8 @@ void AliHigherMomentsToyModel::doAODEvent(){
       Int_t gID = aodTrack1->GetID();
       
       //if( aodTrack->GetID() != (-aodTrack1->GetID() -1) ) continue;
-      newAodTrack = gID >= 0 ? aodTrack1 : fAOD->GetTrack(trackMap->GetValue(-1-gID)); //Take those global track who corresponds to TPC only track
+      newAodTrack = gID >= 0 ? aodTrack1 : dynamic_cast<AliAODTrack*>(fAOD->GetTrack(trackMap->GetValue(-1-gID))); //Take those global track who corresponds to TPC only track
+      if(!newAodTrack) AliFatal("Not a standard AOD");
       
       Float_t dxy = 0., dz = 0.;
       
@@ -640,7 +641,8 @@ void AliHigherMomentsToyModel::doMCAODEvent(){
     
     //if( aodTrack->GetID() != (-aodTrack1->GetID() -1) ) continue;
     
-    newAodTrack = gID >= 0 ? aodTrack1 : fAOD->GetTrack(trackMap->GetValue(-1-gID)); //Take those global track who corresponds to TPC only track
+    newAodTrack = gID >= 0 ? aodTrack1 : dynamic_cast<AliAODTrack*>(fAOD->GetTrack(trackMap->GetValue(-1-gID))); //Take those global track who corresponds to TPC only track
+    if(!newAodTrack) AliFatal("Not a standard AOD");
     
   
     //cout << dxy << endl;
index cf8a4db..9df2710 100644 (file)
@@ -573,7 +573,8 @@ AliFemtoEvent* AliFemtoEventReaderStandard::ReturnHbtEvent()
 
       if ((fInputType == kAOD) || (fInputType == kAODKine)) {
        // Read in the normal AliAODTracks 
-       const AliAODTrack *aodtrack=fAODEvent->GetTrack(i); // getting the AODtrack directly
+       const AliAODTrack *aodtrack=dynamic_cast<const AliAODTrack*>(fAODEvent->GetTrack(i));
+        assert(aodtrack&&"Not a standard AOD"); // getting the AODtrack directly
        
        //      if (!aodtrack->TestFilterBit(fFilterBit))
        //        continue;
index dabeed7..2d1c0a9 100644 (file)
@@ -511,7 +511,8 @@ void AliAnalysisTaskParticleEfficiency::UserExec(Option_t *)
 
   // looking for global tracks and saving their numbers to copy from them PID information to TPC-only tracks in the main loop over tracks
   for (int i=0;i<aodEvent->GetNumberOfTracks();i++) {
-    const AliAODTrack *aodtrack=aodEvent->GetTrack(i);
+    const AliAODTrack *aodtrack=dynamic_cast<const AliAODTrack*>(aodEvent->GetTrack(i));
+    if(!aodtrack) AliFatal("Not a standard AOD");
     if (!aodtrack->TestFilterBit(128)) {
       if(aodtrack->GetID() < 0) continue;
       labels[aodtrack->GetID()] = i;
@@ -528,7 +529,8 @@ void AliAnalysisTaskParticleEfficiency::UserExec(Option_t *)
     //get track 
     
     //AliESDtrack* track = AliESDtrackCuts::GetTPCOnlyTrack(const_cast<AliESDEvent*>(esdEvent),iTracks);
-    AliAODTrack *track = aodEvent->GetTrack(iTracks); 
+    AliAODTrack *track = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(iTracks));
+    if(!track) AliFatal("Not a standard AOD"); 
     if (!track)continue;
     fHistQA[10]->Fill(2);
 
@@ -616,8 +618,10 @@ void AliAnalysisTaskParticleEfficiency::UserExec(Option_t *)
     AliAODTrack* aodtrackpid;
 
     //for FB 128 - tpc only tracks
-    if(filterBit==(1 << (7)))
-      aodtrackpid = aodEvent->GetTrack(labels[-1-aodEvent->GetTrack(iTracks)->GetID()]);
+    if(filterBit==(1 << (7))) {
+      aodtrackpid = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(labels[-1-aodEvent->GetTrack(iTracks)->GetID()]));
+      if(!aodtrackpid) AliFatal("Not a standard AOD");
+    }
     else
       aodtrackpid = track;
 
index 7a0d330..7419f30 100644 (file)
@@ -1510,7 +1510,8 @@ void AliChaoticity::Exec(Option_t *)
 
     // Track loop
     for (Int_t i = 0; i < fAOD->GetNumberOfTracks(); i++) {
-      AliAODTrack* aodtrack = fAOD->GetTrack(randomIndex[i]);
+      AliAODTrack* aodtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(randomIndex[i]));
+      if(!aodtrack) AliFatal("Not a standard AOD");
       if (!aodtrack) continue;
       if(myTracks >= fMultLimit) {cout<<"More tracks than Track Limit"<<endl; return;}
     
@@ -1522,7 +1523,8 @@ void AliChaoticity::Exec(Option_t *)
       if(fFilterBit != 7){
        Bool_t goodTrackOtherFB = kFALSE;
        for (Int_t j = 0; j < fAOD->GetNumberOfTracks(); j++) {
-         AliAODTrack* aodtrack2 = fAOD->GetTrack(randomIndex[j]);
+         AliAODTrack* aodtrack2 = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(randomIndex[j]));
+         if(!aodtrack2) AliFatal("Not a standard AOD");
          if(!aodtrack2) continue;
          if(!aodtrack2->TestFilterBit(BIT(fFilterBit))) continue;
          
@@ -1606,7 +1608,8 @@ void AliChaoticity::Exec(Option_t *)
       }else {// FilterBit 7 PID workaround
       */
        for(Int_t j = 0; j < fAOD->GetNumberOfTracks(); j++) {
-         AliAODTrack* aodTrack2 = fAOD->GetTrack(j);
+         AliAODTrack* aodTrack2 = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(j));
+         if(!aodTrack2) AliFatal("Not a standard AOD");
          if (!aodTrack2) continue;
          if(aodtrack->GetID() != (-aodTrack2->GetID() - 1)) continue;// (-aodTrack2->GetID() - 1)
          
index c031bbb..dca1b3a 100755 (executable)
@@ -1759,7 +1759,8 @@ void AliFourPion::UserExec(Option_t *)
    
     // Track loop
     for (Int_t i = 0; i < fAOD->GetNumberOfTracks(); i++) {
-      AliAODTrack* aodtrack = fAOD->GetTrack(randomIndex[i]);
+      AliAODTrack* aodtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(randomIndex[i]));
+      if(!aodtrack) AliFatal("Not a standard AOD");
       if (!aodtrack) continue;
       if(myTracks >= fMultLimit) {cout<<"More tracks than Track Limit"<<endl; return;}
     
@@ -1774,7 +1775,8 @@ void AliFourPion::UserExec(Option_t *)
       if(fFilterBit != 7){
        Bool_t goodTrackOtherFB = kFALSE;
        for (Int_t j = 0; j < fAOD->GetNumberOfTracks(); j++) {
-         AliAODTrack* aodtrack2 = fAOD->GetTrack(randomIndex[j]);
+         AliAODTrack* aodtrack2 = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(randomIndex[j]));
+         if(!aodtrack2) AliFatal("Not a standard AOD");
          if(!aodtrack2) continue;
          if(!aodtrack2->TestFilterBit(BIT(fFilterBit))) continue;
          
@@ -1862,7 +1864,8 @@ void AliFourPion::UserExec(Option_t *)
       }else {// FilterBit 7 PID workaround
        
        for(Int_t j = 0; j < fAOD->GetNumberOfTracks(); j++) {
-         AliAODTrack* aodTrack2 = fAOD->GetTrack(j);
+         AliAODTrack* aodTrack2 = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(j));
+         if(!aodTrack2) AliFatal("Not a standard AOD");
          if (!aodTrack2) continue;
          if(aodtrack->GetID() != (-aodTrack2->GetID() - 1)) continue;// (-aodTrack2->GetID() - 1)
          
index d9fcd20..72fcdee 100644 (file)
@@ -1219,7 +1219,8 @@ void AliThreePionRadii::UserExec(Option_t *)
     ((TH3F*)fOutputList->FindObject("fVertexDist"))->Fill(vertex[0], vertex[1], vertex[2]);
     
     for (Int_t i = 0; i < fAOD->GetNumberOfTracks(); i++) {
-      AliAODTrack* aodtrack = fAOD->GetTrack(i);
+      AliAODTrack* aodtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(i));
+      if(!aodtrack) AliFatal("Not a standard AOD");
       if (!aodtrack) continue;
       AODTracks++;
       if(!aodtrack->TestFilterBit(BIT(fFilterBit))) continue;// AOD filterBit cut
@@ -1255,7 +1256,8 @@ void AliThreePionRadii::UserExec(Option_t *)
   
     // Track loop
     for (Int_t i = 0; i < fAOD->GetNumberOfTracks(); i++) {
-      AliAODTrack* aodtrack = fAOD->GetTrack(randomIndex[i]);
+      AliAODTrack* aodtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(randomIndex[i]));
+      if(!aodtrack) AliFatal("Not a standard AOD");
       if (!aodtrack) continue;
       if(myTracks >= fMultLimit) {cout<<"More tracks than Track Limit"<<endl; return;}
       
@@ -1270,7 +1272,8 @@ void AliThreePionRadii::UserExec(Option_t *)
        if(fMCcase && fAOD->GetRunNumber()<=126437) goodTrackOtherFB=kTRUE;// FB7 to FB5 mapping in 10f6a MC does not work
        
        for (Int_t j = 0; j < fAOD->GetNumberOfTracks(); j++) {
-         AliAODTrack* aodtrack2 = fAOD->GetTrack(randomIndex[j]);
+         AliAODTrack* aodtrack2 = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(randomIndex[j]));
+         if(!aodtrack2) AliFatal("Not a standard AOD");
          if(!aodtrack2) continue;
          if(!aodtrack2->TestFilterBit(BIT(fFilterBit))) continue;
          
@@ -1359,7 +1362,8 @@ void AliThreePionRadii::UserExec(Option_t *)
       }else {// FilterBit 7 PID workaround
        
        for(Int_t j = 0; j < fAOD->GetNumberOfTracks(); j++) {
-         AliAODTrack* aodTrack2 = fAOD->GetTrack(j);
+         AliAODTrack* aodTrack2 = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(j));
+         if(!aodTrack2) AliFatal("Not a standard AOD");
          if (!aodTrack2) continue;
          if(aodtrack->GetID() != (-aodTrack2->GetID() - 1)) continue;// (-aodTrack2->GetID() - 1)
          
index 5c39b12..4d1a837 100644 (file)
@@ -1332,7 +1332,8 @@ void AliAnalysisTaskProtonLambda::UserExec(Option_t *)
   // ..and set it
   AliAODTrack *track=NULL;
   for (Int_t iTrack=0;iTrack<fAOD->GetNumberOfTracks();iTrack++){
-    track = fAOD->GetTrack(iTrack);
+    track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTrack));
+    if(!track) AliFatal("Not a standard AOD");
     if (!track) continue;
     
     // Store the reference of the global tracks
@@ -1388,7 +1389,8 @@ void AliAnalysisTaskProtonLambda::UserExec(Option_t *)
 
   // Loop over primary tracks
   for (Int_t iTrack=0;iTrack<fAOD->GetNumberOfTracks();iTrack++){
-    track = fAOD->GetTrack(iTrack);
+    track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTrack));
+    if(!track) AliFatal("Not a standard AOD");
     if (!track) continue;
     
     if(!track->TestFilterBit(128))
index 84927c6..d5e143e 100644 (file)
@@ -118,7 +118,8 @@ void AliAnalysisTaskPWG2AODUpdate::UserExec(Option_t */*option*/)
     
   // Loop over AOD tracks
   for (Int_t nTrack = 0; nTrack < nTracks; ++nTrack) {
-    AliAODTrack *aodTrack = fAOD->GetTrack(nTrack);
+    AliAODTrack *aodTrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(nTrack));
+    if(!aodTrack) AliFatal("Not a standard AOD");
     Short_t trackId = aodTrack->GetID();
 
     // Get the corresponding ESD track
index 6bbf5ca..20283eb 100644 (file)
@@ -2058,7 +2058,8 @@ void AliAnalysisTaskCMEv2A::UserExec(Option_t *)
   TExMap *trackMap = new TExMap();
   for(int itrk=0; itrk<d_ntrk; itrk++)
     {
-      AliAODTrack *track = fAOD->GetTrack(itrk);
+      AliAODTrack *track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(itrk));
+      if(!track) AliFatal("Not a standard AOD");
       if(!track)
        {
          if(debug>0) cout<<"ERROR: Could not retrieve AODtrack "<<itrk<<endl;
@@ -2089,7 +2090,8 @@ void AliAnalysisTaskCMEv2A::UserExec(Option_t *)
   // --- main track loop
   for(int itrk = 0; itrk<d_ntrk; itrk++)
     {
-      AliAODTrack *track = fAOD->GetTrack(itrk);
+      AliAODTrack *track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(itrk));
+      if(!track) AliFatal("Not a standard AOD");
       if(!track)
        {
          if(debug>0) cout<<"ERROR: Could not retrieve AODtrack "<<itrk<<endl;
@@ -2106,7 +2108,10 @@ void AliAnalysisTaskCMEv2A::UserExec(Option_t *)
       int gid = track->GetID();
       AliAODTrack *PIDtrack;
       if(gid>=0) PIDtrack = track;
-      else PIDtrack = fAOD->GetTrack(trackMap->GetValue(-1-gid));
+      else {
+        PIDtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(trackMap->GetValue(-1-gid)));
+        if(!PIDtrack) AliFatal("Not a standard AOD");
+      }
 
 
       // if(debug>15)
@@ -2834,7 +2839,8 @@ void AliAnalysisTaskCMEv2A::UserExec(Option_t *)
 
   for(int itrk = 0; itrk<d_ntrk; itrk++)
     {
-      AliAODTrack *track = fAOD->GetTrack(itrk);
+      AliAODTrack *track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(itrk));
+      if(!track) AliFatal("Not a standard AOD");
       if(!track)
        {
          if(debug>0) cout<<"ERROR: Could not retrieve AODtrack "<<itrk<<endl;
index 8d9b7ab..59cd123 100644 (file)
@@ -355,7 +355,9 @@ void AliAnalysisTaskDielectronFilter::UserExec(Option_t *)
          nanoEv->GetCaloCluster(posCaloCls)->AddTrackMatched((AliAODTrack*)nanoEv->GetTrack(posit)); 
          }
          // set references for vtx
-         nanoEv->GetTrack(posit)->SetProdVertex(nanoEv->GetVertex(posVtx));
+         AliAODTrack * trk = dynamic_cast<AliAODTrack*>(nanoEv->GetTrack(posit));
+         if(!trk) AliFatal("Not a standard AOD");
+         trk->SetProdVertex(nanoEv->GetVertex(posVtx));
          }
 
          for(int kj=0; kj<(fDielectron->GetTrackArray(1))->GetEntries(); kj++){
@@ -375,7 +377,9 @@ void AliAnalysisTaskDielectronFilter::UserExec(Option_t *)
          for(int u=0; u<clCls->GetNTracksMatched(); u++) clCls->RemoveTrackMatched(clCls->GetTrackMatched(u));
          nanoEv->GetCaloCluster(negCaloCls)->AddTrackMatched((AliAODTrack*)nanoEv->GetTrack(negat));
          }
-         nanoEv->GetTrack(negat)->SetProdVertex(nanoEv->GetVertex(negVtx)); 
+         AliAODTrack * trk = dynamic_cast<AliAODTrack*>(nanoEv->GetTrack(negat));
+         if(!trk) AliFatal("Not a standard AOD");
+         trk->SetProdVertex(nanoEv->GetVertex(negVtx)); 
          }  
         delete tmp; delete tmpSpd; 
         nanoEv->GetTracks()->Expand(nTracks); 
index cadc787..3c6c81b 100644 (file)
@@ -727,7 +727,8 @@ void AliAnalysisTaskCaloFilter::FillAODTracks()
     Int_t nCopyTrack = 0;
     for (Int_t nTrack = 0; nTrack < fAODEvent->GetNumberOfTracks(); ++nTrack) 
     {
-      AliAODTrack *track = fAODEvent->GetTrack(nTrack);
+      AliAODTrack *track = dynamic_cast<AliAODTrack*>(fAODEvent->GetTrack(nTrack));
+      if(!track) AliFatal("Not a standard AOD");
       
       // Select only hybrid tracks?
       if(fFillHybridTracks && !track->IsHybridGlobalConstrainedGlobal()) continue;
index f3c5219..a49bc59 100644 (file)
@@ -1546,7 +1546,8 @@ void AliAnalysisTaskEMCALMesonGGSDM::UserExec(Option_t *)
 
        // _______________Track loop for reconstructed event_____________
        for(Int_t itrk = 0; itrk < fAodEv->GetNumberOfTracks(); itrk++) {
-         AliAODTrack* aodTrack = fAodEv->GetTrack(itrk); // pointer to reconstructed to track
+         AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(fAodEv->GetTrack(itrk));
+         if(!aodTrack) AliFatal("Not a standard AOD"); // pointer to reconstructed to track
          if(!aodTrack) { 
            AliError(Form("ERROR: Could not retrieve any (AOD) track %d",itrk)); 
            continue; 
index e81a10c..f63d79b 100644 (file)
@@ -1183,7 +1183,8 @@ void AliAnalysisTaskEMCALMesonGGSDMpPb::UserExec(Option_t *)
 
        // _______________Track loop for reconstructed event_____________
        for(Int_t itrk = 0; itrk < fAodEv->GetNumberOfTracks(); itrk++) {
-         AliAODTrack* aodTrack = fAodEv->GetTrack(itrk); // pointer to reconstructed to track
+         AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(fAodEv->GetTrack(itrk));
+         if(!aodTrack) AliFatal("Not a standard AOD"); // pointer to reconstructed to track
          if(!aodTrack) { 
            AliError(Form("ERROR: Could not retrieve any (AOD) track %d",itrk)); 
            continue; 
index 50e0a69..0cea99f 100644 (file)
@@ -610,7 +610,8 @@ void AliAnalysisTaskSED0Correlations::UserExec(Option_t */*option*/)
     if (aod) ntracks = aod->GetNumberOfTracks();
     for(Int_t itrack=0; itrack<ntracks; itrack++) { // loop on tacks
       //    ... get the track
-      AliAODTrack * track = aod->GetTrack(itrack);
+      AliAODTrack * track = dynamic_cast<AliAODTrack*>(aod->GetTrack(itrack));
+      if(!track) AliFatal("Not a standard AOD");
       if(TESTBIT(track->GetITSClusterMap(),2) || TESTBIT(track->GetITSClusterMap(),3) ){
        skipEvent=kTRUE;
        fNentries->Fill(16);
@@ -669,7 +670,8 @@ void AliAnalysisTaskSED0Correlations::UserExec(Option_t */*option*/)
     }
 
     for(Int_t itrack=0; itrack<aod->GetNumberOfTracks(); itrack++) { // loop on tacks
-      AliAODTrack * track = aod->GetTrack(itrack);
+      AliAODTrack * track = dynamic_cast<AliAODTrack*>(aod->GetTrack(itrack));
+      if(!track) AliFatal("Not a standard AOD");
       //rejection of tracks
       if(track->GetID() < 0) continue; //discard negative ID tracks
       if(track->Pt() < fPtThreshLow.at(0) || track->Pt() > fPtThreshUp.at(0)) continue; //discard tracks outside pt range for hadrons/K
index 5e1af69..41472ba 100644 (file)
@@ -398,7 +398,8 @@ void AliAnalysisTaskSEHFCJqa::UserExec(Option_t */*option*/){
   // Looping over aod tracks
   for(Int_t j=0;j<aod->GetNumberOfTracks();j++){
 
-    AliAODTrack *aodtrack=aod->GetTrack(j);
+    AliAODTrack *aodtrack=dynamic_cast<AliAODTrack*>(aod->GetTrack(j));
+    if(!aodtrack) AliFatal("Not a standard AOD");
     // CHECK FILTER MAPS
     if(!FillTrackHistosAndSelectTrack(aodtrack,&vESD,magfield))continue;
     //    if(j%100==0)  
index 5881603..56c2d05 100644 (file)
@@ -415,7 +415,7 @@ TObjArray*  AliHFCorrelator::AcceptAndReduceTracks(AliAODEvent* inputEvent){
   // use reconstruction
   if(fUseReco){
     for (Int_t iTrack=0; iTrack<nTracks; ++iTrack) {
-      AliAODTrack* track = inputEvent->GetTrack(iTrack);
+      AliAODTrack* track = dynamic_cast<AliAODTrack*>(inputEvent->GetTrack(iTrack));
       if (!track) continue;
       if(!fhadcuts->IsHadronSelected(track,&vESD,Bz)) continue; // apply ESD level selections
       if(!fhadcuts->Charge(fDCharge,track)) continue; // apply selection on charge, if required
index 026042b..f3c4a6f 100644 (file)
@@ -2480,7 +2480,8 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *)
                if(fIsAOD){     
                                //AOD test -- Francesco suggestion
                                //aod test -- Francesco suggestion
-                       AliAODTrack *aod_track=fAOD->GetTrack(iTracks);
+                       AliAODTrack *aod_track=dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
+                       if(!aod_track) AliFatal("Not a standard AOD");
 
                        Int_t type=aod_track->GetType();
                        if(type==AliAODTrack::kPrimary) fPtPrim->Fill(aod_track->Pt());
index 2e6db7d..b58f1c4 100755 (executable)
@@ -494,7 +494,8 @@ void AliAnalysisTaskFlowITSTPCTOFQCSP::UserExec(Option_t*)
     
     for (Int_t iT = 0; iT < fAOD->GetNumberOfTracks(); iT++){
         
-        AliAODTrack* aodTrack = fAOD->GetTrack(iT);
+        AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iT));
+        if(!aodTrack) AliFatal("Not a standard AOD");
         
         if (!aodTrack)
             continue;
@@ -555,7 +556,8 @@ void AliAnalysisTaskFlowITSTPCTOFQCSP::UserExec(Option_t*)
     // Track loop
     for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++)
     {
-         track = fAOD->GetTrack(iTracks);
+         track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
+         if(!track) AliFatal("Not a standard AOD");
         if (!track)
         {
             printf("ERROR: Could not receive track %d\n", iTracks);
@@ -778,7 +780,8 @@ void AliAnalysisTaskFlowITSTPCTOFQCSP::SelectPhotonicElectron(Int_t itrack,const
     Bool_t flagPhotonicElec = kFALSE;
     
     for(Int_t jTracks = 0; jTracks<fAOD->GetNumberOfTracks(); jTracks++){
-        AliAODTrack *trackAsso = fAOD->GetTrack(jTracks);
+        AliAODTrack *trackAsso = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(jTracks));
+        if(!trackAsso) AliFatal("Not a standard AOD");
         if (!trackAsso) {
             printf("ERROR: Could not receive track %d\n", jTracks);
             continue;
@@ -1272,14 +1275,16 @@ void AliAnalysisTaskFlowITSTPCTOFQCSP::CheckCentrality(AliAODEvent* event, Bool_
     Float_t multTPC(0.); // tpc mult estimate
     Float_t multGlob(0.); // global multiplicity
     for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill tpc mult
-        AliAODTrack* trackAOD = event->GetTrack(iTracks);
+        AliAODTrack* trackAOD = dynamic_cast<AliAODTrack*>(event->GetTrack(iTracks));
+        if(!trackAOD) AliFatal("Not a standard AOD");
         if (!trackAOD) continue;
         if (!(trackAOD->TestFilterBit(1))) continue;
         if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70)  || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.2)) continue;
         multTPC++;
     }
     for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill global mult
-        AliAODTrack* trackAOD = event->GetTrack(iTracks);
+        AliAODTrack* trackAOD = dynamic_cast<AliAODTrack*>(event->GetTrack(iTracks));
+        if(!trackAOD) AliFatal("Not a standard AOD");
         if (!trackAOD) continue;
         if (!(trackAOD->TestFilterBit(16))) continue;
         if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70) || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.1)) continue;
index 307af57..fa1460b 100644 (file)
@@ -480,7 +480,8 @@ void AliAnalysisTaskFlowTPCEMCalQCSP::UserExec(Option_t*)
     
     for (Int_t iT = 0; iT < fAOD->GetNumberOfTracks(); iT++){
         
-        AliAODTrack* aodTrack = fAOD->GetTrack(iT);
+        AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iT));
+        if(!aodTrack) AliFatal("Not a standard AOD");
         
         if (!aodTrack)
             continue;
@@ -547,7 +548,8 @@ void AliAnalysisTaskFlowTPCEMCalQCSP::UserExec(Option_t*)
     // Track loop
     for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++)
     {
-        track = fAOD->GetTrack(iTracks);
+        track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
+        if(!track) AliFatal("Not a standard AOD");
         if (!track)
         {
             printf("ERROR: Could not receive track %d\n", iTracks);
@@ -779,7 +781,8 @@ void AliAnalysisTaskFlowTPCEMCalQCSP::SelectPhotonicElectron(Int_t itrack,const
     Bool_t flagPhotonicElec = kFALSE;
     
     for(Int_t jTracks = 0; jTracks<fAOD->GetNumberOfTracks(); jTracks++){
-        AliAODTrack *trackAsso = fAOD->GetTrack(jTracks);
+        AliAODTrack *trackAsso = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(jTracks));
+        if(!trackAsso) AliFatal("Not a standard AOD");
         if (!trackAsso) {
             printf("ERROR: Could not receive track %d\n", jTracks);
             continue;
@@ -1253,14 +1256,16 @@ void AliAnalysisTaskFlowTPCEMCalQCSP::CheckCentrality(AliAODEvent* event, Bool_t
     Float_t multTPC(0.); // tpc mult estimate
     Float_t multGlob(0.); // global multiplicity
     for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill tpc mult
-        AliAODTrack* trackAOD = event->GetTrack(iTracks);
+        AliAODTrack* trackAOD = dynamic_cast<AliAODTrack*>(event->GetTrack(iTracks));
+        if(!trackAOD) AliFatal("Not a standard AOD");
         if (!trackAOD) continue;
         if (!(trackAOD->TestFilterBit(1))) continue;
         if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70)  || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.2)) continue;
         multTPC++;
     }
     for(Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) { // fill global mult
-        AliAODTrack* trackAOD = event->GetTrack(iTracks);
+        AliAODTrack* trackAOD = dynamic_cast<AliAODTrack*>(event->GetTrack(iTracks));
+        if(!trackAOD) AliFatal("Not a standard AOD");
         if (!trackAOD) continue;
         if (!(trackAOD->TestFilterBit(16))) continue;
         if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70) || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.1)) continue;
index 7867899..c0709fe 100644 (file)
@@ -1608,7 +1608,8 @@ void AliAnalysisTaskHFE::ProcessAOD(){
     kinkmother=kFALSE;
     kinkdaughter=kFALSE;
     kinkstatus = 0.;
-    track = fAOD->GetTrack(itrack); mctrack = NULL;
+    track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(itrack));
+    if(!track) AliFatal("Not a standard AOD"); mctrack = NULL;
     if(!track) continue;
 
     for(int ivx = 0; ivx < numberofmotherkink; ivx++){
index d554455..e6b66f7 100644 (file)
@@ -267,7 +267,8 @@ void AliAnalysisTaskSEBkgLikeSignD0::UserExec(Option_t */*option*/)
   // make trkIDtoEntry register (temporary)
   Int_t trkIDtoEntry[100000];
   for(Int_t it=0;it<aod->GetNumberOfTracks();it++) {
-    AliAODTrack *track = aod->GetTrack(it);
+    AliAODTrack *track = dynamic_cast<AliAODTrack*>(aod->GetTrack(it));
+    if(!track) AliFatal("Not a standard AOD");
     trkIDtoEntry[track->GetID()]=it;
   }
 
index 6c0068a..c4e260e 100644 (file)
@@ -5675,7 +5675,8 @@ void AliAnalysisTaskSECharmFraction::UserExec(Option_t */*option*/)
     fptMax[1]=0.;
     fptMax[2]=0.;
     for(Int_t it=0;it<aod->GetNumberOfTracks();it++) {
-      AliAODTrack *track = aod->GetTrack(it);
+      AliAODTrack *track = dynamic_cast<AliAODTrack*>(aod->GetTrack(it));
+      if(!track) AliFatal("Not a standard AOD");
       fptAll+=track->Pt();
       fptAllSq+=track->Pt()*track->Pt();
       if(track->Pt()>fptMax[0]){
@@ -7247,7 +7248,8 @@ AliAODVertex* AliAnalysisTaskSECharmFraction::GetPrimaryVtxSkipped(AliAODEvent *
    }
    nprim=0;
    for(Int_t it=0;it<ntracks;it++) {
-     AliAODTrack *track = aod->GetTrack(it);
+     AliAODTrack *track = dynamic_cast<AliAODTrack*>(aod->GetTrack(it));
+     if(!track) AliFatal("Not a standard AOD");
      
      if(track->IsPrimaryCandidate()){
        if(track->Pt()>ptmin){
index 9d44447..3ad1ae0 100644 (file)
@@ -1082,7 +1082,8 @@ void AliAnalysisTaskSED0Mass::UserExec(Option_t */*option*/)
     if (aod) ntracks = aod->GetNumberOfTracks();
     for(Int_t itrack=0; itrack<ntracks; itrack++) { // loop on tacks
       //    ... get the track
-      AliAODTrack * track = aod->GetTrack(itrack);
+      AliAODTrack * track = dynamic_cast<AliAODTrack*>(aod->GetTrack(itrack));
+      if(!track) AliFatal("Not a standard AOD");
       if(TESTBIT(track->GetITSClusterMap(),2) || TESTBIT(track->GetITSClusterMap(),3) ){
        skipEvent=kTRUE;
        fNentries->Fill(16);
index 3fafdfe..326d65e 100644 (file)
@@ -441,7 +441,8 @@ void AliAnalysisTaskSEDStarSpectra::UserExec(Option_t *)
       
       for (Int_t i=0; i<aodEvent->GetNumberOfTracks(); i++){ 
        
-       AliAODTrack* aodTrack = aodEvent->GetTrack(i);
+       AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(i));
+       if(!aodTrack) AliFatal("Not a standard AOD");
        
        if(dstarD0pi->Charge() == aodTrack->Charge()) continue;
        if((!(aodTrack->GetStatus()&AliESDtrack::kITSrefit)|| (!(aodTrack->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
index 116dbf6..5d1122b 100644 (file)
@@ -1342,7 +1342,8 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
   }
 
   for (Int_t k=0;k<nAODtracks;k++){
-    AliAODTrack* track=aod->GetTrack(k);
+    AliAODTrack* track=dynamic_cast<AliAODTrack*>(aod->GetTrack(k));
+    if(!track) AliFatal("Not a standard AOD");
     if(track->GetID()<0) continue;
     Int_t nclsTot=0,nclsSPD=0;
     for(Int_t l=0;l<6;l++) {
@@ -1847,7 +1848,8 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
   if(fOnOff[0] || fOnOff[1]){
     //loop on tracks in the event
     for (Int_t k=0;k<ntracks;k++){
-      AliAODTrack* track=aod->GetTrack(k);
+      AliAODTrack* track=dynamic_cast<AliAODTrack*>(aod->GetTrack(k));
+      if(!track) AliFatal("Not a standard AOD");
 
       // Track selection cuts
       if(track->GetID()<0) continue;
index 5521ece..a71e66f 100644 (file)
@@ -292,7 +292,9 @@ void AliAnalysisTaskSEImproveITS::UserExec(Option_t*) {
   if (!mcs) return;
   if (fImproveTracks) {
     for(Int_t itrack=0;itrack<ev->GetNumberOfTracks();++itrack) {
-      SmearTrack(ev->GetTrack(itrack),mcs);
+      AliAODTrack * trk = dynamic_cast<AliAODTrack*>(ev->GetTrack(itrack));
+      if(!trk) AliFatal("Not a standard AOD");
+      SmearTrack(trk,mcs);
     }
   }
 
index 6c5b9f1..4b7a707 100644 (file)
@@ -147,7 +147,8 @@ void AliAnalysisTaskSESelectHF::UserExec(Option_t */*option*/)
   // make trkIDtoEntry register (temporary)
   Int_t trkIDtoEntry[100000];
   for(Int_t it=0;it<aodIn->GetNumberOfTracks();it++) {
-    AliAODTrack *track = aodIn->GetTrack(it);
+    AliAODTrack *track = dynamic_cast<AliAODTrack*>(aodIn->GetTrack(it));
+    if(!track) AliFatal("Not a standard AOD");
     trkIDtoEntry[track->GetID()]=it;
   }
 
@@ -178,8 +179,9 @@ void AliAnalysisTaskSESelectHF::UserExec(Option_t */*option*/)
       AliAODTrack *trk0 = (AliAODTrack*)dIn->GetDaughter(0);
       AliAODTrack *trk1 = (AliAODTrack*)dIn->GetDaughter(1);
       if(!trk0 || !trk1) {
-       trk0=aodIn->GetTrack(trkIDtoEntry[dIn->GetProngID(0)]);
-       trk1=aodIn->GetTrack(trkIDtoEntry[dIn->GetProngID(1)]);
+       trk0=dynamic_cast<AliAODTrack*>(aodIn->GetTrack(trkIDtoEntry[dIn->GetProngID(0)]));
+       trk1=dynamic_cast<AliAODTrack*>(aodIn->GetTrack(trkIDtoEntry[dIn->GetProngID(1)]));
+        if(!trk0 || !trk1) AliFatal("Not a standard AOD");
       }
       printf("pt of positive track: %f\n",trk0->Pt());
       printf("pt of negative track: %f\n",trk1->Pt());
index 8e39c08..a3bb5ea 100644 (file)
@@ -1499,7 +1499,8 @@ void AliAnalysisVertexingHF::AddDaughterRefs(AliAODVertex *v,
     id = (Int_t)track->GetID();
     //printf("---> %d\n",id);
     if(id<0) continue; // this track is a AliAODRecoDecay
-    aodTrack = (AliAODTrack*)event->GetTrack(fAODMap[id]);
+    aodTrack = dynamic_cast<AliAODTrack*>(event->GetTrack(fAODMap[id]));
+    if(!aodTrack) AliFatal("Not a standard AOD");
     v->AddDaughter(aodTrack);
   }
 
@@ -1540,7 +1541,8 @@ void AliAnalysisVertexingHF::FixReferences(AliAODEvent *aod)
   memset(fAODMap,0,sizeof(Int_t)*fAODMapSize);
 
   for(Int_t i=0; i<aod->GetNumberOfTracks(); i++) {
-    track = aod->GetTrack(i);
+    track = dynamic_cast<AliAODTrack*>(aod->GetTrack(i));
+    if(!track) AliFatal("Not a standard AOD");
 
     // skip pure ITS SA tracks
     if(track->GetStatus()&AliESDtrack::kITSpureSA) continue;
@@ -1573,7 +1575,8 @@ void AliAnalysisVertexingHF::FixReferences(AliAODEvent *aod)
     if(cascade) continue;
     for(id=0; id<nDgs; id++) {
       if (ids[id]>-1 && ids[id] < fAODMapSize) {
-       track = aod->GetTrack(fAODMap[ids[id]]);
+       track = dynamic_cast<AliAODTrack*>(aod->GetTrack(fAODMap[ids[id]]));
+       if(!track) AliFatal("Not a standard AOD");
        vertex->AddDaughter(track);
       }
     }
@@ -1615,7 +1618,8 @@ AliAODRecoCascadeHF* AliAnalysisVertexingHF::MakeCascade(
   if(fInputAOD){
     Int_t idSoftPi=(Int_t)trackPi->GetID();
     if (idSoftPi > -1 && idSoftPi < fAODMapSize) {
-      AliAODTrack* trackPiAOD=(AliAODTrack*)event->GetTrack(fAODMap[idSoftPi]);
+      AliAODTrack* trackPiAOD=dynamic_cast<AliAODTrack*>(event->GetTrack(fAODMap[idSoftPi]));
+      if(!trackPiAOD) AliFatal("Not a standard AOD");
       tmpCascade->GetSecondaryVtx()->AddDaughter(trackPiAOD);
     }
   }else{
@@ -1684,7 +1688,8 @@ AliAODRecoCascadeHF* AliAnalysisVertexingHF::MakeCascade(
   if(fInputAOD){
     Int_t idBachelor=(Int_t)trackBachelor->GetID();
     if (idBachelor > -1 && idBachelor < fAODMapSize) {
-      AliAODTrack* trackBachelorAOD=(AliAODTrack*)event->GetTrack(fAODMap[idBachelor]);
+      AliAODTrack* trackBachelorAOD=dynamic_cast<AliAODTrack*>(event->GetTrack(fAODMap[idBachelor]));
+      if(!trackBachelorAOD) AliFatal("Not a standard AOD");
       tmpCascade->GetSecondaryVtx()->AddDaughter(trackBachelorAOD);
     }
   }else{
index 5f613e1..6af0827 100644 (file)
@@ -859,7 +859,8 @@ Int_t  AliAnalysisTaskAj::GetListOfTracks(TList *list){
      if(!aod) return iCount;
     
     for(int it = 0;it < aod->GetNumberOfTracks();++it){
-      AliAODTrack *tr = aod->GetTrack(it);
+      AliAODTrack *tr = dynamic_cast<AliAODTrack*>(aod->GetTrack(it));
+      if(!tr) AliFatal("Not a standard AOD");
       if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
       if(TMath::Abs(tr->Eta())>0.9)continue;
       if(tr->Pt()<0.15)continue;
@@ -887,7 +888,8 @@ Int_t  AliAnalysisTaskAj::GetListOfTracks(TList *list){
     //    Double_t dif=0;
     Int_t iCount=0;
     for(int it = 0;it < aod->GetNumberOfTracks();++it){
-      AliAODTrack *tr = aod->GetTrack(it);
+      AliAODTrack *tr = dynamic_cast<AliAODTrack*>(aod->GetTrack(it));
+      if(!tr) AliFatal("Not a standard AOD");
       if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
       if(TMath::Abs(tr->Eta())>0.9)continue;
       if(tr->Pt()<0.15)continue;
@@ -922,7 +924,8 @@ Int_t  AliAnalysisTaskAj::GetListOfTracks(TList *list){
  
   
     for(int it = 0;it < aod->GetNumberOfTracks();++it){
-      AliAODTrack *tr = aod->GetTrack(it);
+      AliAODTrack *tr = dynamic_cast<AliAODTrack*>(aod->GetTrack(it));
+      if(!tr) AliFatal("Not a standard AOD");
       if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
       if(TMath::Abs(tr->Eta())>0.9)continue;
       if(tr->Pt()<0.15)continue;
index ccd5ac7..8c3269e 100644 (file)
@@ -2910,7 +2910,8 @@ Int_t AliAnalysisTaskFragmentationFunction::GetListOfTracks(TList *list, Int_t t
     // all rec. tracks, esd filter mask, eta range
     
     for(Int_t it=0; it<fAOD->GetNumberOfTracks(); ++it){
-      AliAODTrack *tr = fAOD->GetTrack(it);
+      AliAODTrack *tr = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(it));
+      if(!tr) AliFatal("Not a standard AOD");
       
       if(type == kTrackAODCuts || type==kTrackAODQualityCuts || type==kTrackAODExtraCuts){
 
index 678856c..0266a12 100644 (file)
@@ -1790,7 +1790,8 @@ Int_t  AliAnalysisTaskJetCorePP::GetListOfTracks(TList *list){
  
 
    for(Int_t it = 0; it < aodevt->GetNumberOfTracks(); it++){
-      AliAODTrack *tr = aodevt->GetTrack(it);
+      AliAODTrack *tr = dynamic_cast<AliAODTrack*>(aodevt->GetTrack(it));
+      if(!tr) AliFatal("Not a standard AOD");
       
       if((fFilterMask > 0) && !(tr->TestFilterBit(fFilterMask))) continue;
       //if((fFilterMask > 0) && !(tr->IsHybridGlobalConstrainedGlobal())) continue;
index 9338e9b..4e0747a 100644 (file)
@@ -1741,7 +1741,8 @@ Int_t AliAnalysisTaskJetProperties::GetListOfTracks(TList *list, Int_t type)
   if(type==kTrackAOD){
     // all rec. tracks, esd filter mask, within acceptance
     for(Int_t it=0; it<fAOD->GetNumberOfTracks(); ++it){
-      AliAODTrack *tr = fAOD->GetTrack(it);
+      AliAODTrack *tr = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(it));
+      if(!tr) AliFatal("Not a standard AOD");
       if(!tr)continue;
       if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;//selecting filtermask
       if(tr->Eta() < fTrackEtaMin || tr->Eta() > fTrackEtaMax) continue;
index 34d2db6..fa93932 100644 (file)
@@ -1226,7 +1226,8 @@ Int_t  AliAnalysisTaskJetServices::GetListOfTracks(TList *list){
     return iCount;
   }
   for(int it = 0;it < aod->GetNumberOfTracks();++it){
-    AliAODTrack *tr = aod->GetTrack(it);
+    AliAODTrack *tr = dynamic_cast<AliAODTrack*>(aod->GetTrack(it));
+    if(!tr) AliFatal("Not a standard AOD");
     if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
     if(TMath::Abs(tr->Eta())>fTrackRecEtaWindow)continue;
     if(tr->Pt()<fMinTrackPt)continue;
index 1863b73..158a8f3 100644 (file)
@@ -1590,7 +1590,8 @@ Int_t  AliAnalysisTaskJetSpectrum2::GetListOfTracks(TList *list,Int_t type){
       return iCount;
     }
     for(int it = 0;it < aod->GetNumberOfTracks();++it){
-      AliAODTrack *tr = aod->GetTrack(it);
+      AliAODTrack *tr = dynamic_cast<AliAODTrack*>(aod->GetTrack(it));
+      if(!tr) AliFatal("Not a standard AOD");
       if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
       if(TMath::Abs(tr->Eta())>fTrackRecEtaWindow)continue;
       if(tr->Pt()<fMinTrackPt)continue;
index cc564cc..c738124 100644 (file)
@@ -154,7 +154,8 @@ void AliAnalysisTaskJetsTM::UserExec(Option_t *)
       Float_t ptsum  = 0.;
       
       for (Int_t i = 0; i < nT; i++) {
-         AliAODTrack* track = aodE->GetTrack(i);
+         AliAODTrack* track = dynamic_cast<AliAODTrack*>(aodE->GetTrack(i));
+         if(!track) AliFatal("Not a standard AOD");
 //
 //    Track quality cuts
          if (!track->TestFilterBit(1<<4)) continue;
@@ -233,7 +234,8 @@ void AliAnalysisTaskJetsTM::UserExec(Option_t *)
 // 2nd correlation with principal axis
 //   
       for (Int_t i = 0; i < nT; i++) {
-         AliAODTrack* track = aodE->GetTrack(i);
+         AliAODTrack* track = dynamic_cast<AliAODTrack*>(aodE->GetTrack(i));
+         if(!track) AliFatal("Not a standard AOD");
 //
 //    Track quality cuts
          if (!track->TestFilterBit(1<<4)) continue;
index a163785..75e7e9a 100644 (file)
@@ -2154,7 +2154,8 @@ void AliAnalysisTaskPartonDisc::UserExec(Option_t *)
       Int_t myTotalSoftMultRef = 0; 
       for(Int_t aodT = 0; aodT < tracksAOD; aodT++ )
        {
-         AliAODTrack *aodtrack = fAOD->GetTrack(aodT);
+         AliAODTrack *aodtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(aodT));
+         if(!aodtrack) AliFatal("Not a standard AOD");
          if(!aodtrack) continue;
          aodtracketa = TMath::Abs(aodtrack->Eta());
          if(aodtracketa>0.9) continue;
@@ -2369,7 +2370,8 @@ void AliAnalysisTaskPartonDisc::UserExec(Option_t *)
              AliDebug(4,Form("Checking composition in Reco jets without track refs")); 
              for(Int_t aodT = 0; aodT < tracksAOD; aodT++ )
                {
-                 AliAODTrack *aodtrack = fAOD->GetTrack(aodT);
+                 AliAODTrack *aodtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(aodT));
+                 if(!aodtrack) AliFatal("Not a standard AOD");
                  if(!aodtrack) continue;
                  if(!IsTrackInsideThisJet(aodtrack, rjet, jfr)) continue;
                  if(!aodtrack->TestFilterBit(fFilterBit)) continue; //track filter selection
@@ -2446,7 +2448,8 @@ void AliAnalysisTaskPartonDisc::UserExec(Option_t *)
              AliDebug(4,Form("Checking SCM of perpendicular cone in Reco jets")); 
              for(Int_t aodTperp = 0; aodTperp < tracksAOD; aodTperp++ )
                { //fPerpCone
-                 AliAODTrack *aodtrackperprec = fAOD->GetTrack(aodTperp);
+                 AliAODTrack *aodtrackperprec = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(aodTperp));
+                 if(!aodtrackperprec) AliFatal("Not a standard AOD");
                  if(!aodtrackperprec) continue;
                  if(!IsTrackInsideThisJet(aodtrackperprec, fPerpCone, jfr)) continue;
                  if(!aodtrackperprec->TestFilterBit(fFilterBit)) continue; //track filter selection
@@ -3815,7 +3818,8 @@ Int_t AliAnalysisTaskPartonDisc::GetNumberOfChargedTracks(Int_t percentage,AliAO
       AliDebug(4,Form("Empty Track Refs (reco)!"));  
       for (Int_t iTracks = 0; iTracks < ntracks; iTracks++) 
        {
-         AliAODTrack *aodtrack = aode->GetTrack(iTracks);
+         AliAODTrack *aodtrack = dynamic_cast<AliAODTrack*>(aode->GetTrack(iTracks));
+         if(!aodtrack) AliFatal("Not a standard AOD");
          if(!aodtrack) continue;
          tracketa = aodtrack->Eta();
          trackphi = aodtrack->Phi();
@@ -5022,7 +5026,8 @@ Int_t AliAnalysisTaskPartonDisc::GetNRecChargedTracksAboveThreshold(AliAODJet *j
 
   for (Int_t iTracks = 0; iTracks < ntracks; iTracks++) 
     {
-      AliAODTrack *aodtrack = aode->GetTrack(iTracks);
+      AliAODTrack *aodtrack = dynamic_cast<AliAODTrack*>(aode->GetTrack(iTracks));
+      if(!aodtrack) AliFatal("Not a standard AOD");
       if(!aodtrack) continue;
       tracketa = aodtrack->Eta();
       trackphi = aodtrack->Phi();
@@ -5071,7 +5076,8 @@ Int_t AliAnalysisTaskPartonDisc::GetRecalcNTXRec(Int_t percentage,AliAODJet *ori
       AliDebug(4,Form("Empty Track Refs (reco)!"));  
       for (Int_t iTracks = 0; iTracks < ntracks; iTracks++) 
        {
-         AliAODTrack *aodtrack = aode->GetTrack(iTracks);
+         AliAODTrack *aodtrack = dynamic_cast<AliAODTrack*>(aode->GetTrack(iTracks));
+         if(!aodtrack) AliFatal("Not a standard AOD");
          if(!aodtrack) continue;
          tracketa = aodtrack->Eta();
          trackphi = aodtrack->Phi();
@@ -5130,7 +5136,8 @@ Int_t AliAnalysisTaskPartonDisc::GetRecalcNRecChTrUpThr(AliAODJet *jet, Int_t nt
 
   for (Int_t iTracks = 0; iTracks < ntracks; iTracks++) 
     {
-      AliAODTrack *aodtrack = aode->GetTrack(iTracks);
+      AliAODTrack *aodtrack = dynamic_cast<AliAODTrack*>(aode->GetTrack(iTracks));
+      if(!aodtrack) AliFatal("Not a standard AOD");
       if(!aodtrack) continue;
       tracketa = aodtrack->Eta();
       trackphi = aodtrack->Phi();
@@ -5540,7 +5547,8 @@ void AliAnalysisTaskPartonDisc::FillPerpConeHisto(TH3F *currenthisto, Int_t ntra
 
   for(Int_t aodT = 0; aodT < ntracks; aodT++ )
     {
-      AliAODTrack *aodtrackC = aode->GetTrack(aodT);
+      AliAODTrack *aodtrackC = dynamic_cast<AliAODTrack*>(aode->GetTrack(aodT));
+      if(!aodtrackC) AliFatal("Not a standard AOD");
       if(!aodtrackC) continue;
       aodtracketaC = TMath::Abs(aodtrackC->Eta());
       if(aodtracketaC>0.9) continue;
index ec6a5c8..d61b3cb 100644 (file)
@@ -419,7 +419,8 @@ void AliPWG4HighPtSpectra::Exec(Option_t *)
       //Get track for analysis
       AliVTrack *track = 0x0;
 
-      AliAODTrack *aodtrack = fAOD->GetTrack(iTrack);
+      AliAODTrack *aodtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTrack));
+      if(!aodtrack) AliFatal("Not a standard AOD");
       if(!aodtrack)
         continue;
       if((!aodtrack->TestFilterBit(fFilterMask)) || 
index 7f195f2..a077014 100644 (file)
@@ -1253,7 +1253,8 @@ void AliPWG4HighPtTrackQA::DoAnalysisAOD()
   AliExternalTrackParam exParam;
   for (Int_t iTrack = 0; iTrack < fEvent->GetNumberOfTracks(); iTrack++) {
 
-    AliAODTrack *aodtrack = aod->GetTrack(iTrack);
+    AliAODTrack *aodtrack = dynamic_cast<AliAODTrack*>(aod->GetTrack(iTrack));
+    if(!aodtrack) AliFatal("Not a standard AOD");
     if( !aodtrack->TestFilterMask(fFilterMask) ) {
       fh1NTracksReject->Fill("noHybridTrack",1);
       continue;
index 2ac8deb..f1c7d10 100644 (file)
@@ -159,7 +159,8 @@ Bool_t AliAnalysisTaskCLQA::FillHistograms()
     AliAODEvent *aod = dynamic_cast<AliAODEvent*>(InputEvent());
     if (aod) {
       for (Int_t iMu = 0; iMu<aod->GetNumberOfTracks(); ++iMu) {
-        AliAODTrack* muonTrack = aod->GetTrack(iMu);
+        AliAODTrack* muonTrack = dynamic_cast<AliAODTrack*>(aod->GetTrack(iMu));
+        if(!muonTrack) AliFatal("Not a standard AOD");
         if (!muonTrack)
           continue;
         if (!muonTrack->IsMuonTrack()) 
index 2183c91..7464350 100644 (file)
@@ -2297,7 +2297,8 @@ Int_t AliAnalysisTaskIDFFTCF::GetListOfTracks(TList *list, Int_t type)
     // all rec. tracks, esd filter mask, eta range
     
     for(Int_t it=0; it<fAOD->GetNumberOfTracks(); ++it){
-      AliAODTrack *tr = fAOD->GetTrack(it);
+      AliAODTrack *tr = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(it));
+      if(!tr) AliFatal("Not a standard AOD");
       
       if(type == kTrackAODCuts || type==kTrackAODQualityCuts){
 
index 03830cd..a3dfb48 100644 (file)
@@ -697,7 +697,8 @@ Int_t  AliAnalysisTaskJetAntenna::GetListOfTracks(TList *list){
 
 
     for(int it = 0;it < aod->GetNumberOfTracks();++it){
-    AliAODTrack *tr = aod->GetTrack(it);
+    AliAODTrack *tr = dynamic_cast<AliAODTrack*>(aod->GetTrack(it));
+    if(!tr) AliFatal("Not a standard AOD");
     Bool_t bGood = false;
     if(fFilterType == 0)bGood = true;
     else if(fFilterType == 1)bGood = tr->IsHybridTPCConstrainedGlobal();
@@ -762,7 +763,8 @@ Int_t  AliAnalysisTaskJetAntenna::GetListOfTracksExtra(TList *list){
 
 
     for(int it = 0;it < aod->GetNumberOfTracks();++it){
-    AliAODTrack *tr = aod->GetTrack(it);
+    AliAODTrack *tr = dynamic_cast<AliAODTrack*>(aod->GetTrack(it));
+    if(!tr) AliFatal("Not a standard AOD");
     Bool_t bGood = false;
     if(fFilterType == 0)bGood = true;
     else if(fFilterType == 1)bGood = tr->IsHybridTPCConstrainedGlobal();
index f7c0596..1374c22 100644 (file)
@@ -1245,7 +1245,8 @@ Bool_t AliAnalysisTaskJetProtonCorr::PrepareEvent()
     fPrimTrackArrayAss = new TObjArray();
     const Int_t nTracksAODAss = fAODEvent->GetNumberOfTracks();
     for (Int_t iTrack = 0; iTrack < nTracksAODAss; ++iTrack) {
-      AliAODTrack *trk = fAODEvent->GetTrack(iTrack);
+      AliAODTrack *trk = dynamic_cast<AliAODTrack*>(fAODEvent->GetTrack(iTrack));
+      if(!trk) AliFatal("Not a standard AOD");
       if (trk->TestFilterBit(fAssFilterMask))
         fPrimTrackArrayAss->Add(trk);
     }
@@ -1254,7 +1255,8 @@ Bool_t AliAnalysisTaskJetProtonCorr::PrepareEvent()
     fPrimTrackArrayTrg = new TObjArray();
     const Int_t nTracksAODTrg = fAODEvent->GetNumberOfTracks();
     for (Int_t iTrack = 0; iTrack < nTracksAODTrg; ++iTrack) {
-      AliAODTrack *trk = fAODEvent->GetTrack(iTrack);
+      AliAODTrack *trk = dynamic_cast<AliAODTrack*>(fAODEvent->GetTrack(iTrack));
+      if(!trk) AliFatal("Not a standard AOD");
       if (trk->IsHybridGlobalConstrainedGlobal())
         fPrimTrackArrayTrg->Add(trk);
     }
index 77829e3..a343f7e 100644 (file)
@@ -1404,7 +1404,8 @@ Bool_t AliAnalysisTaskJetShape::AliAnalysisTaskJetShapeHM::AddEvent(AliAODEvent*
       }
     else 
       {
-       AliAODTrack *tr = aodE->GetTrack(it);
+       AliAODTrack *tr = dynamic_cast<AliAODTrack*>(aodE->GetTrack(it));
+       if(!tr) AliFatal("Not a standard AOD");
        if(!tr) continue;
        if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
        label = tr->GetLabel();
@@ -1505,7 +1506,8 @@ Bool_t AliAnalysisTaskJetShape::AliAnalysisTaskJetShapeHM::AddEvent(AliAODEvent*
        }
       else 
        {
-         AliAODTrack *tr = aodE->GetTrack(IndexArray[it]);
+         AliAODTrack *tr = dynamic_cast<AliAODTrack*>(aodE->GetTrack(IndexArray[it]));
+         if(!tr) AliFatal("Not a standard AOD");
          if(!tr) continue;
           AliAODTrack tmp(*tr);
           tmp.PropagateToDCA(primVtx, bfield, 5., dca, cov);
@@ -2032,7 +2034,8 @@ if(!aodH){
 
       for(int it = 0;it < aodE->GetNumberOfTracks(); it++)
        {
-         AliAODTrack *tr = aodE->GetTrack(it);
+         AliAODTrack *tr = dynamic_cast<AliAODTrack*>(aodE->GetTrack(it));
+         if(!tr) AliFatal("Not a standard AOD");
          if(!tr) continue;
          if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask))) continue;
          if(TMath::Abs(tr->Eta())>1.) continue;
index bcb568e..27ff2c4 100644 (file)
@@ -1323,7 +1323,8 @@ void AliAnalysisTaskQAHighPtDeDx::ProduceArrayTrksAOD( AliAODEvent *AODevent ){
   //get multiplicity tpc only track cuts
   for(Int_t iT = 0; iT < nAODTracks; iT++) {
     
-    AliAODTrack* aodTrack = AODevent->GetTrack(iT);
+    AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(AODevent->GetTrack(iT));
+    if(!aodTrack) AliFatal("Not a standard AOD");
     
     if(TMath::Abs(aodTrack->Eta()) > fEtaCut)
       continue;
@@ -1342,7 +1343,8 @@ void AliAnalysisTaskQAHighPtDeDx::ProduceArrayTrksAOD( AliAODEvent *AODevent ){
 
   for(Int_t iT = 0; iT < nAODTracks; iT++) {
     
-    AliAODTrack* aodTrack = AODevent->GetTrack(iT);
+    AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(AODevent->GetTrack(iT));
+    if(!aodTrack) AliFatal("Not a standard AOD");
     
     if (fTrackFilterGolden) {     
       // "Global track RAA analysis QM2011 + Chi2ITS<36"; bit 1024
index 51f343b..aa81500 100644 (file)
@@ -202,7 +202,8 @@ void AliRsnEvent::SetDaughterAODtrack(AliRsnDaughter &out, Int_t i)
    AliAODEvent *aod = (AliAODEvent *)fRef;
 
    if (i >= 0 && i < aod->GetNumberOfTracks()) {
-      AliAODTrack *track = aod->GetTrack(i);
+      AliAODTrack *track = dynamic_cast<AliAODTrack*>(aod->GetTrack(i));
+      if(!track) AliFatal("Not a standard AOD");
       if (track) {
          out.SetRef(track);
          out.SetGood();
index 128222b..6baef09 100644 (file)
@@ -781,7 +781,8 @@ void AliXiStar::Exec(Option_t *)
     
     // Track loop
     for (Int_t i = 0; i < fAOD->GetNumberOfTracks(); i++) {
-      AliAODTrack* aodtrack = fAOD->GetTrack(i);
+      AliAODTrack* aodtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(i));
+      if(!aodtrack) AliFatal("Not a standard AOD");
       if (!aodtrack) continue;
       
       status=aodtrack->GetStatus();
index b660973..bbb0169 100644 (file)
@@ -796,7 +796,8 @@ void AlidNdPtAnalysisPbPbAOD::UserExec(Option_t *option)
 //   for(Int_t i = 0; i < eventAOD->GetNumberOfTracks(); i++) { iIndexAcceptedTracks[i] = 0; }
 //   for(Int_t itrack = 0; itrack < eventAOD->GetNumberOfTracks(); itrack++) 
 //   { 
-//     track = eventAOD->GetTrack(itrack);
+//     track = dynamic_cast<AliAODTrack*>(eventAOD->GetTrack(itrack));
+       if(!track) AliFatal("Not a standard AOD");
 //     if(!track) continue;
 //     
 //     GetDCA(track, eventAOD, dDCA);
@@ -934,7 +935,8 @@ void AlidNdPtAnalysisPbPbAOD::UserExec(Option_t *option)
   for(Int_t itrack = 0; itrack < eventAOD->GetNumberOfTracks(); itrack++)
 //   for(Int_t itrack = 0; itrack < nTotalNumberAcceptedTracks; itrack++)
   {
-       track = eventAOD->GetTrack(itrack);
+       track = dynamic_cast<AliAODTrack*>(eventAOD->GetTrack(itrack));
+       if(!track) AliFatal("Not a standard AOD");
 //     track = eventAOD->GetTrack(iIndexAcceptedTracks[itrack]);
        if(!track) continue;
        
@@ -1219,7 +1221,8 @@ Bool_t AlidNdPtAnalysisPbPbAOD::SetRelativeCuts(AliAODEvent *event)
   
   for(Int_t itrack = 0; itrack < event->GetNumberOfTracks(); itrack++)
   {
-       tr = event->GetTrack(itrack);
+       tr = dynamic_cast<AliAODTrack*>(event->GetTrack(itrack));
+       if(!tr) AliFatal("Not a standard AOD");
        if(!tr) continue;
        
        // do some selection already
index 4e70591..b36a352 100644 (file)
@@ -456,7 +456,8 @@ Int_t AliAnalysisTaskB2AOD::GetTracks()
        // track loop
        for(Int_t i = 0; i < fAODevent->GetNumberOfTracks(); ++i)
        {
-               AliAODTrack* iTrack = fAODevent->GetTrack(i);
+               AliAODTrack* iTrack = dynamic_cast<AliAODTrack*>(fAODevent->GetTrack(i));
+               if(!iTrack) AliFatal("Not a standard AOD");
                
                if(!iTrack) continue;
                
index c8d37d6..2686ad6 100644 (file)
@@ -138,7 +138,8 @@ void AliAnalysisTaskSpectraAOD::UserExec(Option_t *)
   Double_t mass[3]={1.39570000000000000e-01,4.93676999999999977e-01,9.38271999999999995e-01};//FIXME masses to be taken from AliHelperPID
   //main loop on tracks
   for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++) {
-    AliAODTrack* track = fAOD->GetTrack(iTracks);
+    AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
+    if(!track) AliFatal("Not a standard AOD");
     if (!fTrackCuts->IsSelected(track,kTRUE)) continue;
     
     fPID->FillQAHistos(fHistMan, track, fTrackCuts);
index 7fc721e..b4d5293 100644 (file)
@@ -255,7 +255,8 @@ void AliAnalysisTaskSpectraAllChAOD::UserExec(Option_t *)
   Int_t Nch = 0.;
   
   for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++) {
-    AliAODTrack* track = fAOD->GetTrack(iTracks);
+    AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
+    if(!track) AliFatal("Not a standard AOD");
     if(fCharge != 0 && track->Charge() != fCharge) continue;//if fCharge != 0 only select fCharge 
     if (!fTrackCuts->IsSelected(track,kTRUE)) continue; //track selection (rapidity selection NOT in the standard cuts)
     if(!fFillOnlyEvents){
index dbcb71f..a694b18 100644 (file)
@@ -507,7 +507,8 @@ void AliAnalysisTaskV2AllChAOD::UserExec(Option_t *)
 
     //main loop on tracks
     for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++) {
-      AliAODTrack* track = fAOD->GetTrack(iTracks);
+      AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
+      if(!track) AliFatal("Not a standard AOD");
       if(fCharge != 0 && track->Charge() != fCharge) continue;//if fCharge != 0 only select fCharge 
       if (!fTrackCuts->IsSelected(track,kTRUE)) continue; //track selection (rapidity selection NOT in the standard cuts)
     
index 3d50729..b9d8516 100644 (file)
@@ -1310,7 +1310,8 @@ void AliAnalysisTaskCheckCascadePbPb::UserExec(Option_t *) {
     nTrackWithTPCrefitMultiplicity = 0;
     lPrimaryTrackMultiplicity = 0;
     for (Int_t itrack = 0; itrack<nTrackMultiplicity; itrack++) {
-      AliAODTrack* track = lAODevent->GetTrack(itrack);
+      AliAODTrack* track = dynamic_cast<AliAODTrack*>(lAODevent->GetTrack(itrack));
+      if(!track) AliFatal("Not a standard AOD");
       if (track->TestFilterBit(AliAODTrack::kTrkGlobalNoDCA)) lPrimaryTrackMultiplicity++; // kTrkGlobal tight DCA cut --> mult is much lower than the one selectied with standard cuts in ESDs
       if (track->IsOn(AliAODTrack::kTPCrefit)) nTrackWithTPCrefitMultiplicity++;
     }
index 82d866f..23a48ea 100644 (file)
@@ -1966,7 +1966,8 @@ void AliAnalysisTaskCheckPerformanceCascadePbPb::UserExec(Option_t *) {
 
           lPrimaryTrackMultiplicity = 0.;
           for (Int_t itrack = 0; itrack<nTrackMultiplicity; itrack++) {
-            AliAODTrack* track = lAODevent->GetTrack(itrack);
+            AliAODTrack* track = dynamic_cast<AliAODTrack*>(lAODevent->GetTrack(itrack));
+            if(!track) AliFatal("Not a standard AOD");
             if (track->TestFilterBit(AliAODTrack::kTrkGlobalNoDCA)) lPrimaryTrackMultiplicity++;
           }
 
index 61a85c5..a9675eb 100644 (file)
@@ -2811,7 +2811,8 @@ void AliAnalysisTaskLambdaOverK0sJets::V0Loop(V0LoopStep_t step, Bool_t isTrigge
   Double_t pTrig[3]; 
 
   if( (step==kTriggerCheck || isTriggered) && idTrig>=0 ){
-    trkTrig = (AliAODTrack*)fAOD->GetTrack(idTrig); 
+    trkTrig = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(idTrig));
+    if(!trkTrig) AliFatal("Not a standard AOD"); 
     ptTrig  = trkTrig->Pt();
     phiTrig = trkTrig->Phi();
     etaTrig = trkTrig->Eta();
@@ -4127,7 +4128,8 @@ void AliAnalysisTaskLambdaOverK0sJets::TriggerParticle()
   Float_t resPhi = -1000.;
 
   for (Int_t i=0; i<nTrk; i++) {
-    const AliAODTrack *t = fAOD->GetTrack(i);
+    const AliAODTrack *t = dynamic_cast<const AliAODTrack*>(fAOD->GetTrack(i));
+    if(!t) AliFatal("Not a standard AOD");
     if(!AcceptTrack(t)) continue;
     pt=t->Pt();
     eta=t->Eta();
index d7ae965..8e606ee 100644 (file)
@@ -423,7 +423,8 @@ void AliAnalysisTaskV0ChCorrelations::UserExec(Option_t *)
   
     for (Int_t i = 0; i < nTracks; i++)
     {
-        AliAODTrack* tr = aod->GetTrack(i); 
+        AliAODTrack* tr = dynamic_cast<AliAODTrack*>(aod->GetTrack(i));
+        if(!tr) AliFatal("Not a standard AOD"); 
         selectedMCTracks->Add(tr);
     }
    // cout << "before compressing = " << selectedMCTracks->GetEntriesFast() << endl;
@@ -437,7 +438,7 @@ void AliAnalysisTaskV0ChCorrelations::UserExec(Option_t *)
     //cout << "before getting label -3" << endl;
     for (Int_t i = 0; i < nRecTracks; i++)
     {
-      //AliAODTrack* tras = aod->GetTrack(i);
+      //AliAODTrack* tras = dynamic_cast<AliAODTrack*>(aod->GetTrack(i));
       AliAODTrack* tras = (AliAODTrack*)selectedMCTracks->At(i);
       //cout << "before getting label -2" << endl;
       //cout << " and i = " << i << endl;
@@ -478,7 +479,8 @@ void AliAnalysisTaskV0ChCorrelations::UserExec(Option_t *)
     selectedChargedTriggers->SetOwner(kTRUE);
     for (Int_t i = 0; i < nTracks; i++)
     {
-        AliAODTrack* tr = aod->GetTrack(i);
+        AliAODTrack* tr = dynamic_cast<AliAODTrack*>(aod->GetTrack(i));
+        if(!tr) AliFatal("Not a standard AOD");
         if ((tr->Pt())<PtAssocMin) continue;
         if (!(IsMyGoodPrimaryTrack(tr))) continue;
         selectedTracks->Add(tr);
index 747be6f..86cf2fe 100644 (file)
@@ -513,7 +513,8 @@ void AliAnalysisTaskCTauPbPbaod::UserExec(Option_t *)
   Int_t ntrk1=aod->GetNumberOfTracks();
   Int_t mult=0;
   for (Int_t i=0; i<ntrk1; i++) {
-    AliAODTrack *t=aod->GetTrack(i);
+    AliAODTrack *t=dynamic_cast<AliAODTrack*>(aod->GetTrack(i));
+    if(!t) AliFatal("Not a standard AOD");
     if (t->IsMuonTrack()) continue;
     if (!t->IsOn(AliAODTrack::kTPCrefit)) continue;
 
index c31254a..f6d5114 100644 (file)
@@ -522,7 +522,8 @@ void AliAnalysisTaskK0sBayes::Analyze(AliAODEvent* aodEvent)
   Double_t Qx2 = 0, Qy2 = 0;
   Double_t Qx3 = 0, Qy3 = 0;
   for(Int_t iT = 0; iT < ntrack; iT++) {
-    AliAODTrack* aodTrack = aodEvent->GetTrack(iT);
+    AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(iT));
+    if(!aodTrack) AliFatal("Not a standard AOD");
     
     if (!aodTrack){
       continue;
@@ -576,7 +577,8 @@ void AliAnalysisTaskK0sBayes::Analyze(AliAODEvent* aodEvent)
     nmc = mcArray->GetEntries();
 
   for(Int_t i=0;i < ntrack;i++){ // loop on tracks
-    AliAODTrack* track = aodEvent->GetTrack(i);
+    AliAODTrack* track = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(i));
+    if(!track) AliFatal("Not a standard AOD");
     
     AliAODMCParticle *mcp = NULL;
     Int_t pdg = 0;
@@ -641,7 +643,8 @@ void AliAnalysisTaskK0sBayes::Analyze(AliAODEvent* aodEvent)
 
   // start analysis K0s
   for(Int_t i=0;i < ntrack;i++){ // loop on positive tracks
-    AliAODTrack* KpTrack = aodEvent->GetTrack(i);
+    AliAODTrack* KpTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(i));
+    if(!KpTrack) AliFatal("Not a standard AOD");
         
     if (!KpTrack){
       continue;
@@ -770,7 +773,8 @@ void AliAnalysisTaskK0sBayes::Analyze(AliAODEvent* aodEvent)
     if(iks > -1 && fIpiN[iks] > -1){
       //for(Int_t j=0;j < ntrack;j++){ // loop on negative tracks
       Int_t j = fIpiN[iks];
-      AliAODTrack* KnTrack = aodEvent->GetTrack(j);
+      AliAODTrack* KnTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(j));
+      if(!KnTrack) AliFatal("Not a standard AOD");
       
       if (!KnTrack){
        continue;
@@ -1041,7 +1045,8 @@ void AliAnalysisTaskK0sBayes::SelectK0s(){
   // fill pion stacks
   Int_t nAODTracks = fOutputAOD->GetNumberOfTracks();
   for(Int_t iT = 0; iT < nAODTracks; iT++) { // loop on the tracks
-    AliAODTrack* aodTrack = fOutputAOD->GetTrack(iT);
+    AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(fOutputAOD->GetTrack(iT));
+    if(!aodTrack) AliFatal("Not a standard AOD");
     
     if (!aodTrack){
       continue;
@@ -1196,7 +1201,8 @@ Int_t AliAnalysisTaskK0sBayes::FindDaugheterIndex(AliAODTrack *trk){
   Int_t ntrack = fOutputAOD->GetNumberOfTracks();
 
   for(Int_t i=0;i < ntrack;i++){ // loop on tracks
-    AliAODTrack* track = fOutputAOD->GetTrack(i);
+    AliAODTrack* track = dynamic_cast<AliAODTrack*>(fOutputAOD->GetTrack(i));
+    if(!track) AliFatal("Not a standard AOD");
     if(track == trk) return i;
   }
   
index 1521890..a97f48b 100644 (file)
@@ -526,7 +526,8 @@ void AliAnalysisTaskLambdaBayes::Analyze(AliAODEvent* aodEvent)
   Double_t Qx2 = 0, Qy2 = 0;
   Double_t Qx3 = 0, Qy3 = 0;
   for(Int_t iT = 0; iT < ntrack; iT++) {
-    AliAODTrack* aodTrack = aodEvent->GetTrack(iT);
+    AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(iT));
+    if(!aodTrack) AliFatal("Not a standard AOD");
     
     if (!aodTrack){
       continue;
@@ -583,7 +584,8 @@ void AliAnalysisTaskLambdaBayes::Analyze(AliAODEvent* aodEvent)
     nmc = mcArray->GetEntries();
 
   for(Int_t i=0;i < ntrack;i++){ // loop on tracks
-    AliAODTrack* track = aodEvent->GetTrack(i);
+    AliAODTrack* track = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(i));
+    if(!track) AliFatal("Not a standard AOD");
     
     AliAODMCParticle *mcp = NULL;
     Int_t pdg = 0;
@@ -648,7 +650,8 @@ void AliAnalysisTaskLambdaBayes::Analyze(AliAODEvent* aodEvent)
 
   // start analysis Lambda
   for(Int_t i=0;i < ntrack;i++){ // loop on proton candidate tracks
-    AliAODTrack* KpTrack = aodEvent->GetTrack(i);
+    AliAODTrack* KpTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(i));
+    if(!KpTrack) AliFatal("Not a standard AOD");
         
     if (!KpTrack){
       continue;
@@ -783,7 +786,8 @@ void AliAnalysisTaskLambdaBayes::Analyze(AliAODEvent* aodEvent)
     if(iks > -1 && fIpN[iks] > -1){
       //for(Int_t j=0;j < ntrack;j++){ // loop on negative tracks
       Int_t j = fIpN[iks];
-      AliAODTrack* KnTrack = aodEvent->GetTrack(j);
+      AliAODTrack* KnTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(j));
+      if(!KnTrack) AliFatal("Not a standard AOD");
       
       if (!KnTrack){
        continue;
@@ -1103,7 +1107,8 @@ Int_t AliAnalysisTaskLambdaBayes::FindDaugheterIndex(AliAODTrack *trk){
   Int_t ntrack = fOutputAOD->GetNumberOfTracks();
 
   for(Int_t i=0;i < ntrack;i++){ // loop on tracks
-    AliAODTrack* track = fOutputAOD->GetTrack(i);
+    AliAODTrack* track = dynamic_cast<AliAODTrack*>(fOutputAOD->GetTrack(i));
+    if(!track) AliFatal("Not a standard AOD");
     if(track == trk) return i;
   }
   
index aee5234..8031285 100644 (file)
@@ -497,7 +497,8 @@ void AliAnalysisTaskPhiBayes::Analyze(AliAODEvent* aodEvent)
   Double_t Qx2 = 0, Qy2 = 0;
   Double_t Qx3 = 0, Qy3 = 0;
   for(Int_t iT = 0; iT < ntrack; iT++) {
-    AliAODTrack* aodTrack = aodEvent->GetTrack(iT);
+    AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(iT));
+    if(!aodTrack) AliFatal("Not a standard AOD");
     
     if (!aodTrack){
       continue;
@@ -553,7 +554,8 @@ void AliAnalysisTaskPhiBayes::Analyze(AliAODEvent* aodEvent)
     nmc = mcArray->GetEntries();
 
   for(Int_t i=0;i < ntrack;i++){ // loop on tracks
-    AliAODTrack* track = aodEvent->GetTrack(i);
+    AliAODTrack* track = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(i));
+    if(!track) AliFatal("Not a standard AOD");
     
     AliAODMCParticle *mcp = NULL;
     Int_t pdg = 0;
@@ -618,7 +620,8 @@ void AliAnalysisTaskPhiBayes::Analyze(AliAODEvent* aodEvent)
 
   // start analysis phi
   for(Int_t i=0;i < ntrack;i++){ // loop on positive tracks
-    AliAODTrack* KpTrack = aodEvent->GetTrack(i);
+    AliAODTrack* KpTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(i));
+    if(!KpTrack) AliFatal("Not a standard AOD");
         
     if (!KpTrack){
       continue;
@@ -741,7 +744,8 @@ void AliAnalysisTaskPhiBayes::Analyze(AliAODEvent* aodEvent)
     if(fPtKp > 4.299) fPtKp = 4.299;
 
     for(Int_t j=0;j < ntrack;j++){ // loop on negative tracks
-      AliAODTrack* KnTrack = aodEvent->GetTrack(j);
+      AliAODTrack* KnTrack = dynamic_cast<AliAODTrack*>(aodEvent->GetTrack(j));
+      if(!KnTrack) AliFatal("Not a standard AOD");
       
       if (!KnTrack){
        continue;
index 8f61252..7464944 100644 (file)
@@ -36,6 +36,7 @@
 
 // header of the class itsself
 #include "AliCDMesonTracks.h"
+#include "assert.h"
 
 
 //------------------------------------------------------------------------------
@@ -400,7 +401,8 @@ void AliCDMesonTracks::CutTrack(AliAODEvent *AODEvent, Int_t mode /* = 0 */)
        }
 
        for (Int_t iTrk = 0; iTrk < AODEvent->GetNumberOfTracks(); iTrk++) {
-               const AliAODTrack* trk = AODEvent->GetTrack(iTrk);
+               const AliAODTrack* trk = dynamic_cast<const AliAODTrack*>(AODEvent->GetTrack(iTrk));
+                assert(trk&&"Not a standard AOD");
 
                if (trk->TestFilterBit(bit)) {
                        // test whether track was selected by that filter
index 6b985b5..43b11b6 100644 (file)
@@ -273,7 +273,8 @@ void AliAnalysisTaskUpcK0sK0s::RunAODhist()
   
   //Track loop
   for(Int_t itr=0; itr<aod ->GetNumberOfTracks(); itr++) {
-    AliAODTrack *trk = aod->GetTrack(itr);
+    AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(itr));
+    if(!trk) AliFatal("Not a standard AOD");
     if( !trk ) continue;
     if(!(trk->TestFilterBit(1<<0))) continue;
 
@@ -407,7 +408,8 @@ if(!header) AliFatal("Not a standard AOD");
   
   //Track loop
   for(Int_t itr=0; itr<aod ->GetNumberOfTracks(); itr++) {
-    AliAODTrack *trk = aod->GetTrack(itr);
+    AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(itr));
+    if(!trk) AliFatal("Not a standard AOD");
     if( !trk ) continue;
     if(!(trk->TestFilterBit(1<<0))) continue;
 
index 4a32c74..a5dfa80 100644 (file)
@@ -612,7 +612,7 @@ void AliAnalysisTaskUpcPsi2s::RunAODhist()
    
   //Four track loop
   for(Int_t itr=0; itr<aod ->GetNumberOfTracks(); itr++) {
-    AliAODTrack *trk = aod->GetTrack(itr);
+    AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(itr));   
     if( !trk ) continue;
     if(!(trk->TestFilterBit(1<<0))) continue;
 
@@ -643,8 +643,9 @@ void AliAnalysisTaskUpcPsi2s::RunAODhist()
          MeanPt = GetMedian(TrackPt);
          fHistNeventsPsi2s->Fill(6);
          for(Int_t i=0; i<4; i++){
-               AliAODTrack *trk = aod->GetTrack(TrackIndex[i]);
-               
+                AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(TrackIndex[i]));
+                if(!trk) AliFatal("Not a standard AOD");
+
                if(trk->Pt() > MeanPt){   
                        fRecTPCsignal[nLepton] = trk->GetTPCsignal();      
                        qLepton[nLepton] = trk->Charge();
@@ -701,7 +702,7 @@ void AliAnalysisTaskUpcPsi2s::RunAODhist()
   nGoodTracks = 0;
   //Two track loop
   for(Int_t itr=0; itr<aod ->GetNumberOfTracks(); itr++) {
-    AliAODTrack *trk = aod->GetTrack(itr);
+    AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(itr));
     if( !trk ) continue;
     if(!(trk->TestFilterBit(1<<0))) continue;
 
@@ -730,7 +731,8 @@ void AliAnalysisTaskUpcPsi2s::RunAODhist()
   if(nGoodTracks == 2){
          fHistNeventsJPsi->Fill(6);
          for(Int_t i=0; i<2; i++){
-               AliAODTrack *trk = aod->GetTrack(TrackIndex[i]);                
+                AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(TrackIndex[i]));           
+                if(!trk) AliFatal("Not a standard AOD");
                if(trk->Pt() > 1) nHighPt++;     
                fRecTPCsignal[nLepton] = trk->GetTPCsignal();     
                qLepton[nLepton] = trk->Charge();
@@ -860,7 +862,7 @@ void AliAnalysisTaskUpcPsi2s::RunAODtree()
   
   //Track loop - loose cuts
   for(Int_t itr=0; itr<aod ->GetNumberOfTracks(); itr++) {
-    AliAODTrack *trk = aod->GetTrack(itr);
+    AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(itr));
     if( !trk ) continue;
     if(!(trk->TestFilterBit(1<<0))) continue;
 
@@ -875,7 +877,7 @@ void AliAnalysisTaskUpcPsi2s::RunAODtree()
   
   //Two track loop
   for(Int_t itr=0; itr<aod ->GetNumberOfTracks(); itr++) {
-    AliAODTrack *trk = aod->GetTrack(itr);
+    AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(itr));
     if( !trk ) continue;
     if(!(trk->TestFilterBit(1<<0))) continue;
     
@@ -919,8 +921,9 @@ void AliAnalysisTaskUpcPsi2s::RunAODtree()
          KFvtx->SetField(aod->GetMagneticField()); 
   
          for(Int_t i=0; i<2; i++){
-               AliAODTrack *trk = aod->GetTrack(TrackIndex[i]);
-               
+                AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(TrackIndex[i]));
+                if(!trk) AliFatal("Not a standard AOD");
+
                Double_t dca[2] = {0.0,0.0}, cov[3] = {0.0,0.0,0.0};
                AliAODTrack* trk_clone=(AliAODTrack*)trk->Clone("trk_clone");
                if(!trk_clone->PropagateToDCA(fAODVertex,aod->GetMagneticField(),300.,dca,cov)) continue;
@@ -980,7 +983,7 @@ void AliAnalysisTaskUpcPsi2s::RunAODtree()
    nGoodTracks = 0;
    //Four track loop
   for(Int_t itr=0; itr<aod ->GetNumberOfTracks(); itr++) {
-    AliAODTrack *trk = aod->GetTrack(itr);
+    AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(itr));
     if( !trk ) continue;
     if(!(trk->TestFilterBit(1<<0))) continue;
 
@@ -1022,8 +1025,9 @@ void AliAnalysisTaskUpcPsi2s::RunAODtree()
          KFvtx->SetField(aod->GetMagneticField()); 
                  
          for(Int_t i=0; i<4; i++){
-               AliAODTrack *trk = aod->GetTrack(TrackIndex[i]);
-               
+                AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(TrackIndex[i]));
+                if(!trk) AliFatal("Not a standard AOD");
+
                Double_t dca[2] = {0.0,0.0}, cov[3] = {0.0,0.0,0.0};
                AliAODTrack* trk_clone=(AliAODTrack*)trk->Clone("trk_clone");
                if(!trk_clone->PropagateToDCA(fAODVertex,aod->GetMagneticField(),300.,dca,cov)) continue;
@@ -1700,7 +1704,7 @@ for(Int_t i=0; i<5; i++){
   //Two track loop
   nGoodTracks = 0;
   for(Int_t itr=0; itr<aod ->GetNumberOfTracks(); itr++) {
-    AliAODTrack *trk = aod->GetTrack(itr);
+    AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(itr));
     if( !trk ) continue;
     if(!(trk->TestFilterBit(1<<0))) continue;
 
@@ -1730,7 +1734,9 @@ for(Int_t i=0; i<5; i++){
   
   if(nGoodTracks == 2){
          for(Int_t k=0; k<2; k++){
-               AliAODTrack *trk = aod->GetTrack(TrackIndex[k]);                
+                AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(TrackIndex[k]));
+                if(!trk) AliFatal("Not a standard AOD");
+
                if(trk->Pt() > 1) nHighPt++;     
                fRecTPCsignal[nLepton] = trk->GetTPCsignal();     
                qLepton[nLepton] = trk->Charge();
@@ -1769,7 +1775,7 @@ for(Int_t i=0; i<4; i++){
   //Two track loop
   nGoodTracks = 0;
   for(Int_t itr=0; itr<aod ->GetNumberOfTracks(); itr++) {
-    AliAODTrack *trk = aod->GetTrack(itr);
+    AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(itr));
     if( !trk ) continue;
     if(!(trk->TestFilterBit(1<<0))) continue;
 
@@ -1799,7 +1805,9 @@ for(Int_t i=0; i<4; i++){
   
   if(nGoodTracks == 2){
          for(Int_t k=0; k<2; k++){
-               AliAODTrack *trk = aod->GetTrack(TrackIndex[k]);                
+                AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(TrackIndex[k]));
+                if(!trk) AliFatal("Not a standard AOD");
+    
                if(trk->Pt() > 1) nHighPt++;     
                fRecTPCsignal[nLepton] = trk->GetTPCsignal();     
                qLepton[nLepton] = trk->Charge();
@@ -1874,7 +1882,7 @@ for(Int_t i=0; i<5; i++){
   //Four track loop
   nGoodTracks = 0; nSpdHits = 0;
   for(Int_t itr=0; itr<aod ->GetNumberOfTracks(); itr++) {
-    AliAODTrack *trk = aod->GetTrack(itr);
+    AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(itr));
     if( !trk ) continue;
     if(!(trk->TestFilterBit(1<<0))) continue;
 
@@ -1908,7 +1916,9 @@ for(Int_t i=0; i<5; i++){
          if(i!=4){ if(nSpdHits<2) continue;} 
          MeanPt = GetMedian(TrackPt);
          for(Int_t k=0; k<4; k++){
-               AliAODTrack *trk = aod->GetTrack(TrackIndex[k]);
+                AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(TrackIndex[k]));
+                if(!trk) AliFatal("Not a standard AOD");
+
                if(trk->Pt() > MeanPt){   
                        fRecTPCsignal[nLepton] = trk->GetTPCsignal();      
                        qLepton[nLepton] = trk->Charge();
@@ -1953,7 +1963,7 @@ for(Int_t i=0; i<4; i++){
   //Four track loop
   nGoodTracks = 0; nSpdHits = 0;
   for(Int_t itr=0; itr<aod ->GetNumberOfTracks(); itr++) {
-    AliAODTrack *trk = aod->GetTrack(itr);
+    AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(itr));
     if( !trk ) continue;
     if(!(trk->TestFilterBit(1<<0))) continue;
 
@@ -1987,7 +1997,9 @@ for(Int_t i=0; i<4; i++){
          if(nSpdHits<2) continue; 
          MeanPt = GetMedian(TrackPt);
          for(Int_t k=0; k<4; k++){
-               AliAODTrack *trk = aod->GetTrack(TrackIndex[k]);
+                AliAODTrack *trk = dynamic_cast<AliAODTrack*>(aod->GetTrack(TrackIndex[k]));
+                if(!trk) AliFatal("Not a standard AOD");
+
                if(trk->Pt() > MeanPt){   
                        fRecTPCsignal[nLepton] = trk->GetTPCsignal();      
                        qLepton[nLepton] = trk->Charge();
index fdd94f5..ef7502a 100644 (file)
@@ -393,7 +393,8 @@ void AliAODHandler::StoreMCParticles(){
   Int_t tofLabel[3];
   if(tracks){
     for(int it = 0; it < fAODEvent->GetNumberOfTracks();++it){
-      AliAODTrack *track = fAODEvent->GetTrack(it);
+      AliAODTrack *track = dynamic_cast<AliAODTrack*>(fAODEvent->GetTrack(it));
+      if(!track) AliFatal("Not a standard AOD");
       
       Int_t sign = 1;
       Int_t label = track->GetLabel();
index fe358a7..c14a43c 100644 (file)
@@ -466,7 +466,8 @@ void AliAODTagCreator::FillEventTag(AliAODEvent* aod, AliEventTag* evTag)
     }
     Int_t nTracks = fAODEvent->GetNumberOfTracks();
     for (Int_t nTr = 0; nTr < nTracks; nTr++) {
-       AliAODTrack *track = fAODEvent->GetTrack(nTr);
+       AliAODTrack *track = dynamic_cast<AliAODTrack*>(fAODEvent->GetTrack(nTr));
+       if(!track) AliFatal("Not a standard AOD");
        
        Double_t fPt = track->Pt();
        if(fPt > maxPt) {