]> git.uio.no Git - u/mrichter/AliRoot.git/blob - THydjet/AliGenHydjet.h
fix AliHLTGlobalEsdConverterComponent
[u/mrichter/AliRoot.git] / THydjet / AliGenHydjet.h
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 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
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