]>
Commit | Line | Data |
---|---|---|
cb220f83 | 1 | #ifndef ALIGENHYDJET_H |
2 | #define ALIGENHYDJET_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | // Generator using Hydjet as an external generator | |
9 | // The main Hydjet options are accessable for the user through this interface. | |
10 | // rafael.diaz.valdes@cern.ch | |
11 | ||
12 | ||
13 | #include "AliGenMC.h" | |
14 | #include <TString.h> | |
15 | ||
16 | class THydjet; | |
17 | class TParticle; | |
18 | class TClonesArray; | |
19 | ||
20 | class AliGenHydjet : public AliGenMC | |
21 | { | |
22 | ||
23 | public: | |
24 | AliGenHydjet(Int_t npart=0); | |
25 | virtual ~AliGenHydjet(); | |
26 | virtual void Generate(); | |
27 | virtual void Init(); | |
28 | // set initial beam parameters | |
29 | virtual void SetEnergyCMS(Float_t energy=5500.) {fEnergyCMS=energy;} | |
30 | virtual void SetReferenceFrame(TString frame="CMS") {fFrame=frame;} | |
31 | virtual void SetProjectileWeigth(Int_t a=207){fAtomicWeigth=a;} | |
32 | virtual void SetCentralityType(Int_t ifb=0){fIfbtype = ifb;} | |
33 | virtual void SetFixedImpactParameter(Float_t bfix=0) {fFixImpactParam = bfix;} | |
34 | virtual void SetImpactParameterRange(Float_t bmin = 0., Float_t bmax = 1.) | |
35 | {fMinImpactParam=bmin; fMaxImpactParam=bmax;} | |
36 | virtual void SetMeanSoftMultiplicity(Int_t mult=20000){fSoftMult=mult;} | |
37 | // set hydro parameters | |
38 | virtual void SetJetProduction(Int_t nhsel = 2){fJetProd=nhsel;} | |
39 | virtual void SetMaxLongitudinalFlow(Float_t yflow = 5.){fYflow=yflow;} | |
40 | virtual void SetMaxTransverseFlow(Float_t tflow = 1.){fTflow=tflow;} | |
41 | virtual void SetSoftMultFraction(Float_t softfract = 1.){fSoftFract=softfract;} | |
42 | // set input PYTHIA parameters | |
43 | virtual void SetDiJetProd(Int_t flag=1){fDijetProd=flag;} | |
44 | virtual void SetMinPtHard(Float_t ptmin=10.){fMinPtHard=ptmin;} | |
45 | virtual void SetStructFunction(Int_t mstp =7){fStructFunction=mstp;} // CTEQ5M | |
46 | virtual void SetMultipleInteractions(Int_t flag=0){fMultipleInt=flag;} | |
47 | ||
48 | virtual void SetFlavor(Int_t flag=0) {fFlavor = flag;} | |
49 | virtual void SetSelectAll(Int_t flag=0) {fSelectAll = flag;} | |
50 | virtual void AddHeader(AliGenEventHeader* header); | |
51 | ||
52 | // Getters | |
53 | // virtual Float_t GetEnergyCMS() const {return fEnergyCMS;} | |
54 | // virtual TString GetReferenceFrame() const {return fFrame;} | |
55 | ||
56 | // | |
57 | AliGenHydjet & operator=(const AliGenHydjet & rhs); | |
58 | protected: | |
59 | Bool_t SelectFlavor(Int_t pid); | |
60 | void MakeHeader(); | |
61 | protected: | |
62 | //initial parameters | |
63 | Float_t fEnergyCMS; //Energy cms | |
64 | TString fFrame; // Reference frame | |
65 | Float_t fAtomicWeigth; // Projectile-Target atomic weight | |
66 | Int_t fIfbtype; // centrality type | |
67 | Float_t fFixImpactParam; // fixed impact parameter | |
68 | Float_t fMinImpactParam; // minimum impact parameter | |
69 | Float_t fMaxImpactParam; // maximum impact parameter | |
70 | Int_t fSoftMult; // mean soft multiplicity | |
71 | //hydro parameters | |
72 | Int_t fJetProd; // flag Jet production (nhsel) | |
73 | Float_t fYflow; // max longitudinal flow | |
74 | Float_t fTflow; // max transverse flow | |
75 | Float_t fSoftFract; // Soft multiplicity fraction | |
76 | // PYTHIA parameters | |
77 | Int_t fDijetProd; // flag dijet production | |
78 | Float_t fMinPtHard; // min pt hard | |
79 | Int_t fStructFunction; // Structure Function (default CTEQ5M) | |
80 | Int_t fMultipleInt; // flag multiple interaction | |
81 | ||
82 | THydjet *fHydjet; //!Hydjet | |
83 | ||
84 | Int_t fSelectAll; // Flag to write the full event | |
85 | Int_t fFlavor; // Selected particle flavor 4: charm+beauty 5: beauty | |
86 | ||
87 | private: | |
88 | AliGenHydjet(const AliGenHydjet &Hijing); | |
89 | void Copy(TObject &rhs) const; | |
90 | // check if stable | |
91 | Bool_t Stable(TParticle* particle) const; | |
92 | ||
93 | ClassDef(AliGenHydjet, 1) // AliGenerator interface to Hydjet | |
94 | }; | |
95 | #endif | |
96 | ||
97 | ||
98 | ||
99 | ||
100 |