case kPyDirectGamma:
break;
case kPyW:
+ case kPyZ:
break;
}
//
if (fProcess != kPyMb && fProcess != kPyJets &&
fProcess != kPyDirectGamma &&
fProcess != kPyMbNonDiffr &&
- fProcess != kPyW) {
+ fProcess != kPyW && fProcess != kPyZ ) {
for (i = 0; i < np; i++) {
TParticle* iparticle = (TParticle *) fParticles->At(i);
}
- //Introducing child cuts in case kPyW
- if ( (fProcess == kPyW) && (fCutOnChild == 1) ) {
- if ( !CheckKinematicsOnChild() ) return 0;
+ //Introducing child cuts in case kPyW, kPyZ, kPyMb, and kPyMbNonDiff
+ if ( (fProcess == kPyW || fProcess == kPyZ || fProcess == kPyMb || fProcess == kPyMbNonDiffr)
+ && (fCutOnChild == 1) ) {
+ if ( !CheckKinematicsOnChild() ) {
+ if (pParent) delete[] pParent;
+ return 0;
+ }
}
if (fNumberOfAcceptedParticles != 0) { numberOfAcceptedParticles = fNumberOfAcceptedParticles; }
Int_t npart = fParticles->GetEntriesFast();
- for (j = 0; j<npart; j++) {
+ for (j = 0; j<npart; j++) {
TParticle * jparticle = (TParticle *) fParticles->At(j);
kcode = TMath::Abs( CheckPDGCode(jparticle->GetPdgCode()) );
ks = jparticle->GetStatusCode();
if( (ks == 1) && (kcode == fPdgCodeParticleforAcceptanceCut) && (KinematicSelection(jparticle,1)) ){
nPartAcc++;
}
+ if( numberOfAcceptedParticles <= nPartAcc){
+ checking = kTRUE;
+ break;
+ }
}
-
- if( numberOfAcceptedParticles <= nPartAcc){
- checking = kTRUE;
- }
-
+
return checking;
-
}
virtual void FinishRun();
Bool_t CheckTrigger(TParticle* jet1, TParticle* jet2);
- //Used in case kPyW when limiting selected child properties
+ //Used in some processes to selected child properties
Bool_t CheckKinematicsOnChild();
SetMSTP(71,1); //Final QCD & QED showers on
break;
+
+ case kPyZ:
+
+ //Inclusive production of Z
+ SetMSEL(0);
+ //f fbar -> Z/gamma
+ SetMSUB(1,1);
+
+ // // f fbar -> g Z/gamma
+ // SetMSUB(15,1);
+ // // f fbar -> gamma Z/gamma
+ // SetMSUB(19,1);
+ // // f g -> f Z/gamma
+ // SetMSUB(30,1);
+ // // f gamma -> f Z/gamma
+ // SetMSUB(35,1);
+
+ //only Z included, not gamma
+ SetMSTP(43,2);
+
+ // Initial/final parton shower on (Pythia default)
+ // With parton showers on we are generating "Z inclusive process"
+ SetMSTP(61,1); //Initial QCD & QED showers on
+ SetMSTP(71,1); //Final QCD & QED showers on
+
+ break;
+
}
//
// Initialize PYTHIA
kPyJpsi, kPyJpsiChi, kPyMb, kPyMbNonDiffr, kPyJets, kPyDirectGamma,
kPyCharmPbPbMNR, kPyD0PbPbMNR, kPyDPlusPbPbMNR, kPyBeautyPbPbMNR,
kPyCharmpPbMNR, kPyD0pPbMNR, kPyDPluspPbMNR, kPyBeautypPbMNR,
- kPyCharmppMNR, kPyD0ppMNR, kPyDPlusppMNR, kPyBeautyppMNR, kPyW,
+ kPyCharmppMNR, kPyD0ppMNR, kPyDPlusppMNR, kPyBeautyppMNR, kPyW, kPyZ,
kPyOldUEQ2ordered, kPyOldUEQ2ordered2, kPyOldPopcorn}
Process_t;
/*