#include "AliRun.h"
#include "AliRunLoader.h"
#include "AliStack.h"
-#include "AliStack.h"
#include "AliVCluster.h"
#include "AliVEvent.h"
#include "AliGenPythiaEventHeader.h"
-
+#include "AliPythiaInfo.h"
+#include "AliPythiaRndm.h"
ClassImp(AliJetEmbeddingFromGenTask)
//________________________________________________________________________
TFolder *folder = new TFolder(GetName(),GetName());
AliRunLoader *rl = new AliRunLoader(folder);
+ gAlice->SetRunLoader(rl);
rl->MakeHeader();
rl->MakeStack();
AliStack *stack = rl->Stack();
InputEvent()->AddObject(fOutTracks);
fNTracks = 0;
}
-
+
+ if(!fPythiaInfoName.IsNull()) {
+ if (!(InputEvent()->FindListObject(fPythiaInfoName))) {
+ fPythiaInfo = new AliPythiaInfo("PythiaInfo");
+ fPythiaInfo->SetName(fPythiaInfoName);
+ InputEvent()->AddObject(fPythiaInfo);
+ }
+ }
return kTRUE;
}
if (fCopyArray)
CopyTracks();
-
+ AliPythiaRndm::SetPythiaRandom(new TRandom3());
+ AliPythiaRndm::GetPythiaRandom()->SetSeed(clock()+gSystem->GetPid());
AliStack *stack = fGen->GetStack();
stack->Reset();
fGen->Generate();
const Int_t nprim = stack->GetNprimary();
+ // reject if partons are missing from stack for some reason
+ if(nprim < 8) return;
+ if(fPythiaInfo) {
+ TParticle *part6 = stack->Particle(6);
+ TParticle *part7 = stack->Particle(7);
+
+ fPythiaInfo->SetPartonFlag6(TMath::Abs(part6->GetPdgCode()));
+ fPythiaInfo->SetPartonPt6(part6->Pt());
+ fPythiaInfo->SetPartonEta6(part6->Eta());
+ fPythiaInfo->SetPartonPhi6(part6->Phi());
+
+ fPythiaInfo->SetPartonFlag7(TMath::Abs(part7->GetPdgCode()));
+ fPythiaInfo->SetPartonPt7(part7->Pt());
+ fPythiaInfo->SetPartonEta7(part7->Eta());
+ fPythiaInfo->SetPartonPhi7(part7->Phi());
+ }
+
for (Int_t i=0;i<nprim;++i) {
if (!stack->IsPhysicalPrimary(i))
continue;
Float_t xsec = genPH->GetXsection();
Int_t trials = genPH->Trials();
Float_t pthard = genPH->GetPtHard();
-
+ Float_t ptWeight=genPH->EventWeight();
+ if(fPythiaInfo) fPythiaInfo->SetPythiaEventWeight(ptWeight);
fHistXsection->Fill(0.5,xsec);
fHistTrials->Fill(0.5,trials);
fHistPtHard->Fill(pthard);