]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TDPMjet/AliGenDPMjet.h
Extra header added to the list
[u/mrichter/AliRoot.git] / TDPMjet / AliGenDPMjet.h
... / ...
CommitLineData
1#ifndef ALIGENDPMJET_H
2#define ALIGENDPMJET_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6// Generator using DPMJET as an external generator
7// The main DPMJET options are accessable for the user through this interface.
8
9#include "AliGenMC.h"
10#include "TDPMjet.h"
11#include "AliGenDPMjetEventHeader.h"
12#include <TString.h>
13#include <TArrayI.h>
14
15class TDPMjet;
16class TParticle;
17class TClonesArray;
18class AliGenEventHeader;
19class AliStack;
20class AliRunLoader;
21class AliGenDPMjetEventHeader;
22class AliIonPDGCodes;
23
24
25class AliGenDPMjet : public AliGenMC
26{
27
28 public:
29 AliGenDPMjet();
30 AliGenDPMjet(Int_t npart);
31 AliGenDPMjet(const AliGenDPMjet &Dpmjet);
32 virtual ~AliGenDPMjet();
33 virtual void Generate();
34 virtual void Init();
35 virtual void FinishRun();
36 virtual void SetEnergyCMS(Float_t energy = 14000.) {fEnergyCMS = energy;}
37 virtual void SetProjectileBeamEnergy(Float_t benergy = 7000.) {fBeamEn = benergy;}
38 virtual void SetImpactParameterRange(Float_t bmin=0., Float_t bmax=1.)
39 {fMinImpactParam=bmin; fMaxImpactParam=bmax;}
40 virtual void SetProcess(DpmProcess_t iproc) {fProcess = iproc;}
41 virtual void SetCentral(Int_t icentr=-2) {fICentr = icentr;}
42 virtual void SetFlavor(Int_t flag=0) {fFlavor = flag;}
43 virtual void SetSelectAll(Int_t flag=0) {fSelectAll = flag;}
44 virtual void SetSpectators(Int_t spects=1) {fSpectators = spects;}
45 virtual void SetBoostLHC(Int_t flag=0) {fLHC = flag;}
46 virtual void SetPi0Decay(Int_t iPi0) {fPi0Decay = iPi0;}
47 virtual void SetDecayAll(Int_t iDec) {fDecayAll = iDec;}
48 virtual void SetIonPDGCodes();
49 virtual void GetImpactParameterRange(Float_t& bmin, Float_t& bmax)
50 {bmin = fMinImpactParam; bmax = fMaxImpactParam;}
51 virtual Int_t GetSpectators() {return fSpectators;}
52 virtual Int_t GetFlavor() {return fFlavor;}
53
54 virtual void SetGenImpPar(Float_t bValue) {fGenImpPar=bValue;}
55 virtual Float_t GetGenImpPar() {return fGenImpPar;}
56
57 // Trigger on a single particle (not related to calorimeter trigger above)
58 virtual void SetTriggerParticle(Int_t particle = 0, Float_t etamax = 0.9, Float_t ptmin = -1, Float_t ptmax = 1000)
59 {fTriggerParticle = particle; fTriggerEta = etamax; fTriggerMinPt = ptmin; fTriggerMaxPt = ptmax;}
60
61 virtual void SetTriggerChargedMultiplicity(Int_t multiplicity,
62 Float_t etamax = 0, Float_t ptmin = -1.)
63 {fTriggerMultiplicity = multiplicity; fTriggerMultiplicityEta = etamax;
64 fTriggerMultiplicityPtMin = ptmin;}
65
66 AliGenDPMjet & operator=(const AliGenDPMjet & rhs);
67 //void AddHeader(AliGenEventHeader* header);
68
69 void SetTuneForDiff(Bool_t a=kTRUE) {fkTuneForDiff=a;}
70
71 virtual void SetFragmentProd(Bool_t val) {fFragmentation = val;}
72 virtual Bool_t ProvidesCollisionGeometry() const {return kTRUE;}
73
74 protected:
75 Bool_t SelectFlavor(Int_t pid);
76 void MakeHeader();
77
78 protected:
79 Float_t fBeamEn; // beam energy
80 Float_t fMinImpactParam; // minimum impact parameter
81 Float_t fMaxImpactParam; // maximum impact parameter
82 Int_t fICentr; // Flag to force central production
83 Int_t fSelectAll; // Flag to write the full event
84 Int_t fFlavor; // Selected particle flavor 4: charm+beauty 5: beauty
85 Int_t fTrials; // Number of trials
86 Int_t fNprimaries; // Number of generated particles
87 Int_t fSpectators; // put spectators on stack
88 Int_t fSpecn; // Num. of spectator neutrons
89 Int_t fSpecp; // Num. of spectator protons
90 TDPMjet *fDPMjet; // DPMjet
91 Int_t fNoGammas; // Don't write gammas if flag "on"
92 Int_t fLHC; // Assume LHC as lab frame
93 Int_t fPi0Decay; // Flag for pi0 decays
94 Int_t fDecayAll; // Flag to switch on long-lived particle decays
95 Float_t fGenImpPar; // GeneratedImpactParameter
96 DpmProcess_t fProcess; // Process type
97 Int_t fTriggerParticle; // Trigger on this particle ...
98 Float_t fTriggerEta; // .. within |eta| < fTriggerEta
99 Float_t fTriggerMinPt; // .. within pt > fTriggerMinPt
100 Float_t fTriggerMaxPt; // .. within pt < fTriggerMaxPt
101 // Multiplicity Trigger
102 Int_t fTriggerMultiplicity; // Triggered multiplicity
103 Float_t fTriggerMultiplicityEta; // Triggered multiplicity eta cut
104 Float_t fTriggerMultiplicityPtMin; // Triggered multiplicity min pt
105
106 Bool_t fkTuneForDiff; // Phojet tune
107 Int_t fProcDiff;
108
109 Bool_t fFragmentation; // Allows evaporation and fragments production
110 AliGenDPMjetEventHeader fHeader; // MC header
111
112 private:
113 // adjust the weight from kinematic cuts
114 void AdjustWeights();
115 // check seleted daughters
116 Bool_t DaughtersSelection(TParticle* iparticle);
117 // check if stable
118 Bool_t Stable(TParticle* particle);
119
120 Bool_t CheckDiffraction();
121 Bool_t GetWeightsDiffraction(Double_t M, Double_t &Mmin, Double_t &Mmax,
122 Double_t &wSD, Double_t &wDD, Double_t &wND);
123
124 ClassDef(AliGenDPMjet,6) // AliGenerator interface to DPMJET
125};
126#endif
127
128
129
130
131