]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PYTHIA6/AliGenPythia.h
single instance of AliTPythia used
[u/mrichter/AliRoot.git] / PYTHIA6 / AliGenPythia.h
index 662e6ed8d7f89fcdfe52e182184f6b774e30d3f9..8ccb53f0abd81e767cd921bec227f040e5e2a3d8 100644 (file)
@@ -31,7 +31,7 @@ class AliGenPythia : public AliGenMC
 {
  public:
 
-    typedef enum {kFlavorSelection, kParentSelection} StackFillOpt_t;
+    typedef enum {kFlavorSelection, kParentSelection, kHeavyFlavor} StackFillOpt_t;
     typedef enum {kCountAll, kCountParents, kCountTrackables} CountMode_t;
     typedef enum {kCluster, kCell} JetRecMode_t;
          
@@ -114,8 +114,9 @@ class AliGenPythia : public AliGenMC
     // Trigger and rotate event 
     void RotatePhi(Int_t iphcand, Bool_t& okdd);
     // Trigger on a single particle
-    virtual void    SetTriggerParticle(Int_t particle = 0, Float_t etamax = 0.9) 
-       {fTriggerParticle = particle; fTriggerEta = etamax;}
+    virtual void    SetTriggerParticle(Int_t particle = 0, Float_t etamax = 0.9, Float_t ptmin = -1, Float_t ptmax = 1000) 
+       {fTriggerParticle = particle; fTriggerEta = etamax; fTriggerMinPt = ptmin; fTriggerMaxPt = ptmax;}
+
     //
     // Heavy flavor options
     //
@@ -145,10 +146,12 @@ class AliGenPythia : public AliGenMC
     void SetQhat(Float_t qhat) {fQhat = qhat;}
     //Set initial medium length.
     void SetLength(Float_t length) {fLength = length;}
-
+    //set parameters for pyquen afterburner
+    virtual void SetPyquenPar(Float_t t0=1., Float_t tau0=0.1, Int_t nf=0,Int_t iengl=0, Int_t iangl=3)
+    {fpyquenT = t0; fpyquenTau = tau0; fpyquenNf=nf;fpyquenEloss=iengl;fpyquenAngle=iangl;}
     virtual void SetHadronisation(Int_t flag = 1) {fHadronisation = flag;}
     virtual void SetPatchOmegaDalitz(Int_t flag = 1) {fPatchOmegaDalitz = flag;}
-    virtual void SetReadFromFile(const Text_t *filname) {fFileName = filname;  fReadFromFile = 1;}    
+    virtual void SetReadFromFile(const Text_t *filname) {fkFileName = filname;  fReadFromFile = 1;}    
 
     //
     // Pile-up
@@ -166,7 +169,7 @@ class AliGenPythia : public AliGenMC
                             Float_t minet = 10., Float_t r = 1.);
     
   void LoadEvent(AliStack* stack, Int_t flag = 0, Int_t reHadr = 0);
-  void LoadEvent(TObjArray* stack, Int_t flag = 0, Int_t reHadr = 0);
+  void LoadEvent(const TObjArray* stack, Int_t flag = 0, Int_t reHadr = 0);
     // Getters
     virtual Process_t    GetProcess() const {return fProcess;}
     virtual StrucFunc_t  GetStrucFunc() const {return fStrucFunc;}
@@ -183,15 +186,19 @@ class AliGenPythia : public AliGenMC
     virtual void         GetGammaPhiRange(Float_t& phimin, Float_t& phimax) const
        {phimin = fPhiMinGamma*180./TMath::Pi(); phimax = fPhiMaxGamma*180./TMath::Pi();}
     //
-    Bool_t IsInEMCAL(Float_t phi, Float_t eta);
-    Bool_t IsInPHOS(Float_t phi, Float_t eta);
+    Bool_t IsInEMCAL(Float_t phi, Float_t eta) const;
+    Bool_t IsInPHOS(Float_t phi, Float_t eta) const;
+    Bool_t IsFromHeavyFlavor(Int_t ipart);
     //
     virtual void FinishRun();
-    Bool_t CheckTrigger(TParticle* jet1, TParticle* jet2);
+    Bool_t CheckTrigger(const TParticle* jet1, const TParticle* jet2);
     //Used in some processes to selected child properties
     Bool_t CheckKinematicsOnChild();
     void     GetSubEventTime();
 
+    void SetTuneForDiff(Bool_t a=kTRUE) {fkTuneForDiff=a;}
+    AliDecayer * GetDecayer(){return fDecayer;}
+
  protected:
     // adjust the weight from kinematic cuts
     void     AdjustWeights() const;
@@ -229,6 +236,11 @@ class AliGenPythia : public AliGenMC
     Int_t       fQuench;            //Flag for quenching
     Float_t     fQhat;              //Transport coefficient (GeV^2/fm)
     Float_t     fLength;            //Medium length (fm)
+    Float_t     fpyquenT;           //Pyquen initial temperature 
+    Float_t     fpyquenTau;         //Pyquen initial proper time
+    Int_t       fpyquenNf;          //Pyquen number of flavours into the game
+    Int_t       fpyquenEloss;       //Pyquen type of energy loss 
+    Int_t       fpyquenAngle;       //Pyquen radiation angle for gluons
     Float_t     fImpact;            //Impact parameter for quenching simulation (q-pythia) 
     Float_t     fPtKick;            //Transverse momentum kick
     Bool_t      fFullEvent;         //!Write Full event if true
@@ -265,6 +277,8 @@ class AliGenPythia : public AliGenMC
     Int_t   fNucPdf;                // Nuclear pdf 0: EKS98 1: EPS08
     Int_t   fTriggerParticle;       // Trigger on this particle ...
     Float_t fTriggerEta;            // .. within |eta| < fTriggerEta
+    Float_t fTriggerMinPt;          // .. within pt > fTriggerMinPt
+    Float_t fTriggerMaxPt;          // .. within pt < fTriggerMaxPt
     Int_t       fTriggerMultiplicity;       // Trigger on events with a minimum charged multiplicity
     Float_t     fTriggerMultiplicityEta;    // in a given eta range
     Float_t     fTriggerMultiplicityPtMin;  // above this pT 
@@ -279,7 +293,7 @@ class AliGenPythia : public AliGenMC
 
     AliGenPythiaEventHeader* fHeader;  //! Event header
     AliRunLoader*            fRL;      //! Run Loader
-    const Text_t* fFileName;           //! Name of file to read from
+    const Text_t* fkFileName;          //! Name of file to read from
 
 
     Bool_t fFragPhotonInCalo; // Option to ask for Fragmentation Photon in calorimeters acceptance
@@ -299,11 +313,19 @@ class AliGenPythia : public AliGenMC
     Float_t fEMCALMinPhi;          // Minimum phi EMCAL
     Float_t fEMCALMaxPhi;          // Maximum phi EMCAL
     Float_t fEMCALEta;             // Maximum eta EMCAL
+
+    Bool_t fkTuneForDiff;    // Pythia tune 
+    Int_t  fProcDiff;
  private:
     AliGenPythia(const AliGenPythia &Pythia);
     AliGenPythia & operator=(const AliGenPythia & rhs);
 
-    ClassDef(AliGenPythia, 9) // AliGenerator interface to Pythia
+
+    Bool_t CheckDiffraction();
+    Bool_t GetWeightsDiffraction(Double_t M, Double_t &Mmin, Double_t &Mmax, 
+                                              Double_t &wSD, Double_t &wDD, Double_t &wND);
+
+    ClassDef(AliGenPythia, 12) // AliGenerator interface to Pythia
 };
 #endif