Updates needed to be in synch with TDPMjet.
[u/mrichter/AliRoot.git] / TDPMjet / AliGenDPMjet.h
CommitLineData
1a52e0ed 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"
e67e0fb7 10#include "TDPMjet.h"
1a52e0ed 11#include <TString.h>
12#include <TArrayI.h>
13
14class TDPMjet;
15class TArrayI;
16class TParticle;
17class TClonesArray;
18class TGraph;
19
20class AliGenDPMjet : public AliGenMC
21{
22
23 public:
24 AliGenDPMjet();
25 AliGenDPMjet(Int_t npart);
ba758f5a 26 AliGenDPMjet(const AliGenDPMjet &Dpmjet);
1a52e0ed 27 virtual ~AliGenDPMjet();
28 virtual void Generate();
29 virtual void Init();
e67e0fb7 30 virtual void SetEnergyCMS(Float_t energy = 14000.) {fEnergyCMS = energy; fBeamEn = energy / 2.;}
1a52e0ed 31 virtual void SetImpactParameterRange(Float_t bmin=0., Float_t bmax=16.)
32 {fMinImpactParam=bmin; fMaxImpactParam=bmax;}
e67e0fb7 33 virtual void SetProcess(DpmProcess_t iproc) {fProcess = iproc;}
1a52e0ed 34 virtual void SetCentral(Int_t icentr=-2) {fICentr = icentr;}
35 virtual void KeepFullEvent();
36 virtual void SetDecaysOff(Int_t flag=1) {fDecaysOff = flag;}
37 virtual void SetFlavor(Int_t flag=0) {fFlavor = flag;}
38 virtual void SetEvaluate(Int_t flag=0) {fEvaluate = flag;}
39 virtual void SetSelectAll(Int_t flag=0) {fSelectAll = flag;}
40 virtual void SetSpectators(Int_t spects=1) {fSpectators = spects;}
41 virtual void SetBoostLHC(Int_t flag=0) {fLHC = flag;}
42
43 virtual Float_t GetEnergyCMS() {return fEnergyCMS;}
44 virtual void GetProjectile(Int_t& a, Int_t& z)
45 {a = fAProjectile; z = fZProjectile;}
46 virtual void GetTarget(Int_t& a, Int_t& z)
47 {a = fATarget; z = fZTarget;}
48 virtual void GetImpactParameterRange(Float_t& bmin, Float_t& bmax)
49 {bmin = fMinImpactParam; bmax = fMaxImpactParam;}
ba758f5a 50 virtual Int_t GetSpectators() {return fSpectators;}
51 virtual Int_t GetFlavor() {return fFlavor;}
1a52e0ed 52
53 // Temporeaneo!?!
54 virtual void SetGenImpPar(Float_t bValue) {fGenImpPar=bValue;}
55 virtual Float_t GetGenImpPar() {return fGenImpPar;}
56
1a52e0ed 57 AliGenDPMjet & operator=(const AliGenDPMjet & rhs);
58
59 protected:
60 Bool_t SelectFlavor(Int_t pid);
61 void MakeHeader();
62
63 protected:
1a52e0ed 64 Float_t fBeamEn; // beam energy
65 Float_t fEnergyCMS; // Centre of mass energy
66 Float_t fMinImpactParam; // minimum impact parameter
67 Float_t fMaxImpactParam; // maximum impact parameter
68 Int_t fICentr; // Flag to force central production
69 Float_t fCrossSec; // Fraction of x-section
70 Int_t fKeep; // Flag to keep full event information
71 Int_t fDecaysOff; // Flag to turn off decays of pi0, K_s, D, Lambda, sigma
72 Int_t fEvaluate; // Evaluate total and partial cross-sections
73 Int_t fSelectAll; // Flag to write the full event
74 Int_t fFlavor; // Selected particle flavor 4: charm+beauty 5: beauty
75 Int_t fTrials; // Number of trials
76 TArrayI fParentSelect; // Parent particles to be selected
77 TArrayI fChildSelect; // Decay products to be selected
78 Float_t fXsection; // Cross-section
79 Int_t fSpectators; // put spectators on stack
80 Int_t fSpecn; // Num. of spectator neutrons
81 Int_t fSpecp; // Num. of spectator protons
82 TDPMjet *fDPMjet; // DPMjet
83 TGraph* fDsigmaDb; // dSigma/db for the system
84 TGraph* fDnDb; // dNBinaryCollisions/db
85 TClonesArray *fParticles; // Particle List
86 Int_t fNoGammas; // Don't write gammas if flag "on"
87 Int_t fLHC; // Assume LHC as lab frame
88 // Temporaneo!
89 Float_t fGenImpPar; // GeneratedImpactParameter
e67e0fb7 90 DpmProcess_t fProcess; // Process type
1a52e0ed 91
92 private:
93 // adjust the weight from kinematic cuts
94 void AdjustWeights();
95 // check seleted daughters
96 Bool_t DaughtersSelection(TParticle* iparticle);
97 // check if stable
98 Bool_t Stable(TParticle* particle);
99
100 ClassDef(AliGenDPMjet,1) // AliGenerator interface to DPMJET
101};
102#endif
103
104
105
106
107