]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/AliPWG4HighPtSpectra.cxx
safety measures when no name for PartonInfo is given
[u/mrichter/AliRoot.git] / PWGJE / AliPWG4HighPtSpectra.cxx
index 2acc1224ccd3c40f78b70cee449cc96e69c6207d..d61b3cbf34b81ea8d0ec5601e01f3a52e923898a 100644 (file)
@@ -419,10 +419,13 @@ 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) )
+      if((!aodtrack->TestFilterBit(fFilterMask)) || 
+         ((!fCFManagerPos->CheckParticleCuts(kStepReconstructed,aodtrack)) && (aodtrack->Charge()>0.)) ||
+         ((!fCFManagerNeg->CheckParticleCuts(kStepReconstructed,aodtrack)) && (aodtrack->Charge()<0))    )
         continue;
       else {
         track = static_cast<AliVTrack*>(aodtrack);
@@ -433,12 +436,8 @@ void AliPWG4HighPtSpectra::Exec(Option_t *)
       containerInputRec[2] = track->Eta();
       containerInputRec[3] = track->GetTPCNcls();
 
-      if(track->Charge()>0.) {
-        fCFManagerPos->GetParticleContainer()->Fill(containerInputRec,kStepReconstructed);
-      }
-      if(track->Charge()<0.) {
-        fCFManagerNeg->GetParticleContainer()->Fill(containerInputRec,kStepReconstructed);
-      }
+      if(track->Charge()>0.) fCFManagerPos->GetParticleContainer()->Fill(containerInputRec,kStepReconstructed);
+      if(track->Charge()<0.) fCFManagerNeg->GetParticleContainer()->Fill(containerInputRec,kStepReconstructed);
 
       if(fArrayMCAOD) {
         Int_t label = TMath::Abs(track->GetLabel());
@@ -462,24 +461,16 @@ void AliPWG4HighPtSpectra::Exec(Option_t *)
 
        //Container with primaries
        if(particle->IsPhysicalPrimary()) {
-         if(particle->Charge()>0.) {
-           fCFManagerPos->GetParticleContainer()->Fill(containerInputRecMC,kStepReconstructedMC);
-          }
-         if(particle->Charge()<0.) {
-           fCFManagerNeg->GetParticleContainer()->Fill(containerInputRecMC,kStepReconstructedMC);
-          }
+         if(particle->Charge()>0.) fCFManagerPos->GetParticleContainer()->Fill(containerInputRecMC,kStepReconstructedMC);
+         if(particle->Charge()<0.) fCFManagerNeg->GetParticleContainer()->Fill(containerInputRecMC,kStepReconstructedMC);
          //Fill pT resolution plots for primaries
          //fPtRelUncertainty1PtPrim->Fill(containerInputRec[0],containerInputRec[0]*TMath::Sqrt(track->GetSigma1Pt2())); //This has not been implemented in AOD analysis, since they are also produced by the AddTaskPWG4HighPtTrackQA.C macro
        }
 
        //Container with secondaries
        if (!particle->IsPhysicalPrimary() ) {
-         if(particle->Charge()>0.) {
-           fCFManagerPos->GetParticleContainer()->Fill(containerInputRecMC,kStepSecondaries);
-         }
-         if(particle->Charge()<0.) {
-           fCFManagerNeg->GetParticleContainer()->Fill(containerInputRecMC,kStepSecondaries);
-         }
+         if(particle->Charge()>0.) fCFManagerPos->GetParticleContainer()->Fill(containerInputRecMC,kStepSecondaries);
+         if(particle->Charge()<0.) fCFManagerNeg->GetParticleContainer()->Fill(containerInputRecMC,kStepSecondaries);
          //Fill pT resolution plots for primaries
          //fPtRelUncertainty1PtSec->Fill(containerInputRec[0],containerInputRec[0]*TMath::Sqrt(track->GetSigma1Pt2())); //This has not been implemented in AOD analysis, since they are also produced by the AddTaskPWG4HighPtTrackQA.C macro
        }
@@ -489,6 +480,7 @@ void AliPWG4HighPtSpectra::Exec(Option_t *)
     //Fill MC containers if particles are findable
     if(fArrayMCAOD) {
       int noPart = fArrayMCAOD->GetEntriesFast();
+
       for(int iPart = 1; iPart<noPart; iPart++) {
        AliAODMCParticle *mcPart = (AliAODMCParticle*) fArrayMCAOD->At(iPart);
         if(!mcPart) continue;
@@ -513,12 +505,8 @@ void AliPWG4HighPtSpectra::Exec(Option_t *)
          containerInputMC[3] = 159.;
          
          if(mcPart->IsPhysicalPrimary()) {
-           if(mcPart->Charge()>0. && fCFManagerPos->CheckParticleCuts(kStepMCAcceptance,mcPart)) {
-              fCFManagerPos->GetParticleContainer()->Fill(containerInputMC,kStepMCAcceptance);
-            }
-           if(mcPart->Charge()<0. && fCFManagerNeg->CheckParticleCuts(kStepMCAcceptance,mcPart)) {
-              fCFManagerNeg->GetParticleContainer()->Fill(containerInputMC,kStepMCAcceptance);
-            }
+           if(mcPart->Charge()>0. && fCFManagerPos->CheckParticleCuts(kStepMCAcceptance,mcPart)) fCFManagerPos->GetParticleContainer()->Fill(containerInputMC,kStepMCAcceptance);
+           if(mcPart->Charge()<0. && fCFManagerNeg->CheckParticleCuts(kStepMCAcceptance,mcPart)) fCFManagerNeg->GetParticleContainer()->Fill(containerInputMC,kStepMCAcceptance);
          }
         }
       }
@@ -666,24 +654,16 @@ void AliPWG4HighPtSpectra::Exec(Option_t *)
 
        //Container with primaries
        if(fStack->IsPhysicalPrimary(label)) {
-         if(particle->GetPDG()->Charge()>0.) {
-           fCFManagerPos->GetParticleContainer()->Fill(containerInputRecMC,kStepReconstructedMC);
-         }
-         if(particle->GetPDG()->Charge()<0.) {
-           fCFManagerNeg->GetParticleContainer()->Fill(containerInputRecMC,kStepReconstructedMC);
-         }
+         if(particle->GetPDG()->Charge()>0.) fCFManagerPos->GetParticleContainer()->Fill(containerInputRecMC,kStepReconstructedMC);
+         if(particle->GetPDG()->Charge()<0.) fCFManagerNeg->GetParticleContainer()->Fill(containerInputRecMC,kStepReconstructedMC);
          //Fill pT resolution plots for primaries
          fPtRelUncertainty1PtPrim->Fill(containerInputRec[0],containerInputRec[0]*TMath::Sqrt(track->GetSigma1Pt2()));
        }
 
        //Container with secondaries
        if (!fStack->IsPhysicalPrimary(label) ) {
-         if(particle->GetPDG()->Charge()>0.) {
-           fCFManagerPos->GetParticleContainer()->Fill(containerInputMC,kStepSecondaries);
-         }
-         if(particle->GetPDG()->Charge()<0.) {
-           fCFManagerNeg->GetParticleContainer()->Fill(containerInputMC,kStepSecondaries);
-         }
+         if(particle->GetPDG()->Charge()>0.) fCFManagerPos->GetParticleContainer()->Fill(containerInputMC,kStepSecondaries);
+         if(particle->GetPDG()->Charge()<0.) fCFManagerNeg->GetParticleContainer()->Fill(containerInputMC,kStepSecondaries);
          //Fill pT resolution plots for primaries
          fPtRelUncertainty1PtSec->Fill(containerInputRec[0],containerInputRec[0]*TMath::Sqrt(track->GetSigma1Pt2()));
        }
@@ -902,7 +882,12 @@ AliGenHijingEventHeader*  AliPWG4HighPtSpectra::GetHijingEventHeaderAOD(AliAODEv
   AliGenHijingEventHeader* hijingGenHeader = 0x0;
   if(aodEvent) {
     AliAODMCHeader* mcHeader = (AliAODMCHeader*) aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
-    hijingGenHeader = (AliGenHijingEventHeader*) mcHeader->GetCocktailHeaders()->FindObject("Hijing");
+    TList* headerList = mcHeader->GetCocktailHeaders();
+    for (Int_t i=0; i<headerList->GetEntries(); i++) {
+      hijingGenHeader = dynamic_cast<AliGenHijingEventHeader*>(headerList->At(i));
+      if (hijingGenHeader)
+        break;
+    }
   }
   return hijingGenHeader;
 }