]> git.uio.no Git - u/mrichter/AliRoot.git/blame - THydjet/AliGenHydjet.h
Adding Domenico Colella as responsible for SPD part in TRI pp
[u/mrichter/AliRoot.git] / THydjet / AliGenHydjet.h
CommitLineData
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
16class THydjet;
17class TParticle;
18class TClonesArray;
19
20class 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
cb220f83 53 // virtual TString GetReferenceFrame() const {return fFrame;}
54
55//
56 AliGenHydjet & operator=(const AliGenHydjet & rhs);
57 protected:
58 Bool_t SelectFlavor(Int_t pid);
59 void MakeHeader();
60 protected:
61 //initial parameters
cb220f83 62 TString fFrame; // Reference frame
63 Float_t fAtomicWeigth; // Projectile-Target atomic weight
64 Int_t fIfbtype; // centrality type
65 Float_t fFixImpactParam; // fixed impact parameter
66 Float_t fMinImpactParam; // minimum impact parameter
67 Float_t fMaxImpactParam; // maximum impact parameter
68 Int_t fSoftMult; // mean soft multiplicity
69 //hydro parameters
70 Int_t fJetProd; // flag Jet production (nhsel)
71 Float_t fYflow; // max longitudinal flow
72 Float_t fTflow; // max transverse flow
73 Float_t fSoftFract; // Soft multiplicity fraction
74 // PYTHIA parameters
75 Int_t fDijetProd; // flag dijet production
76 Float_t fMinPtHard; // min pt hard
77 Int_t fStructFunction; // Structure Function (default CTEQ5M)
78 Int_t fMultipleInt; // flag multiple interaction
79
80 THydjet *fHydjet; //!Hydjet
81
82 Int_t fSelectAll; // Flag to write the full event
83 Int_t fFlavor; // Selected particle flavor 4: charm+beauty 5: beauty
84
85 private:
86 AliGenHydjet(const AliGenHydjet &Hijing);
87 void Copy(TObject &rhs) const;
88 // check if stable
89 Bool_t Stable(TParticle* particle) const;
90
91 ClassDef(AliGenHydjet, 1) // AliGenerator interface to Hydjet
92};
93#endif
94
95
96
97
98