]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PYTHIA6/AliGenPythiaPlus.cxx
make ptmin setteable
[u/mrichter/AliRoot.git] / PYTHIA6 / AliGenPythiaPlus.cxx
index d03ad9ca56c881d2e9c0e5c4491be11fa1460330..0f91b97fcce8f5933e52f5a29aea32c3347d784c 100644 (file)
@@ -125,7 +125,8 @@ AliGenPythiaPlus::AliGenPythiaPlus():
     fEMCALMinPhi(79.),
     fEMCALMaxPhi(191.),
     fEMCALEta(0.71),
-    fItune(-1) 
+    fItune(-1), 
+    fInfo(1) 
 {
 // Default Constructor
   fEnergyCMS = 5500.;
@@ -212,7 +213,8 @@ AliGenPythiaPlus::AliGenPythiaPlus(AliPythiaBase* pythia)
      fEMCALMinPhi(79.),
      fEMCALMaxPhi(191.),
      fEMCALEta(0.71),
-     fItune(-1) 
+     fItune(-1),
+     fInfo(1) 
 {
 // default charm production at 5. 5 TeV
 // semimuonic decay
@@ -372,6 +374,7 @@ void AliGenPythiaPlus::Init()
     case kPyCharmpPbMNR:
     case kPyCharmppMNR:
     case kPyCharmppMNRwmi:
+    case kPyCharmPWHG:
        fParentSelect[0] =   411;
        fParentSelect[1] =   421;
        fParentSelect[2] =   431;
@@ -409,6 +412,7 @@ void AliGenPythiaPlus::Init()
     case kPyBeautypPbMNR:
     case kPyBeautyppMNR:
     case kPyBeautyppMNRwmi:
+    case kPyBeautyPWHG:
        fParentSelect[0]=  511;
        fParentSelect[1]=  521;
        fParentSelect[2]=  531;
@@ -439,11 +443,14 @@ void AliGenPythiaPlus::Init()
     case kPyMbNonDiffr:
     case kPyMbMSEL1:
     case kPyJets:
+    case kPyJetsPWHG:
     case kPyDirectGamma:
     case kPyLhwgMb:    
        break;
+    case kPyWPWHG:
     case kPyW:
     case kPyZ:
+    case kPyZgamma:
     case kPyMBRSingleDiffraction:
     case kPyMBRDoubleDiffraction:
     case kPyMBRCentralDiffraction:
@@ -601,8 +608,13 @@ void AliGenPythiaPlus::Generate()
            fProcess != kPyMbMSEL1     &&
            fProcess != kPyW && 
            fProcess != kPyZ &&
+      fProcess != kPyZgamma &&
            fProcess != kPyCharmppMNRwmi && 
-           fProcess != kPyBeautyppMNRwmi) {
+           fProcess != kPyBeautyppMNRwmi &&
+      fProcess != kPyWPWHG &&
+           fProcess != kPyJetsPWHG &&
+           fProcess != kPyCharmPWHG &&
+     fProcess != kPyBeautyPWHG) {
            
            for (i = 0; i < np; i++) {
                TParticle* iparticle = (TParticle *) fParticles.At(i);
@@ -793,8 +805,7 @@ void AliGenPythiaPlus::Generate()
          }
            if (jev >= fNpart || fNpart == -1) {
                fKineBias=Float_t(fNpart)/Float_t(fTrials);
-               fPythia->GetXandQ(fX1, fX2, fQ);
-               printf("q, x1, x2 %13.3e %13.3e %13.3e \n", fQ, fX1, fX2);
+               if (fInfo) fPythia->GetXandQ(fX1, fX2, fQ);
                fTrialsRun += fTrials;
                fNev++;
                MakeHeader();
@@ -826,7 +837,7 @@ Int_t  AliGenPythiaPlus::GenerateMB()
     
     Int_t* pParent = new Int_t[np];
     for (i=0; i< np; i++) pParent[i] = -1;
-    if (fProcess == kPyJets || fProcess == kPyDirectGamma) {
+    if (fProcess == kPyJets || fProcess == kPyDirectGamma || fProcess == kPyJetsPWHG || fProcess == kPyCharmPWHG || fProcess == kPyBeautyPWHG ) {
        TParticle* jet1 = (TParticle *) fParticles.At(6);
        TParticle* jet2 = (TParticle *) fParticles.At(7);
        if (!CheckTrigger(jet1, jet2)) {
@@ -836,7 +847,7 @@ Int_t  AliGenPythiaPlus::GenerateMB()
     }
 
     // Select jets with fragmentation photon or pi0 going to PHOS or EMCAL
-    if (fProcess == kPyJets && (fFragPhotonInCalo || fPi0InCalo) ) {
+    if ((fProcess == kPyJets || fProcess == kPyJetsPWHG) && (fFragPhotonInCalo || fPi0InCalo) ) {
 
       Bool_t ok = kFALSE;
 
@@ -869,7 +880,7 @@ Int_t  AliGenPythiaPlus::GenerateMB()
     
     
      // Select events with a photon  pt > min pt going to PHOS eta acceptance or exactly PHOS eta phi
-    if ((fProcess == kPyJets || fProcess == kPyDirectGamma) && fPhotonInCalo && (fCheckPHOSeta || fCheckPHOS)){
+    if ((fProcess == kPyJets || fProcess == kPyJetsPWHG || fProcess == kPyDirectGamma) && fPhotonInCalo && (fCheckPHOSeta || fCheckPHOS)){
 
       Bool_t okd = kFALSE;
 
@@ -967,8 +978,11 @@ Int_t  AliGenPythiaPlus::GenerateMB()
     }
 
     //Introducing child cuts in case kPyW, kPyZ, kPyMb, and kPyMbNonDiff
-    if ( (fProcess == kPyW ||
+    if ( (
+    fProcess == kPyWPWHG ||
+    fProcess == kPyW ||
          fProcess == kPyZ ||
+    fProcess == kPyZgamma ||
          fProcess == kPyMbDefault ||
          fProcess == kPyMb ||
          fProcess == kPyMbWithDirectPhoton ||
@@ -989,7 +1003,7 @@ Int_t  AliGenPythiaPlus::GenerateMB()
        Int_t km = iparticle->GetFirstMother();
        if ((ks == 1  && kf!=0 && KinematicSelection(iparticle, 0)) ||
            (ks != 1) ||
-           (fProcess == kPyJets && ks == 21 && km == 0 && i>1)) {
+           ((fProcess == kPyJets || fProcess == kPyJetsPWHG) && ks == 21 && km == 0 && i>1)) {
            nc++;
            if (ks == 1) trackIt = 1;
 
@@ -1115,7 +1129,7 @@ void AliGenPythiaPlus::MakeHeader()
 //
 // Jets that have triggered
 
-    if (fProcess == kPyJets)
+    if (fProcess == kPyJets || fProcess == kPyJetsPWHG)
     {
        Int_t ntrig, njet;
        Float_t jets[4][10];
@@ -1192,7 +1206,7 @@ Bool_t AliGenPythiaPlus::CheckTrigger(const TParticle* jet1, const TParticle* je
     pdg[1] = jet2->GetPdgCode();    
     Bool_t   triggered = kFALSE;
 
-    if (fProcess == kPyJets) {
+    if (fProcess == kPyJets || fProcess == kPyJetsPWHG) {
        Int_t njets = 0;
        Int_t ntrig = 0;
        Float_t jets[4][10];