]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PYTHIA6/AliGenPythia.cxx
Upgrade of the Cascade envt :
[u/mrichter/AliRoot.git] / PYTHIA6 / AliGenPythia.cxx
index 84c50de5c3e049e1ba5207068639f27fc8edfb72..b3dae11cf44769faddcccc78f870f737a68959c7 100644 (file)
@@ -116,6 +116,7 @@ AliGenPythia::AliGenPythia():
     fTriggerEta(0.9),     
     fTriggerMultiplicity(0),
     fTriggerMultiplicityEta(0),
+    fTriggerMultiplicityPtMin(0),
     fCountMode(kCountAll),      
     fHeader(0),  
     fRL(0),      
@@ -140,7 +141,6 @@ AliGenPythia::AliGenPythia():
 {
 // Default Constructor
   fEnergyCMS = 5500.;
-  SetNuclei(0,0);
   if (!AliPythiaRndm::GetPythiaRandom()) 
       AliPythiaRndm::SetPythiaRandom(GetRandom());
 }
@@ -212,6 +212,7 @@ AliGenPythia::AliGenPythia(Int_t npart)
      fTriggerEta(0.9),     
      fTriggerMultiplicity(0),
      fTriggerMultiplicityEta(0),
+     fTriggerMultiplicityPtMin(0),
      fCountMode(kCountAll),      
      fHeader(0),  
      fRL(0),      
@@ -244,7 +245,6 @@ AliGenPythia::AliGenPythia(Int_t npart)
     // Set random number generator 
     if (!AliPythiaRndm::GetPythiaRandom()) 
       AliPythiaRndm::SetPythiaRandom(GetRandom());
-    SetNuclei(0,0);
  }
 
 AliGenPythia::~AliGenPythia()
@@ -461,6 +461,7 @@ void AliGenPythia::Init()
        fParentSelect[0] = 443;
        break;
     case kPyMbDefault:
+    case kPyMbAtlasTuneMC09:
     case kPyMb:
     case kPyMbWithDirectPhoton:
     case kPyMbNonDiffr:
@@ -625,7 +626,7 @@ void AliGenPythia::Generate()
        }
        fTrials++;
        fPythia->ImportParticles(&fParticles,"All");
-       Boost();
+       if (TMath::Abs(fDyBoost) > 1.e-4) Boost();
 //
 //
 //
@@ -652,6 +653,7 @@ void AliGenPythia::Generate()
        Int_t nTkbles = 0;   // Trackable particles
        if (fProcess != kPyMbDefault && 
            fProcess != kPyMb && 
+           fProcess != kPyMbAtlasTuneMC09 && 
            fProcess != kPyMbWithDirectPhoton && 
            fProcess != kPyJets && 
            fProcess != kPyDirectGamma &&
@@ -906,7 +908,7 @@ Int_t  AliGenPythia::GenerateMB()
 
       Int_t pdg  = 0; 
       if (fFragPhotonInCalo) pdg = 22   ; // Photon
-      else if (fPi0InCalo) pdg = 111 ;    // Pi0
+      else if (fPi0InCalo)   pdg = 111 ;    // Pi0
 
       for (i=0; i< np; i++) {
        TParticle* iparticle = (TParticle *) fParticles.At(i);
@@ -954,7 +956,6 @@ Int_t  AliGenPythia::GenerateMB()
        return 0;
       AliDebug(5,Form("Found an electron jet (pt,eta,phi) = (%f,%f,%f)",pt,eta,phi));
     }
-    
     // Check for minimum multiplicity
     if (fTriggerMultiplicity > 0) {
       Int_t multiplicity = 0;
@@ -964,17 +965,15 @@ Int_t  AliGenPythia::GenerateMB()
        Int_t statusCode = iparticle->GetStatusCode();
        
        // Initial state particle
-       if (statusCode > 20)
-         continue;
-       
-       // skip quarks and gluons
-       Int_t pdgCode = TMath::Abs(iparticle->GetPdgCode());
-       if (pdgCode <= 10 || pdgCode == 21)
+       if (statusCode != 1)
          continue;
-       
+       // eta cut
        if (fTriggerMultiplicityEta > 0 && TMath::Abs(iparticle->Eta()) > fTriggerMultiplicityEta)
          continue;
-       
+       // pt cut
+       if (iparticle->Pt() < fTriggerMultiplicityPtMin) 
+           continue;
+
        TParticlePDG* pdgPart = iparticle->GetPDG();
        if (pdgPart && pdgPart->Charge() == 0)
          continue;
@@ -986,8 +985,7 @@ Int_t  AliGenPythia::GenerateMB()
        delete [] pParent;
        return 0;
       }
-      
-      Printf("Triggered on event with multiplicity of %d > %d", multiplicity, fTriggerMultiplicity);
+      Printf("Triggered on event with multiplicity of %d >= %d", multiplicity, fTriggerMultiplicity);
     }    
     
      // Select events with a photon  pt > min pt going to PHOS eta acceptance or exactly PHOS eta phi
@@ -1091,6 +1089,7 @@ Int_t  AliGenPythia::GenerateMB()
          fProcess == kPyZ ||
          fProcess == kPyMbDefault ||
          fProcess == kPyMb ||
+         fProcess == kPyMbAtlasTuneMC09 ||
          fProcess == kPyMbWithDirectPhoton ||
          fProcess == kPyMbNonDiffr)  
         && (fCutOnChild == 1) ) {