#include "TROOT.h" #include "TList.h" #include "AliMCEvent.h" #include "AliStack.h" #include "AliGenEventHeader.h" #include "AliGenCocktailEventHeader.h" #include "AliGenPythiaEventHeader.h" #include #include #include "AliAnalysisHelperJetTasks.h" ClassImp(AliAnalysisHelperJetTasks) AliGenPythiaEventHeader* AliAnalysisHelperJetTasks::GetPythiaEventHeader(AliMCEvent *mcEvent){ AliGenEventHeader* genHeader = mcEvent->GenEventHeader(); AliGenPythiaEventHeader* pythiaGenHeader = dynamic_cast(genHeader); if(!pythiaGenHeader){ // cocktail ?? AliGenCocktailEventHeader* genCocktailHeader = dynamic_cast(genHeader); if (!genCocktailHeader) { Printf("%s %d: Unknown header type (not Pythia or Cocktail)",(char*)__FILE__,__LINE__); return 0; } TList* headerList = genCocktailHeader->GetHeaders(); for (Int_t i=0; iGetEntries(); i++) { pythiaGenHeader = dynamic_cast(headerList->At(i)); if (pythiaGenHeader) break; } if(!pythiaGenHeader){ Printf("%s %d: PythiaHeader not found!",(char*)__FILE__,__LINE__); return 0; } } return pythiaGenHeader; } void AliAnalysisHelperJetTasks::PrintStack(AliMCEvent *mcEvent,Int_t iFirst,Int_t iLast,Int_t iMaxPrint){ AliStack *stack = mcEvent->Stack(); if(!stack){ Printf("%s%d No Stack available",(char*)__FILE__,__LINE__); return; } static Int_t iCount = 0; if(iCount>iMaxPrint)return; Int_t nStack = stack->GetNtrack(); if(iLast == 0)iLast = nStack; else if(iLast > nStack)iLast = nStack; Printf("####################################################################"); for(Int_t np = iFirst;npParticle(np); Printf("Nr.%d --- Status %d ---- Mother1 %d Mother2 %d Daughter1 %d Daughter2 %d ", np,p->GetStatusCode(),p->GetMother(0),p->GetMother(1),p->GetDaughter(0),p->GetDaughter(1)); Printf("Eta %3.3f Phi %3.3f ",p->Eta(),p->Phi()); p->Print(); Printf("---------------------------------------"); } iCount++; }