- pt^hard of the event is stored in the event header
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 7 Mar 2006 10:30:46 +0000 (10:30 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 7 Mar 2006 10:30:46 +0000 (10:30 +0000)
- possibility to switch of heavy flavor production in mb

PYTHIA6/AliGenPythia.cxx
PYTHIA6/AliGenPythia.h
PYTHIA6/AliGenPythiaEventHeader.h

index f1dc4b7..0a90e0b 100644 (file)
@@ -69,6 +69,8 @@ AliGenPythia::AliGenPythia()
   SetQuench();
   SetHadronisation();  
   fSetNuclei = kFALSE;
+  fNewMIS    = kFALSE;
+  fHFoff     = kFALSE;
   if (!AliPythiaRndm::GetPythiaRandom()) 
     AliPythiaRndm::SetPythiaRandom(GetRandom());
 }
@@ -123,6 +125,8 @@ AliGenPythia::AliGenPythia(Int_t npart)
     // Pycel
     SetPycellParameters();
     fSetNuclei = kFALSE;
+    fNewMIS    = kFALSE;
+    fHFoff     = kFALSE;
 }
 
 AliGenPythia::AliGenPythia(const AliGenPythia & Pythia)
@@ -261,8 +265,12 @@ void AliGenPythia::Init()
     } else {
        fRL = 0x0;
     }
-    
-    
+// Switch off Heavy Flavors on request  
+    if (fHFoff) {
+       fPythia->SetMSTP(58, 3);
+       fPythia->SetMSTJ(45, 3);        
+       for (Int_t i = 156; i <= 160; i++) fPythia->SetMDME(i, 1, 0);
+    }
  //
     fPythia->ProcInit(fProcess,fEnergyCMS,fStrucFunc);
 
@@ -411,7 +419,11 @@ void AliGenPythia::Generate()
 // Either produce new event or read partons from file
 //     
        if (!fReadFromFile) {
-           fPythia->Pyevnt();
+           if (!fNewMIS) {
+               fPythia->Pyevnt();
+           } else {
+               fPythia->Pyevnw();
+           }
            fNpartons = fPythia->GetN();
        } else {
            printf("Loading Event %d\n",AliRunLoader::GetRunLoader()->GetEventNumber());
@@ -886,7 +898,9 @@ void AliGenPythia::MakeHeader()
            ((AliGenPythiaEventHeader*) fHeader)->SetXYJet(xp, yp);
            ((AliGenPythiaEventHeader*) fHeader)->SetZQuench(z);
        }
-    
+//
+// Store pt^hard 
+    ((AliGenPythiaEventHeader*) fHeader)->SetPtHard(fPythia->GetVINT(47));
 //
 //  Pass header
 //
index 3a003ca..7e307a7 100644 (file)
@@ -57,6 +57,10 @@ class AliGenPythia : public AliGenMC
        {fGinit = iIn; fGfinal = iFin;}
     virtual void    SetPtKick(Float_t kt = 1.)
        {fPtKick = kt;}
+    // Use the Pythia 6.3 new multiple interations scenario
+    virtual void    UseNewMultipleInteractionsScenario() {fNewMIS = kTRUE;}
+    // Switch off heavy flavors
+    virtual void    SwitchHFOff() {fHFoff = kTRUE;}
     // set centre of mass energy
     virtual void    SetEnergyCMS(Float_t energy = 5500) {fEnergyCMS = energy;}
     // treat protons as inside nuclei
@@ -199,6 +203,8 @@ class AliGenPythia : public AliGenMC
                                     // quark families (e.g. b->c)
     Bool_t fFragmentation;          // Option to activate fragmentation by Pythia
     Bool_t fSetNuclei;              // Flag indicating that SetNuclei has been called
+    Bool_t fNewMIS;                 // Flag for the new multipple interactions scenario
+    Bool_t fHFoff;                  // Flag for switching heafy flavor production off 
     //
 
     CountMode_t fCountMode;            // Options for counting when the event will be finished.
index 4bb49a6..ad2b130 100644 (file)
@@ -32,7 +32,10 @@ class AliGenPythiaEventHeader : public AliGenEventHeader
     void     SetXYJet(Double_t x, Double_t y); 
     void     SetZQuench(Double_t z[4]);
     void     GetZQuench(Double_t z[4]);
-    
+    void     SetPtHard(Float_t pthard) {fPtHard = pthard;}
+    Float_t  GetPtHard() {return fPtHard;}    
+       
+           
 protected:
     Int_t    fProcessType;               // PYTHIA process id for this event 
     Int_t    fTrials;                    // Number of trials to fulfill trigger condition
@@ -43,7 +46,8 @@ protected:
     Float_t  fJets[4][10];               // Trigger jets
     Float_t  fUQJets[4][10];             // Unquenched trigger jets
     Double_t fZquench[4];                // Quenching fraction
-    ClassDef(AliGenPythiaEventHeader,3)  // Event header for Pythia event
+    Float_t  fPtHard;                    // pT hard
+    ClassDef(AliGenPythiaEventHeader,4)  // Event header for Pythia event
 };