]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PYTHIA6/AliGenPythia.cxx
Fixing compilation warnings
[u/mrichter/AliRoot.git] / PYTHIA6 / AliGenPythia.cxx
index d7c462dc67a80d100c05803e408b6ebdbeb62c62..b586a3f260d835bf735a574974d6be02fad55d0b 100644 (file)
@@ -52,6 +52,7 @@ ClassImp(AliGenPythia)
 AliGenPythia::AliGenPythia():
     AliGenMC(),
     fProcess(kPyCharm),          
+    fItune(-1),
     fStrucFunc(kCTEQ5L), 
     fKineBias(0.),
     fTrials(0),
@@ -80,6 +81,7 @@ AliGenPythia::AliGenPythia():
     fQuench(0),
     fQhat(0.),
     fLength(0.),
+    fImpact(0.),
     fPtKick(1.),
     fFullEvent(kTRUE),
     fDecayer(new AliDecayerPythia()),
@@ -114,6 +116,7 @@ AliGenPythia::AliGenPythia():
     fTriggerEta(0.9),     
     fTriggerMultiplicity(0),
     fTriggerMultiplicityEta(0),
+    fTriggerMultiplicityPtMin(0),
     fCountMode(kCountAll),      
     fHeader(0),  
     fRL(0),      
@@ -138,7 +141,6 @@ AliGenPythia::AliGenPythia():
 {
 // Default Constructor
   fEnergyCMS = 5500.;
-  SetNuclei(0,0);
   if (!AliPythiaRndm::GetPythiaRandom()) 
       AliPythiaRndm::SetPythiaRandom(GetRandom());
 }
@@ -146,6 +148,7 @@ AliGenPythia::AliGenPythia():
 AliGenPythia::AliGenPythia(Int_t npart)
     :AliGenMC(npart),
      fProcess(kPyCharm),          
+     fItune(-1),
      fStrucFunc(kCTEQ5L), 
      fKineBias(0.),
      fTrials(0),
@@ -174,6 +177,7 @@ AliGenPythia::AliGenPythia(Int_t npart)
      fQuench(kFALSE),
      fQhat(0.),
      fLength(0.),
+     fImpact(0.),
      fPtKick(1.),
      fFullEvent(kTRUE),
      fDecayer(new AliDecayerPythia()),
@@ -208,6 +212,7 @@ AliGenPythia::AliGenPythia(Int_t npart)
      fTriggerEta(0.9),     
      fTriggerMultiplicity(0),
      fTriggerMultiplicityEta(0),
+     fTriggerMultiplicityPtMin(0),
      fCountMode(kCountAll),      
      fHeader(0),  
      fRL(0),      
@@ -240,7 +245,6 @@ AliGenPythia::AliGenPythia(Int_t npart)
     // Set random number generator 
     if (!AliPythiaRndm::GetPythiaRandom()) 
       AliPythiaRndm::SetPythiaRandom(GetRandom());
-    SetNuclei(0,0);
  }
 
 AliGenPythia::~AliGenPythia()
@@ -371,7 +375,7 @@ void AliGenPythia::Init()
        fRL = 0x0;
     }
  //
-    fPythia->ProcInit(fProcess,fEnergyCMS,fStrucFunc);
+    fPythia->ProcInit(fProcess,fEnergyCMS,fStrucFunc, fItune);
     //  Forward Paramters to the AliPythia object
     fDecayer->SetForceDecay(fForceDecay);    
 // Switch off Heavy Flavors on request  
@@ -533,15 +537,9 @@ void AliGenPythia::Init()
        fPythia->SetPARJ(200, 1.);
        fPythia->SetPARJ(198, fQhat);
        fPythia->SetPARJ(199, fLength);
-       
-       fPythia->SetMSTJ(41, 1);  // QCD radiation only
        fPythia->SetMSTJ(42, 2);  // angular ordering
        fPythia->SetMSTJ(44, 2);  // option to run alpha_s
-       //fPythia->SetMSTJ(47, 0);  // No correction back to hard scattering element
-       //fPythia->SetMSTJ(50, 0);  // No coherence in first branching
        fPythia->SetPARJ(82, 1.); // Cut off for parton showers
-       //    MSTJ(41) must NOT be 11 or 12, as then FSR may go through PYPTFS
-       //   (kt-ordered cascade) in which medium effects have not been introduced.
     }
 }
 
@@ -583,7 +581,8 @@ void AliGenPythia::Generate()
            Double_t bimp;
            // Quenching comes through medium-modified splitting functions.
            AliFastGlauber::Instance()->GetRandomBHard(bimp);
