]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TDPMjet/AliGenDPMjet.h
Copy decaytable into install directory
[u/mrichter/AliRoot.git] / TDPMjet / AliGenDPMjet.h
index 845791d3d63fe8adea0f4217f37d2faedb2a154f..499da27ec8bd08ed44d3f12b72b26825ee170e8c 100644 (file)
@@ -8,19 +8,18 @@
 
 #include "AliGenMC.h"
 #include "TDPMjet.h"
+#include "AliGenDPMjetEventHeader.h"
 #include <TString.h>
 #include <TArrayI.h>
 
 class TDPMjet;
-class TArrayI;
 class TParticle;
 class TClonesArray;
-class TGraph;
 class AliGenEventHeader;
 class AliStack;
 class AliRunLoader;
 class AliGenDPMjetEventHeader;
-
+class AliIonPDGCodes;
 
 
 class AliGenDPMjet : public AliGenMC
@@ -34,7 +33,8 @@ class AliGenDPMjet : public AliGenMC
     virtual void    Generate();
     virtual void    Init();
     virtual void    FinishRun();
-    virtual void    SetEnergyCMS(Float_t energy = 14000.) {fEnergyCMS = energy; fBeamEn = energy / 2.;}
+    virtual void    SetEnergyCMS(Float_t energy = 14000.) {fEnergyCMS = energy;}
+    virtual void    SetProjectileBeamEnergy(Float_t benergy = 7000.) {fBeamEn = benergy;}
     virtual void    SetImpactParameterRange(Float_t bmin=0., Float_t bmax=1.)
                        {fMinImpactParam=bmin; fMaxImpactParam=bmax;}
     virtual void    SetProcess(DpmProcess_t iproc) {fProcess = iproc;}
@@ -45,6 +45,7 @@ class AliGenDPMjet : public AliGenMC
     virtual void    SetBoostLHC(Int_t flag=0)         {fLHC        = flag;}
     virtual void    SetPi0Decay(Int_t iPi0)  {fPi0Decay = iPi0;}
     virtual void    SetDecayAll(Int_t iDec)  {fDecayAll = iDec;}
+    virtual void    SetIonPDGCodes();
     virtual void    GetImpactParameterRange(Float_t& bmin, Float_t& bmax)
                        {bmin = fMinImpactParam; bmax = fMaxImpactParam;}
     virtual Int_t   GetSpectators()        {return fSpectators;}
@@ -52,19 +53,27 @@ class AliGenDPMjet : public AliGenMC
 
     virtual void    SetGenImpPar(Float_t bValue) {fGenImpPar=bValue;}
     virtual Float_t GetGenImpPar() {return fGenImpPar;}
+
+    // Trigger on a single particle (not related to calorimeter trigger above)
+    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;}
+
     virtual void    SetTriggerChargedMultiplicity(Int_t multiplicity, 
                                                  Float_t etamax = 0, Float_t ptmin = -1.) 
     {fTriggerMultiplicity = multiplicity; fTriggerMultiplicityEta = etamax; 
       fTriggerMultiplicityPtMin = ptmin;}
 
     AliGenDPMjet &  operator=(const AliGenDPMjet & rhs);
-    void     AddHeader(AliGenEventHeader* header);
+    //void     AddHeader(AliGenEventHeader* header);
 
    void SetTuneForDiff(Bool_t a=kTRUE) {fkTuneForDiff=a;}
 
+   virtual void  SetFragmentProd(Bool_t val) {fFragmentation = val;}
+   virtual Bool_t ProvidesCollisionGeometry() const {return kTRUE;}
+
  protected:
-    Bool_t SelectFlavor(Int_t pid);
-    void   MakeHeader();
+   Bool_t SelectFlavor(Int_t pid);
+   void   MakeHeader();
 
  protected:
     Float_t       fBeamEn;        // beam energy
@@ -74,6 +83,7 @@ class AliGenDPMjet : public AliGenMC
     Int_t         fSelectAll;      // Flag to write the full event
     Int_t         fFlavor;         // Selected particle flavor 4: charm+beauty 5: beauty
     Int_t         fTrials;         // Number of trials
+    Int_t         fNprimaries;     // Number of generated particles
     Int_t         fSpectators;     // put spectators on stack
     Int_t        fSpecn;          // Num. of spectator neutrons
     Int_t        fSpecp;          // Num. of spectator protons
@@ -84,6 +94,10 @@ class AliGenDPMjet : public AliGenMC
     Int_t         fDecayAll;       // Flag to switch on long-lived particle decays
     Float_t      fGenImpPar;      // GeneratedImpactParameter
     DpmProcess_t  fProcess;        // Process type
+    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
     // Multiplicity Trigger
     Int_t         fTriggerMultiplicity;      // Triggered multiplicity
     Float_t       fTriggerMultiplicityEta;   // Triggered multiplicity eta cut
@@ -91,6 +105,9 @@ class AliGenDPMjet : public AliGenMC
 
     Bool_t fkTuneForDiff;    // Phojet tune 
     Int_t  fProcDiff;
+    
+    Bool_t fFragmentation; // Allows evaporation and fragments production
+    AliGenDPMjetEventHeader fHeader; // MC header
 
  private:
     // adjust the weight from kinematic cuts
@@ -104,7 +121,7 @@ class AliGenDPMjet : public AliGenMC
    Bool_t GetWeightsDiffraction(Double_t M, Double_t &Mmin, Double_t &Mmax, 
                                               Double_t &wSD, Double_t &wDD, Double_t &wND);
 
-    ClassDef(AliGenDPMjet,4) // AliGenerator interface to DPMJET
+    ClassDef(AliGenDPMjet,6) // AliGenerator interface to DPMJET
 };
 #endif