fDyBoost = 0;
Warning("Init","SetNuclei used. Use SetProjectile + SetTarget instead. fDyBoost has been reset to 0\n");
}
+
+ if (fQuench) {
+ fPythia->InitQuenching(0., 0.1, 1., 8., 0);
+ }
+
}
void AliGenPythia::Generate()
// event loop
while(1)
{
+//
+// If quenching option has been selected switch off fragmentation first
+//
if (fQuench) {
fPythia->SetMSTJ(1, 0);
}
+//
+// Produce event
+//
fPythia->Pyevnt();
-
if (fQuench) {
+//
+// Run quenching routine
+//
fPythia->Quench();
+//
+// Switch fragmentation on
fPythia->SetMSTJ(1, 1);
+//
+// .. and perform fragmentation
fPythia->Pyexec();
+
}
if (gAlice) {
fTrials++;
fPythia->ImportParticles(fParticles,"All");
-
Boost();
//
//
Bool_t flavorOK = kFALSE;
Bool_t selectOK = kFALSE;
if (fFeedDownOpt) {
- if (kfl >= fFlavorSelect) flavorOK = kTRUE;
+ if (kfl >= fFlavorSelect) flavorOK = kTRUE;
} else {
- if (kfl > fFlavorSelect) {
- nc = -1;
- break;
- }
- if (kfl == fFlavorSelect) flavorOK = kTRUE;
+ if (kfl > fFlavorSelect) {
+ nc = -1;
+ break;
+ }
+ if (kfl == fFlavorSelect) flavorOK = kTRUE;
}
switch (fStackFillOpt) {
case kFlavorSelection:
- selectOK = kTRUE;
- break;
+ selectOK = kTRUE;
+ break;
case kParentSelection:
- if (ParentSelected(kf) || kf <= 10) selectOK = kTRUE;
- break;
+ if (ParentSelected(kf) || kf <= 10) selectOK = kTRUE;
+ break;
}
if (flavorOK && selectOK) {
//
return *this;
}
-void AliGenPythia::LoadEvent()
+void AliGenPythia::LoadEvent(AliStack* stack, Int_t flag)
{
//
// Load event into Pythia Common Block
//
- AliRunLoader* rl = AliRunLoader::GetRunLoader();
- Int_t npart = (rl->Stack())-> GetNprimary();
- (fPythia->GetPyjets())->N = npart;
-
+// AliRunLoader* rl = AliRunLoader::GetRunLoader();
+ Int_t npart = stack -> GetNprimary();
+ Int_t n0 = 0;
+
+ if (!flag) {
+ (fPythia->GetPyjets())->N = npart;
+ } else {
+ n0 = (fPythia->GetPyjets())->N;
+ (fPythia->GetPyjets())->N = n0 + npart;
+ }
+
+
for (Int_t part = 0; part < npart; part++) {
- TParticle *MPart = (rl->Stack())->Particle(part);
+ TParticle *MPart = stack->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 m = MPart->GetCalcMass();
- (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())->P[0][part+n0] = px;
+ (fPythia->GetPyjets())->P[1][part+n0] = py;
+ (fPythia->GetPyjets())->P[2][part+n0] = pz;
+ (fPythia->GetPyjets())->P[3][part+n0] = e;
+ (fPythia->GetPyjets())->P[4][part+n0] = m;
- (fPythia->GetPyjets())->K[1][part] = kf;
- (fPythia->GetPyjets())->K[0][part] = ks;
+ (fPythia->GetPyjets())->K[1][part+n0] = kf;
+ (fPythia->GetPyjets())->K[0][part+n0] = ks;
}
}