//
AliHeader* header = fMCEventH->MCEvent()->Header();
- if (!header)return;
-
- // get the MC vertex
- AliGenEventHeader* genHeader = header->GenEventHeader();
- TArrayF vtxMC(3);
- genHeader->PrimaryVertex(vtxMC);
- mcHeader->SetVertex(vtxMC[0],vtxMC[1],vtxMC[2]);
-
- // we search the MCEventHeaders first
- // Two cases, cocktail or not...
- AliGenCocktailEventHeader* genCocktailHeader = dynamic_cast<AliGenCocktailEventHeader*>(genHeader);
- if(genCocktailHeader){
- // we have a coktail header
- mcHeader->AddGeneratorName(genHeader->GetName());
- // Loop from the back so that the first one sets the process type
- TList* headerList = genCocktailHeader->GetHeaders();
- for(int i = headerList->GetEntries()-1;i>=0;--i){
- AliGenEventHeader *headerEntry = dynamic_cast<AliGenEventHeader*>(headerList->At(i));
- SetMCHeaderInfo(mcHeader,headerEntry);
- }
- }
- else{
- // No Cocktail just take the first one
- SetMCHeaderInfo(mcHeader,genHeader);
+ // get the MC vertex
+ AliGenEventHeader* genHeader = 0;
+ if (header) genHeader = header->GenEventHeader();
+ if (genHeader) {
+ TArrayF vtxMC(3);
+ genHeader->PrimaryVertex(vtxMC);
+ mcHeader->SetVertex(vtxMC[0],vtxMC[1],vtxMC[2]);
+
+ // we search the MCEventHeaders first
+ // Two cases, cocktail or not...
+ AliGenCocktailEventHeader* genCocktailHeader = dynamic_cast<AliGenCocktailEventHeader*>(genHeader);
+ if(genCocktailHeader){
+ // we have a coktail header
+ mcHeader->AddGeneratorName(genHeader->GetName());
+ // Loop from the back so that the first one sets the process type
+ TList* headerList = genCocktailHeader->GetHeaders();
+ for(int i = headerList->GetEntries()-1;i>=0;--i){
+ AliGenEventHeader *headerEntry = dynamic_cast<AliGenEventHeader*>(headerList->At(i));
+ SetMCHeaderInfo(mcHeader,headerEntry);
+ }
+ }
+ else{
+ // No Cocktail just take the first one
+ SetMCHeaderInfo(mcHeader,genHeader);
+ }
}
+
for(int i = 0; i < np; ++i){
if(fMCEventH->IsParticleSelected(i)){
Int_t flag = 0;
- AliMCParticle* mcpart = mcEvent->GetTrack(i);
- TParticle *part = mcpart->Particle();
+ AliMCParticle* mcpart = (AliMCParticle*) mcEvent->GetTrack(i);
if(i<nprim)flag |= AliAODMCParticle::kPrimary;
if(mcEvent->IsPhysicalPrimary(i))flag |= AliAODMCParticle::kPhysicalPrim;
AliGenPythiaEventHeader *pythiaGenHeader = dynamic_cast<AliGenPythiaEventHeader*>(genHeader);
if (pythiaGenHeader) {
mcHeader->SetEventType(pythiaGenHeader->ProcessType());
+ mcHeader->SetPtHard(pythiaGenHeader->GetPtHard());
return;
}