Boost for assymmetric systems added.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 4 Apr 2003 08:12:56 +0000 (08:12 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 4 Apr 2003 08:12:56 +0000 (08:12 +0000)
PYTHIA6/AliGenPythia.cxx
PYTHIA6/AliGenPythia.h

index 0cd83db..838d9eb 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.4  2003/04/01 20:39:00  morsch
+Pycell configurable.
+
 Revision 1.3  2003/03/31 15:47:16  morsch
 Unhandled cases added.
 
@@ -271,8 +274,6 @@ AliGenPythia::AliGenPythia(Int_t npart)
     fName = "Pythia";
     fTitle= "Particle Generator using PYTHIA";
     fXsection  = 0.;
-    fNucA1=0;
-    fNucA2=0;
     SetProcess();
     SetStrucFunc();
     SetForceDecay();
@@ -359,7 +360,7 @@ void AliGenPythia::Init()
     fPythia->SetCKIN(7,fYHardMin);
     fPythia->SetCKIN(8,fYHardMax);
     
-    if (fNucA1 > 0 && fNucA2 > 0) fPythia->SetNuclei(fNucA1, fNucA2);  
+    if (fAProjectile > 0 && fATarget > 0) fPythia->SetNuclei(fAProjectile, fATarget);  
     // Fragmentation?
     if (fFragmentation) {
       fPythia->SetMSTP(111,1);
@@ -500,6 +501,12 @@ void AliGenPythia::Generate()
        
        fPythia->ImportParticles(fParticles,"All");
 
+       if (fZTarget != 0 && fAProjectile != 0) 
+       {
+           Double_t dy    = - 0.5 * TMath::Log(Double_t(fZProjectile) * Double_t(fATarget) / 
+                                               (Double_t(fZTarget)    * Double_t(fAProjectile)));
+           Boost(dy);
+       }
 //
 //
 //
@@ -796,8 +803,8 @@ void AliGenPythia::AdjustWeights()
 void AliGenPythia::SetNuclei(Int_t a1, Int_t a2)
 {
 // Treat protons as inside nuclei with mass numbers a1 and a2  
-    fNucA1 = a1;
-    fNucA2 = a2;
+    fAProjectile = a1;
+    fATarget     = a2;
 }
 
 
index f9610c5..5acba60 100644 (file)
@@ -103,7 +103,7 @@ class AliGenPythia : public AliGenMC
        {ptmin = fPtHardMin; ptmax = fPtHardMax = ptmax;}
     virtual Float_t      GetEnergyCMS() {return fEnergyCMS;}
     virtual void         GetNuclei(Int_t&  a1, Int_t& a2)
-       {a1 = fNucA1; a2 = fNucA2;}
+       {a1 = fAProjectile; a2 = fATarget;}
     virtual void         GetJetEtRange(Float_t& etamin, Float_t& etamax)
        {etamin = fEtaMinJet; etamax = fEtaMaxJet;}
     virtual void         GetJetPhiRange(Float_t& phimin, Float_t& phimax)
@@ -124,7 +124,6 @@ class AliGenPythia : public AliGenMC
     Int_t  GenerateMB();
     void   MakeHeader();    
 
-    TClonesArray* fParticles;       //Particle  List
     
     Process_t   fProcess;           //Process type
     StrucFunc_t fStrucFunc;         //Structure Function
@@ -143,8 +142,6 @@ class AliGenPythia : public AliGenMC
     Float_t     fPtHardMax;         //higher pT-hard cut
     Float_t     fYHardMin;          //lower  y-hard cut 
     Float_t     fYHardMax;          //higher y-hard cut
-    Int_t       fNucA1;             //mass number nucleus side 1
-    Int_t       fNucA2;             //mass number nucleus side 2
     Int_t       fGinit;             //initial state gluon radiation
     Int_t       fGfinal;            //final state gluon radiation
     Float_t     fPtKick;            //Transverse momentum kick