]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PYTHIA6/AliGenPythia.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PYTHIA6 / AliGenPythia.cxx
index f50efaaf2d7eb8e5d72edeeecedb3c5e314bc1a6..abfcc526a7c9155818b500270c77c2c15e36f0d7 100644 (file)
@@ -76,8 +76,10 @@ AliGenPythia::AliGenPythia():
     fYHardMax(1.e10),
     fGinit(1),
     fGfinal(1),
+    fCRoff(0),
     fHadronisation(1),
     fPatchOmegaDalitz(0), 
+    fDecayerExodus(0),
     fNpartons(0),
     fReadFromFile(0),
     fReadLHEF(0),
@@ -128,6 +130,8 @@ AliGenPythia::AliGenPythia():
     fTriggerMaxPt(1000),  
     fTriggerMultiplicity(0),
     fTriggerMultiplicityEta(0),
+    fTriggerMultiplicityEtaMin(0),
+    fTriggerMultiplicityEtaMax(0),
     fTriggerMultiplicityPtMin(0),
     fCountMode(kCountAll),      
     fHeader(0),  
@@ -192,8 +196,10 @@ AliGenPythia::AliGenPythia(Int_t npart)
      fYHardMax(1.e10),
      fGinit(kTRUE),
      fGfinal(kTRUE),
+     fCRoff(kFALSE),
      fHadronisation(kTRUE),
-     fPatchOmegaDalitz(0), 
+     fPatchOmegaDalitz(0),
+     fDecayerExodus(0), 
      fNpartons(0),
      fReadFromFile(kFALSE),
      fReadLHEF(0),
@@ -244,6 +250,8 @@ AliGenPythia::AliGenPythia(Int_t npart)
      fTriggerMaxPt(1000),      
      fTriggerMultiplicity(0),
      fTriggerMultiplicityEta(0),
+     fTriggerMultiplicityEtaMin(0),
+     fTriggerMultiplicityEtaMax(0),
      fTriggerMultiplicityPtMin(0),
      fCountMode(kCountAll),      
      fHeader(0),  
@@ -402,6 +410,8 @@ void AliGenPythia::Init()
     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);
@@ -700,8 +710,29 @@ 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");
        
@@ -1026,6 +1057,10 @@ Int_t  AliGenPythia::GenerateMB()
        // 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;