]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAODHandler.cxx
Moving reconstruction settings to the reco params, new cosmics reco param OCDB entry...
[u/mrichter/AliRoot.git] / STEER / AliAODHandler.cxx
index 596d4ab2771ddaa93c24ce2a4b14544ee20ba235..8f50ed62b87cde32adf91cafcdb83019f2cc6550 100644 (file)
@@ -190,31 +190,33 @@ void AliAODHandler::StoreMCParticles(){
   // 
 
   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);
+      }
   }
+  
 
 
 
@@ -232,8 +234,7 @@ void AliAODHandler::StoreMCParticles(){
   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;
@@ -516,6 +517,7 @@ void  AliAODHandler::SetMCHeaderInfo(AliAODMCHeader *mcHeader,AliGenEventHeader
   AliGenPythiaEventHeader *pythiaGenHeader = dynamic_cast<AliGenPythiaEventHeader*>(genHeader);
     if (pythiaGenHeader) {
       mcHeader->SetEventType(pythiaGenHeader->ProcessType());
+      mcHeader->SetPtHard(pythiaGenHeader->GetPtHard());
       return;
     }