#include "AliMC.h"
#include "AliLog.h"
#include "PyquenCommon.h"
-#include "AliLog.h"
ClassImp(AliGenPythia)
fYHardMax(1.e10),
fGinit(1),
fGfinal(1),
+ fCRoff(0),
fHadronisation(1),
fPatchOmegaDalitz(0),
+ fDecayerExodus(0),
fNpartons(0),
fReadFromFile(0),
fReadLHEF(0),
fTriggerMaxPt(1000),
fTriggerMultiplicity(0),
fTriggerMultiplicityEta(0),
+ fTriggerMultiplicityEtaMin(0),
+ fTriggerMultiplicityEtaMax(0),
fTriggerMultiplicityPtMin(0),
fCountMode(kCountAll),
fHeader(0),
fYHardMax(1.e10),
fGinit(kTRUE),
fGfinal(kTRUE),
+ fCRoff(kFALSE),
fHadronisation(kTRUE),
- fPatchOmegaDalitz(0),
+ fPatchOmegaDalitz(0),
+ fDecayerExodus(0),
fNpartons(0),
fReadFromFile(kFALSE),
fReadLHEF(0),
fTriggerMaxPt(1000),
fTriggerMultiplicity(0),
fTriggerMultiplicityEta(0),
+ fTriggerMultiplicityEtaMin(0),
+ fTriggerMultiplicityEtaMax(0),
fTriggerMultiplicityPtMin(0),
fCountMode(kCountAll),
fHeader(0),
fPythia->SetMSTP(61,fGinit);
// final state radiation
fPythia->SetMSTP(71,fGfinal);
+ //color reconnection strength
+ if(fCRoff==1)fPythia->SetMSTP(95,0);
// pt - kick
if (fPtKick > 0.) {
fPythia->SetMSTP(91,1);
case kPyDirectGamma:
case kPyLhwgMb:
break;
- case kPyWPWHG: /// !!!!!!!!!! Change done for W prod with POWHEG !!!!!!!!!! :)
+ case kPyWPWHG:
case kPyW:
case kPyZ:
+ case kPyZgamma:
case kPyMBRSingleDiffraction:
case kPyMBRDoubleDiffraction:
case kPyMBRCentralDiffraction:
fPythia->SetMSTJ(44, 2); // option to run alpha_s
fPythia->SetPARJ(82, 1.); // Cut off for parton showers
}
+
+ if ( AliLog::GetDebugLevel("","AliGenPythia") >= 1 ) {
+ fPythia->Pystat(4);
+ fPythia->Pystat(5);
+ }
}
void AliGenPythia::Generate()
fPythia->DalitzDecays();
fPythia->SetMDCY(fPythia->Pycomp(111) ,1, 1);
}
- fPythia->Pyexec();
- }
+
+ else if (fDecayerExodus) {
+
+ fPythia->SetMDCY(fPythia->Pycomp(22) ,1, 0);
+ fPythia->SetMDCY(fPythia->Pycomp(111) ,1, 0);
+ fPythia->SetMDCY(fPythia->Pycomp(221) ,1, 0);
+ fPythia->Pyexec();
+ fPythia->OmegaDalitz();
+ fPythia->SetMDCY(fPythia->Pycomp(111) ,1, 1);
+ fPythia->PizeroDalitz();
+ fPythia->PhiDalitz();
+ fPythia->SetMDCY(fPythia->Pycomp(221) ,1, 1);
+ fPythia->EtaDalitz();
+ fPythia->EtaprimeDalitz();
+ fPythia->SetMDCY(fPythia->Pycomp(22) ,1, 1);
+ fPythia->RhoDirect();
+ fPythia->OmegaDirect();
+ fPythia->PhiDirect();
+ fPythia->JPsiDirect();
+ }
+
+ fPythia->Pyexec();
+ }
fTrials++;
fPythia->ImportParticles(&fParticles,"All");
fProcess != kPyMbMSEL1 &&
fProcess != kPyW &&
fProcess != kPyZ &&
+ fProcess != kPyZgamma &&
fProcess != kPyCharmppMNRwmi &&
fProcess != kPyBeautyppMNRwmi &&
fProcess != kPyBeautyJets &&
- fProcess != kPyWPWHG && /// !!!!!!!!!!!!!!!!! Change done for W with POHWEG !!!!!!!!!!!!!!!!!!! :)
+ fProcess != kPyWPWHG &&
fProcess != kPyJetsPWHG &&
fProcess != kPyCharmPWHG &&
fProcess != kPyBeautyPWHG) {
// eta cut
if (fTriggerMultiplicityEta > 0 && TMath::Abs(iparticle->Eta()) > fTriggerMultiplicityEta)
continue;
+ //multiplicity check for a given eta range
+ if ((fTriggerMultiplicityEtaMin != fTriggerMultiplicityEtaMax) &&
+ (iparticle->Eta() < fTriggerMultiplicityEtaMin || iparticle->Eta() > fTriggerMultiplicityEtaMax))
+ continue;
// pt cut
if (iparticle->Pt() < fTriggerMultiplicityPtMin)
continue;
//Introducing child cuts in case kPyW, kPyZ, kPyMb, and kPyMbNonDiff
if ( (
- fProcess == kPyWPWHG || /// !!!!!!!!!!!!!!!! Added for W with POWHEG !!!!!!!!!! :)
+ fProcess == kPyWPWHG ||
fProcess == kPyW ||
fProcess == kPyZ ||
+ fProcess == kPyZgamma ||
fProcess == kPyMbDefault ||
fProcess == kPyMb ||
fProcess == kPyMbAtlasTuneMC09 ||
((AliGenPythiaEventHeader*) fHeader)->SetZQuench(z);
}
//
-// Store pt^hard
+// Store pt^hard and cross-section
((AliGenPythiaEventHeader*) fHeader)->SetPtHard(fPythia->GetVINT(47));
+ ((AliGenPythiaEventHeader*) fHeader)->SetXsection(fPythia->GetPARI(1));
//
// Store Event Weight
- ((AliGenPythiaEventHeader*) fHeader)->SetEventWeight(fPythia->GetPARI(7));
+ ((AliGenPythiaEventHeader*) fHeader)->SetEventWeight(fPythia->GetPARI(7));
//
// Pass header