SetJetEtRange();
SetGammaPhiRange();
SetGammaEtaRange();
- SetTriggerParticle();
SetPtKick();
SetQuench();
SetHadronisation();
+ SetTriggerParticle();
fSetNuclei = kFALSE;
fNewMIS = kFALSE;
fHFoff = kFALSE;
SetJetEtRange();
SetGammaPhiRange();
SetGammaEtaRange();
- SetTriggerParticle();
SetJetReconstructionMode();
SetQuench();
SetHadronisation();
SetPtKick();
+ SetTriggerParticle();
// Options determining what to keep in the stack (Heavy flavour generation)
fStackFillOpt = kFlavorSelection; // Keep particle with selected flavor
fFeedDownOpt = kTRUE; // allow feed down from higher family
case kPyCharm:
case kPyCharmUnforced:
case kPyCharmPbPbMNR:
- case kPyCharmppMNR:
case kPyCharmpPbMNR:
+ case kPyCharmppMNR:
+ case kPyCharmppMNRwmi:
fParentSelect[0] = 411;
fParentSelect[1] = 421;
fParentSelect[2] = 431;
fParentSelect[0] = 411;
fFlavorSelect = 4;
break;
+ case kPyDPlusStrangePbPbMNR:
+ case kPyDPlusStrangepPbMNR:
+ case kPyDPlusStrangeppMNR:
+ fParentSelect[0] = 431;
+ fFlavorSelect = 4;
+ break;
case kPyBeauty:
case kPyBeautyPbPbMNR:
case kPyBeautypPbMNR:
case kPyBeautyppMNR:
+ case kPyBeautyppMNRwmi:
fParentSelect[0]= 511;
fParentSelect[1]= 521;
fParentSelect[2]= 531;
if (fProcess != kPyMb && fProcess != kPyJets &&
fProcess != kPyDirectGamma &&
fProcess != kPyMbNonDiffr &&
- fProcess != kPyW && fProcess != kPyZ ) {
+ fProcess != kPyW && fProcess != kPyZ &&
+ fProcess != kPyCharmppMNRwmi && fProcess != kPyBeautyppMNRwmi) {
for (i = 0; i < np; i++) {
TParticle* iparticle = (TParticle *) fParticles->At(i);
}
if (jev >= fNpart || fNpart == -1) {
fKineBias=Float_t(fNpart)/Float_t(fTrials);
+
fQ += fPythia->GetVINT(51);
fX1 += fPythia->GetVINT(41);
fX2 += fPythia->GetVINT(42);
// converts from mm/c to s
const Float_t kconv=0.001/2.999792458e8;
+
+
Int_t np = (fHadronisation) ? fParticles->GetEntriesFast() : fNpartons;
+
Int_t* pParent = new Int_t[np];
for (i=0; i< np; i++) pParent[i] = -1;
if (fProcess == kPyJets || fProcess == kPyDirectGamma) {
TParticle* jet2 = (TParticle *) fParticles->At(7);
if (!CheckTrigger(jet1, jet2)) return 0;
}
-
+
if (fTriggerParticle) {
Bool_t triggered = kFALSE;
for (i = 0; i < np; i++) {
}
if (!triggered) return 0;
}
-
+
+
+ // Check if there is a ccbar or bbbar pair with at least one of the two
+ // in fYMin < y < fYMax
+ if (fProcess == kPyCharmppMNRwmi || fProcess == kPyBeautyppMNRwmi) {
+ TParticle *hvq;
+ Bool_t theQ=kFALSE,theQbar=kFALSE,inYcut=kFALSE;
+ Float_t yQ;
+ Int_t pdgQ;
+ for(i=0; i<np; i++) {
+ hvq = (TParticle*)fParticles->At(i);
+ pdgQ = hvq->GetPdgCode();
+ if(TMath::Abs(pdgQ) != fFlavorSelect) continue;
+ if(pdgQ>0) { theQ=kTRUE; } else { theQbar=kTRUE; }
+ yQ = 0.5*TMath::Log((hvq->Energy()+hvq->Pz()+1.e-13)/
+ (hvq->Energy()-hvq->Pz()+1.e-13));
+ if(yQ>fYMin && yQ<fYMax) inYcut=kTRUE;
+ }
+ if (!theQ || !theQbar || !inYcut) {
+ if (pParent) delete[] pParent;
+ return 0;
+ }
+ }
//Introducing child cuts in case kPyW, kPyZ, kPyMb, and kPyMbNonDiff
if ( (fProcess == kPyW || fProcess == kPyZ || fProcess == kPyMb || fProcess == kPyMbNonDiffr)
}
-
for (i = 0; i < np; i++) {
Int_t trackIt = 0;
TParticle * iparticle = (TParticle *) fParticles->At(i);
} // particle loop
if (pParent) delete[] pParent;
+
return 1;
}
SetMSTP(88,2);
// (D=1)see can be used to form baryons (BARYON JUNCTION)
SetMSTJ(1,1);
- SetMSTP(51,kCTEQ5L);// CTEQ 5L ! CTEQ5L pdf
- SetMSTP(81,1); // Multiple Interactions ON
- SetMSTP(82,4); // Double Gaussian Model
- SetPARP(82,1.8); // [GeV] PT_min at Ref. energy
- SetPARP(89,1000.); // [GeV] Ref. energy
- SetPARP(90,0.16); // 2*epsilon (exponent in power law)
- SetPARP(83,0.5); // Core density in proton matter dist. (def.value)
- SetPARP(84,0.5); // Core radius
- SetPARP(85,0.33); // Regulates gluon prod. mechanism
- SetPARP(86,0.66); // Regulates gluon prod. mechanism
- SetPARP(67,1); // Regulate gluon prod. mechanism
+ AtlasTuning();
break;
case kPyCharm:
SetMSEL(4);
SetMSUB(94,1); // double diffraction
SetMSUB(95,1); // low pt production
-//
-// ATLAS Tuning
-//
-
- SetMSTP(51, kCTEQ5L); // CTEQ5L pdf
- SetMSTP(81,1); // Multiple Interactions ON
- SetMSTP(82,4); // Double Gaussian Model
-
- SetPARP(82,1.8); // [GeV] PT_min at Ref. energy
- SetPARP(89,1000.); // [GeV] Ref. energy
- SetPARP(90,0.16); // 2*epsilon (exponent in power law)
- SetPARP(83,0.5); // Core density in proton matter distribution (def.value)
- SetPARP(84,0.5); // Core radius
- SetPARP(85,0.33); // Regulates gluon prod. mechanism
- SetPARP(86,0.66); // Regulates gluon prod. mechanism
- SetPARP(67,1); // Regulates Initial State Radiation
+ AtlasTuning();
break;
case kPyMbNonDiffr:
// Minimum Bias pp-Collisions
SetMSEL(0);
SetMSUB(95,1); // low pt production
-//
-// ATLAS Tuning
-//
-
- SetMSTP(51,kCTEQ5L); // CTEQ5L pdf
- SetMSTP(81,1); // Multiple Interactions ON
- SetMSTP(82,4); // Double Gaussian Model
-
- SetPARP(82,1.8); // [GeV] PT_min at Ref. energy
- SetPARP(89,1000.); // [GeV] Ref. energy
- SetPARP(90,0.16); // 2*epsilon (exponent in power law)
- SetPARP(83,0.5); // Core density in proton matter distribution (def.value)
- SetPARP(84,0.5); // Core radius
- SetPARP(85,0.33); // Regulates gluon prod. mechanism
- SetPARP(86,0.66); // Regulates gluon prod. mechanism
- SetPARP(67,1); // Regulates Initial State Radiation
+ AtlasTuning();
break;
case kPyJets:
//
case kPyCharmPbPbMNR:
case kPyD0PbPbMNR:
case kPyDPlusPbPbMNR:
+ case kPyDPlusStrangePbPbMNR:
// Tuning of Pythia parameters aimed to get a resonable agreement
// between with the NLO calculation by Mangano, Nason, Ridolfi for the
// c-cbar single inclusive and double differential distributions.
case kPyCharmpPbMNR:
case kPyD0pPbMNR:
case kPyDPluspPbMNR:
+ case kPyDPlusStrangepPbMNR:
// Tuning of Pythia parameters aimed to get a resonable agreement
// between with the NLO calculation by Mangano, Nason, Ridolfi for the
// c-cbar single inclusive and double differential distributions.
case kPyCharmppMNR:
case kPyD0ppMNR:
case kPyDPlusppMNR:
+ case kPyDPlusStrangeppMNR:
// Tuning of Pythia parameters aimed to get a resonable agreement
// between with the NLO calculation by Mangano, Nason, Ridolfi for the
// c-cbar single inclusive and double differential distributions.
// Set c-quark mass
SetPMAS(4,1,1.2);
break;
+ case kPyCharmppMNRwmi:
+ // Tuning of Pythia parameters aimed to get a resonable agreement
+ // between with the NLO calculation by Mangano, Nason, Ridolfi for the
+ // c-cbar single inclusive and double differential distributions.
+ // This parameter settings are meant to work with pp collisions
+ // and with kCTEQ5L PDFs.
+ // Added multiple interactions according to ATLAS tune settings.
+ // To get a "reasonable" agreement with MNR results, events have to be
+ // generated with the minimum ptHard (AliGenPythia::SetPtHard)
+ // set to 2.76 GeV.
+ // To get a "perfect" agreement with MNR results, events have to be
+ // generated in four ptHard bins with the following relative
+ // normalizations:
+ // 2.76-3 GeV: 25%
+ // 3-4 GeV: 40%
+ // 4-8 GeV: 29%
+ // >8 GeV: 6%
+ ConfigHeavyFlavor();
+ // Intrinsic <kT^2>
+ SetMSTP(91,1);
+ SetPARP(91,1.);
+ SetPARP(93,5.);
+
+ // Set c-quark mass
+ SetPMAS(4,1,1.2);
+ AtlasTuning();
+ break;
case kPyBeautyPbPbMNR:
// Tuning of Pythia parameters aimed to get a resonable agreement
// between with the NLO calculation by Mangano, Nason, Ridolfi for the
// Set b-quark mass
SetPMAS(5,1,4.75);
break;
-
+ case kPyBeautyppMNRwmi:
+ // Tuning of Pythia parameters aimed to get a resonable agreement
+ // between with the NLO calculation by Mangano, Nason, Ridolfi for the
+ // b-bbar single inclusive and double differential distributions.
+ // This parameter settings are meant to work with pp collisions
+ // and with kCTEQ5L PDFs.
+ // Added multiple interactions according to ATLAS tune settings.
+ // To get a "reasonable" agreement with MNR results, events have to be
+ // generated with the minimum ptHard (AliGenPythia::SetPtHard)
+ // set to 2.76 GeV.
+ // To get a "perfect" agreement with MNR results, events have to be
+ // generated in four ptHard bins with the following relative
+ // normalizations:
+ // 2.76-4 GeV: 5%
+ // 4-6 GeV: 31%
+ // 6-8 GeV: 28%
+ // >8 GeV: 36%
+ ConfigHeavyFlavor();
+ // QCD scales
+ SetPARP(67,1.0);
+ SetPARP(71,1.0);
+
+ // Intrinsic <kT>
+ SetMSTP(91,1);
+ SetPARP(91,1.);
+ SetPARP(93,5.);
+
+ // Set b-quark mass
+ SetPMAS(5,1,4.75);
+
+ AtlasTuning();
+ break;
case kPyW:
//Inclusive production of W+/-
SetMSTP(32,2);
SetPARP(34,1.0);
}
+
+void AliPythia::AtlasTuning()
+{
+ //
+ // Configuration for the ATLAS tuning
+ SetMSTP(51, kCTEQ5L); // CTEQ5L pdf
+ SetMSTP(81,1); // Multiple Interactions ON
+ SetMSTP(82,4); // Double Gaussian Model
+ SetPARP(82,1.8); // [GeV] PT_min at Ref. energy
+ SetPARP(89,1000.); // [GeV] Ref. energy
+ SetPARP(90,0.16); // 2*epsilon (exponent in power law)
+ SetPARP(83,0.5); // Core density in proton matter distribution (def.value)
+ SetPARP(84,0.5); // Core radius
+ SetPARP(85,0.33); // Regulates gluon prod. mechanism
+ SetPARP(86,0.66); // Regulates gluon prod. mechanism
+ SetPARP(67,1); // Regulates Initial State Radiation
+}
typedef enum
{kPyCharm, kPyBeauty, kPyCharmUnforced, kPyBeautyUnforced,
kPyJpsi, kPyJpsiChi, kPyMb, kPyMbNonDiffr, kPyJets, kPyDirectGamma,
- kPyCharmPbPbMNR, kPyD0PbPbMNR, kPyDPlusPbPbMNR, kPyBeautyPbPbMNR,
- kPyCharmpPbMNR, kPyD0pPbMNR, kPyDPluspPbMNR, kPyBeautypPbMNR,
- kPyCharmppMNR, kPyD0ppMNR, kPyDPlusppMNR, kPyBeautyppMNR, kPyW, kPyZ,
+ kPyCharmPbPbMNR, kPyD0PbPbMNR, kPyDPlusPbPbMNR, kPyDPlusStrangePbPbMNR, kPyBeautyPbPbMNR,
+ kPyCharmpPbMNR, kPyD0pPbMNR, kPyDPluspPbMNR, kPyDPlusStrangepPbMNR, kPyBeautypPbMNR,
+ kPyCharmppMNR, kPyCharmppMNRwmi, kPyD0ppMNR, kPyDPlusppMNR, kPyDPlusStrangeppMNR,
+ kPyBeautyppMNR, kPyBeautyppMNRwmi, kPyW, kPyZ,
kPyOldUEQ2ordered, kPyOldUEQ2ordered2, kPyOldPopcorn}
Process_t;
/*
private:
AliPythia();
void ConfigHeavyFlavor();
-
+ void AtlasTuning();
ClassDef(AliPythia,1) //ALICE UI to PYTHIA
};