// Default Constructor
//
// Set random number
+ Int_t i;
+ for (i = 0; i < 501; i++) fDefMDCY[i] = 0;
+ for (i = 0; i < 2001; i++) fDefMDME[i] = 0;
+ for (i = 0; i < 4; i++) fZQuench[i] = 0;
+
if (!AliPythiaRndm::GetPythiaRandom())
AliPythiaRndm::SetPythiaRandom(GetRandom());
fGlauber = 0;
fQuenchingWeights(0)
{
// Copy Constructor
+ Int_t i;
+ for (i = 0; i < 501; i++) fDefMDCY[i] = 0;
+ for (i = 0; i < 2001; i++) fDefMDME[i] = 0;
+ for (i = 0; i < 4; i++) fZQuench[i] = 0;
pythia.Copy(*this);
}
AtlasTuning();
break;
+ case kPyMbAtlasTuneMC09:
+// Minimum Bias pp-Collisions
+//
+//
+// select Pythia min. bias model
+ SetMSEL(0);
+ SetMSUB(92,1); // single diffraction AB-->XB
+ SetMSUB(93,1); // single diffraction AB-->AX
+ SetMSUB(94,1); // double diffraction
+ SetMSUB(95,1); // low pt production
+
+ AtlasTuning_MC09();
+ break;
+
+ case kPyMbWithDirectPhoton:
+// Minimum Bias pp-Collisions with direct photon processes added
+//
+//
+// select Pythia min. bias model
+ SetMSEL(0);
+ SetMSUB(92,1); // single diffraction AB-->XB
+ SetMSUB(93,1); // single diffraction AB-->AX
+ SetMSUB(94,1); // double diffraction
+ SetMSUB(95,1); // low pt production
+
+ SetMSUB(14,1); //
+ SetMSUB(18,1); //
+ SetMSUB(29,1); //
+ SetMSUB(114,1); //
+ SetMSUB(115,1); //
+
+
+ AtlasTuning();
+ break;
+
case kPyMbDefault:
// Minimum Bias pp-Collisions
//
case kPyD0ppMNR:
case kPyDPlusppMNR:
case kPyDPlusStrangeppMNR:
+ case kPyLambdacppMNR:
// 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 b-quark mass
SetPMAS(5,1,4.75);
break;
+ case kPyBeautyJets:
case kPyBeautyppMNRwmi:
// Tuning of Pythia parameters aimed to get a resonable agreement
// between with the NLO calculation by Mangano, Nason, Ridolfi for the
// (2) The nuclear geometry using the Glauber Model
//
- fGlauber = new AliFastGlauber();
+ fGlauber = AliFastGlauber::Instance();
fGlauber->Init(2);
fGlauber->SetCentralityClass(cMin, cMax);
Double_t px = 0., py = 0., pz = 0., e = 0., m = 0., p = 0., pt = 0., theta = 0., phi = 0.;
Double_t pxq[4], pyq[4], pzq[4], eq[4], yq[4], mq[4], pq[4], phiq[4], thetaq[4], ptq[4];
Bool_t quenched[4];
- Double_t wjtKick[4];
+ Double_t wjtKick[4] = {0., 0., 0., 0.};
Int_t nGluon[4];
Int_t qPdg[4];
Int_t imo, kst, pdg;
//
// Avoid complete loss
//
- if (fZQuench[j] == 1.) fZQuench[j] = fZmax;
+ if (fZQuench[j] > fZmax) fZQuench[j] = fZmax;
//
// Some debug printing
//
// Calculate new px, py
//
- Double_t pxNew = jtNew / jt * pxs;
- Double_t pyNew = jtNew / jt * pys;
+ Double_t pxNew = 0;
+ Double_t pyNew = 0;
+
+ if (jt > 0.) {
+ pxNew = jtNew / jt * pxs;
+ pyNew = jtNew / jt * pys;
+ }
// Double_t dpx = pxs - pxNew;
// Double_t dpy = pys - pyNew;
//
// Isotropic decay ????
Double_t cost = 2. * gRandom->Rndm() - 1.;
- Double_t sint = TMath::Sqrt(1. - cost * cost);
+ Double_t sint = TMath::Sqrt((1.-cost)*(1.+cost));
Double_t phis = 2. * TMath::Pi() * gRandom->Rndm();
Double_t pz1 = pst * cost;
SetPARP(67,1); // Regulates Initial State Radiation
}
+void AliPythia6::AtlasTuning_MC09()
+{
+ //
+ // Configuration for the ATLAS tuning
+ printf("ATLAS New TUNE MC09\n");
+ SetMSTP(81,21); // treatment for MI, ISR, FSR and beam remnants: MI on, new model
+ SetMSTP(82, 4); // Double Gaussian Model
+ SetMSTP(52, 2); // External PDF
+ SetMSTP(51, 20650); // MRST LO*
+
+
+ SetMSTP(70, 0); // (was 2: def manual 1, def code 0) virtuality scale for ISR
+ SetMSTP(72, 1); // (was 0: def 1) maximum scale for FSR
+ SetMSTP(88, 1); // (was 0: def 1) strategy for qq junction to di-quark or baryon in beam remnant
+ SetMSTP(90, 0); // (was 1: def 0) strategy of compensate the primordial kT
+
+ SetPARP(78, 0.3); // the amount of color reconnection in the final state
+ SetPARP(80, 0.1); // probability of color partons kicked out from beam remnant
+ SetPARP(82, 2.3); // [GeV] PT_min at Ref. energy
+ SetPARP(83, 0.8); // Core density in proton matter distribution (def.value)
+ SetPARP(84, 0.7); // Core radius
+ SetPARP(90, 0.25); // 2*epsilon (exponent in power law)
+ SetPARJ(81, 0.29); // (was 0.14: def 0.29) Labmda value in running alpha_s for parton showers
+
+ SetMSTP(95, 6);
+ SetPARJ(41, 0.3); // a and b parameters of the symmm. Lund FF
+ SetPARJ(42, 0.58);
+ SetPARJ(46, 0.75); // mod. of the Lund FF for heavy end-point quarks
+ SetPARP(89,1800.); // [GeV] Ref. energy
+}
+
void AliPythia6::SetPtHardRange(Float_t ptmin, Float_t ptmax)
{
// Set the pt hard range