-           fPythia->SetPARJ(197,bimp);
+           fPythia->SetPARJ(197, bimp);
+           fImpact = bimp;
        } 
 //
 // Either produce new event or read partons from file
@@ -626,7 +625,7 @@ void AliGenPythia::Generate()
        }
        fTrials++;
        fPythia->ImportParticles(&fParticles,"All");
-       Boost();
+       if (TMath::Abs(fDyBoost) > 1.e-4) Boost();
 //
 //
 //
@@ -891,10 +890,7 @@ Int_t  AliGenPythia::GenerateMB()
 
     Int_t* pParent = new Int_t[np];
     for (i=0; i< np; i++) pParent[i] = -1;
-    //
-    //TO BE CHECKED:  Should we require this for Beauty Jets?
-    //
-    if (fProcess == kPyJets || fProcess == kPyDirectGamma || fProcess == kPyBeautyJets) {
+     if (fProcess == kPyJets || fProcess == kPyDirectGamma || fProcess == kPyBeautyJets || fProcess == kPyBeautyppMNRwmi) {
        TParticle* jet1 = (TParticle *) fParticles.At(6);
        TParticle* jet2 = (TParticle *) fParticles.At(7);
        if (!CheckTrigger(jet1, jet2)) {
@@ -940,7 +936,9 @@ Int_t  AliGenPythia::GenerateMB()
 
       Int_t pdg  = 11; //electron
 
-      Float_t pt, eta, phi;
+      Float_t pt  = 0.;
+      Float_t eta = 0.;
+      Float_t phi = 0.;
       for (i=0; i< np; i++) {
        TParticle* iparticle = (TParticle *) fParticles.At(i);
        if(iparticle->GetStatusCode()==1 && TMath::Abs(iparticle->GetPdgCode())==pdg && 
@@ -966,17 +964,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;
@@ -989,7 +985,7 @@ Int_t  AliGenPythia::GenerateMB()
        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
@@ -1046,9 +1042,7 @@ Int_t  AliGenPythia::GenerateMB()
 
     // Check if there is a ccbar or bbbar pair with at least one of the two
     // in fYMin < y < fYMax
-    //
-    // TO BE CHECKED:  Should we require this for beauty jets?
-    //
+
     if (fProcess == kPyCharmppMNRwmi || fProcess == kPyBeautyppMNRwmi || fProcess == kPyBeautyJets) {
       TParticle *partCheck;
       TParticle *mother;
@@ -1113,9 +1107,6 @@ Int_t  AliGenPythia::GenerateMB()
        Int_t km = iparticle->GetFirstMother();
        if ((ks == 1  && kf!=0 && KinematicSelection(iparticle, 0)) ||
            (ks != 1) ||
-           //
-           //TO BE CHECKED:  Should we require this for beauty jets?
-           //
            ((fProcess == kPyJets || fProcess == kPyBeautyJets) && ks == 21 && km == 0 && i>1)) {
            nc++;
            if (ks == 1) trackIt = 1;
@@ -1226,7 +1217,7 @@ void AliGenPythia::MakeHeader()
 // Jets that have triggered
 
     //Need to store jets for b-jet studies too!
-    if (fProcess == kPyJets || fProcess == kPyDirectGamma || fProcess == kPyBeautyJets)
+    if (fProcess == kPyJets || fProcess == kPyDirectGamma || fProcess == kPyBeautyJets || fProcess == kPyBeautyppMNRwmi)
     {
        Int_t ntrig, njet;
        Float_t jets[4][10];
@@ -1281,7 +1272,7 @@ void AliGenPythia::MakeHeader()
            AliFastGlauber::Instance()->GetSavedI0I1(i0i1);
            xp = xy[0];
            yp = xy[1];
-           ((AliGenPythiaEventHeader*) fHeader)->SetInMediumLength(2. * i0i1[1] / i0i1[0]);
+           ((AliGenPythiaEventHeader*) fHeader)->SetImpactParameter(fImpact);
        }
        
            ((AliGenPythiaEventHeader*) fHeader)->SetXYJet(xp, yp);
@@ -1312,10 +1303,7 @@ Bool_t AliGenPythia::CheckTrigger(TParticle* jet1, TParticle* jet2)
     pdg[1] = jet2->GetPdgCode();    
     Bool_t   triggered = kFALSE;
 
-    //
-    //TO BE CHECKED: If we call this method for kPyBeautyJets, we need it here
-    //
-    if (fProcess == kPyJets || fProcess == kPyBeautyJets) {
+    if (fProcess == kPyJets || fProcess == kPyBeautyJets || fProcess ==  kPyBeautyppMNRwmi) {
        Int_t njets = 0;
        Int_t ntrig = 0;
        Float_t jets[4][10];