+void AliGenPythia::LoadEvent()
+{
+//
+// Load event into Pythia Common Block
+//
+
+
+ Int_t npart = (Int_t) (gAlice->TreeK())->GetEntries();
+ (fPythia->GetPyjets())->N = npart;
+
+ for (Int_t part = 0; part < npart; part++) {
+ TParticle *MPart = gAlice->Particle(part);
+ Int_t kf = MPart->GetPdgCode();
+ Int_t ks = MPart->GetStatusCode();
+ Float_t px = MPart->Px();
+ Float_t py = MPart->Py();
+ Float_t pz = MPart->Pz();
+ Float_t e = MPart->Energy();
+ Float_t p = TMath::Sqrt(px * px + py * py + pz * pz);
+ Float_t m = TMath::Sqrt(e * e - p * p);
+
+
+ (fPythia->GetPyjets())->P[0][part] = px;
+ (fPythia->GetPyjets())->P[1][part] = py;
+ (fPythia->GetPyjets())->P[2][part] = pz;
+ (fPythia->GetPyjets())->P[3][part] = e;
+ (fPythia->GetPyjets())->P[4][part] = m;
+
+ (fPythia->GetPyjets())->K[1][part] = kf;
+ (fPythia->GetPyjets())->K[0][part] = ks;
+ }
+}
+
+
+void AliGenPythia::GetJets(Float_t dist, Int_t part, Int_t& nJets, Int_t& nJetsTrig, Float_t jets[4][10])
+{
+//
+// Calls the Pythia clustering algorithm to find jets in the current event
+//
+ Int_t n = fPythia->GetN();
+ nJets = 0;
+ nJetsTrig = 0;
+//
+// Configure cluster algorithm
+//
+ fPythia->SetPARU(43, dist);
+ fPythia->SetMSTU(41, part);
+//
+// Call cluster algorithm
+//
+ fPythia->Pyclus(nJets);
+//
+// Loading jets from common block
+//
+ Int_t i;
+ for (i = 0; i < nJets; i++) {
+ Float_t px = (fPythia->GetPyjets())->P[0][n+i];
+ Float_t py = (fPythia->GetPyjets())->P[1][n+i];
+ Float_t pz = (fPythia->GetPyjets())->P[2][n+i];
+ Float_t e = (fPythia->GetPyjets())->P[3][n+i];
+ Float_t pt = TMath::Sqrt(px * px + py * py);
+ Float_t phi = TMath::ATan2(py,px);
+ Float_t theta = TMath::ATan2(pt,pz);
+ Float_t et = e * TMath::Sin(theta);
+ Float_t eta = -TMath::Log(TMath::Tan(theta / 2.));
+
+ if (
+ eta > fEtaMinJet && eta < fEtaMaxJet &&
+ phi > fPhiMinJet && eta < fPhiMaxJet &&
+ et > fEtMinJet && et < fEtMaxJet
+ )
+ {
+// printf("\n*Trigger-Jet #%d: %10.3f %10.3f %10.3f %10.3f \n", i, pt, et, eta, phi * kRaddeg);
+ jets[0][nJetsTrig] = px;
+ jets[1][nJetsTrig] = py;
+ jets[2][nJetsTrig] = pz;
+ jets[3][nJetsTrig] = e;
+ nJetsTrig++;
+
+ } else {
+// printf("\n........-Jet #%d: %10.3f %10.3f %10.3f %10.3f \n", i, pt, et, eta, phi * kRaddeg);
+ }
+ }
+}