Z production and possibility for cuts on secondaries added for
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 20 Feb 2006 12:43:09 +0000 (12:43 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 20 Feb 2006 12:43:09 +0000 (12:43 +0000)
kPyMb and kPyMbNonDiffr. (Zaida Conesa)

PYTHIA6/AliGenPythia.cxx
PYTHIA6/AliGenPythia.h
PYTHIA6/AliPythia.cxx
PYTHIA6/AliPythia.h

index c6405e2..f1dc4b7 100644 (file)
@@ -329,6 +329,7 @@ void AliGenPythia::Init()
     case kPyDirectGamma:
        break;
     case kPyW:
+    case kPyZ:
         break;
     }
 //
@@ -466,7 +467,7 @@ void AliGenPythia::Generate()
        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);
@@ -701,9 +702,13 @@ Int_t  AliGenPythia::GenerateMB()
     }
     
 
-    //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;
+      }
     }
   
 
@@ -958,7 +963,7 @@ Bool_t AliGenPythia::CheckKinematicsOnChild(){
     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();
@@ -967,14 +972,13 @@ Bool_t AliGenPythia::CheckKinematicsOnChild(){
        if( (ks == 1)  &&  (kcode == fPdgCodeParticleforAcceptanceCut)  &&  (KinematicSelection(jparticle,1)) ){
            nPartAcc++;
        }
+       if( numberOfAcceptedParticles <= nPartAcc){
+         checking = kTRUE;
+         break;
+       }
     }
-  
-    if( numberOfAcceptedParticles <= nPartAcc){
-       checking = kTRUE;
-    }
-    
+
     return checking;
-    
 }
 
          
index 92e21b0..3a003ca 100644 (file)
@@ -126,7 +126,7 @@ class AliGenPythia : public AliGenMC
     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();
     
 
index f5c4541..73cf02d 100644 (file)
@@ -643,6 +643,33 @@ void AliPythia::ProcInit(Process_t process, Float_t energy, StrucFunc_t strucfun
       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
index 0f7c2c5..5bf1944 100644 (file)
@@ -13,7 +13,7 @@ typedef enum
  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;
 /*