#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
virtual void Generate();
virtual void Init();
virtual void FinishRun();
- virtual void SetEnergyCMS(Float_t energy = 14000.) {fEnergyCMS = energy; fBeamEn = energy / 2.;}
- virtual void SetpBeamEnergy(Float_t benergy = 14000.) {fBeamEn = benergy;}
+ 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;}
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;}
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
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
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
Int_t fProcDiff;
Bool_t fFragmentation; // Allows evaporation and fragments production
+ AliGenDPMjetEventHeader fHeader; // MC header
private:
// adjust the weight from kinematic cuts
Bool_t GetWeightsDiffraction(Double_t M, Double_t &Mmin, Double_t &Mmax,
Double_t &wSD, Double_t &wDD, Double_t &wND);
- ClassDef(AliGenDPMjet,5) // AliGenerator interface to DPMJET
+ ClassDef(AliGenDPMjet,6) // AliGenerator interface to DPMJET
};
#endif