]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PYTHIA6/AliGenPythia.cxx
Method SetTriggerParticle added.
[u/mrichter/AliRoot.git] / PYTHIA6 / AliGenPythia.cxx
index 0a90e0bd8fdb97f8e601be2d559a97322e5ec9bd..9d4b0b114ea57883c3162de3b8c4a746d4ddd7e4 100644 (file)
@@ -65,6 +65,7 @@ AliGenPythia::AliGenPythia()
   SetJetEtRange();
   SetGammaPhiRange();
   SetGammaEtaRange();
+  SetTriggerParticle();
   SetPtKick();
   SetQuench();
   SetHadronisation();  
@@ -111,6 +112,7 @@ AliGenPythia::AliGenPythia(Int_t npart)
     SetJetEtRange();
     SetGammaPhiRange();
     SetGammaEtaRange();
+    SetTriggerParticle();
     SetJetReconstructionMode();
     SetQuench();
     SetHadronisation();
@@ -668,8 +670,6 @@ void AliGenPythia::Generate()
          }
            if (jev >= fNpart || fNpart == -1) {
                fKineBias=Float_t(fNpart)/Float_t(fTrials);
-               printf("\n Trials: %i %i %i\n",fTrials, fNpart, jev);
-
                fQ  += fPythia->GetVINT(51);
                fX1 += fPythia->GetVINT(41);
                fX2 += fPythia->GetVINT(42);
@@ -700,8 +700,6 @@ Int_t  AliGenPythia::GenerateMB()
 //  converts from mm/c to s
     const Float_t kconv=0.001/2.999792458e8;
     
-
-    
     Int_t np = (fHadronisation) ? fParticles->GetEntriesFast() : fNpartons;
 
 
@@ -713,6 +711,20 @@ Int_t  AliGenPythia::GenerateMB()
        if (!CheckTrigger(jet1, jet2)) return 0;
     }
     
+    if (fTriggerParticle) {
+       Bool_t triggered = kFALSE;
+       for (i = 0; i < np; i++) {
+           TParticle *  iparticle = (TParticle *) fParticles->At(i);
+           kf = CheckPDGCode(iparticle->GetPdgCode());
+           if (TMath::Abs(kf) != fTriggerParticle) continue;
+           if (iparticle->Pt() == 0.) continue;
+           if (TMath::Abs(iparticle->Eta()) > fTriggerEta) continue;
+           triggered = kTRUE;
+           break;
+       }
+       if (!triggered) return 0;
+    }
+    
 
     //Introducing child cuts in case kPyW, kPyZ, kPyMb, and kPyMbNonDiff
     if ( (fProcess == kPyW || fProcess == kPyZ || fProcess == kPyMb || fProcess == kPyMbNonDiffr)  
@@ -724,6 +736,7 @@ Int_t  AliGenPythia::GenerateMB()
     }
   
 
+    
     for (i = 0; i < np; i++) {
        Int_t trackIt = 0;
        TParticle *  iparticle = (TParticle *) fParticles->At(i);
@@ -780,8 +793,6 @@ Int_t  AliGenPythia::GenerateMB()
     } // particle loop 
 
     if (pParent) delete[] pParent;
-    
-    printf("\n I've put %i particles on the stack \n",nc);
     return 1;
 }