Line data Source code
1 : #ifndef ALIGENTUNEDONPBPB_H
2 : #define ALIGENTUNEDONPBPB_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : /* $Id: AliGenTunedOnPbPb.h 51126 2013-08-19 13:37:49Z fnoferin $ */
7 :
8 : // Parameterisation based on 5.5 ATeV PbPb data
9 : // pi,K, p , K0, lambda, phi, Xi, Omega spectra, v2, v3 (no jets!)
10 : // used for the ALICE TDRs.
11 : // Author: fnoferin@cern.ch
12 :
13 : class TF1;
14 :
15 : #include "AliGenerator.h"
16 : #include "TMath.h"
17 : #include "TH1F.h"
18 : #include "TH2F.h"
19 :
20 : class AliGenTunedOnPbPb : public AliGenerator
21 : {
22 : public:
23 :
24 : AliGenTunedOnPbPb();
25 : virtual ~AliGenTunedOnPbPb();
26 : virtual void Generate();
27 : virtual void Init();
28 : virtual void SetPtRange(Float_t ptmin = 0., Float_t ptmax=15.);
29 0 : virtual void SetCentralityRange(Float_t cmin,Float_t cmax){fCmin=TMath::Max(cmin,Float_t(0));fCmax=TMath::Min(cmax,Float_t(100));};
30 :
31 0 : void SetSpectrum(Int_t species,TH1 *histo){fgHSpectrum[species] = histo;};
32 0 : TH1 *GetSpectrum(Int_t species){return fgHSpectrum[species];};
33 0 : void SetV2(Int_t species,TH1 *histo){fgHv2[species] = histo;};
34 0 : TH1 *GetV2(Int_t species){return fgHv2[species];};
35 :
36 0 : static Float_t GetEventPlane(){return fgEventplane;};
37 :
38 : static TH1F *GetMultVsCentrality(Int_t species);
39 :
40 0 : void SetCentralityDependence(Bool_t flag=kTRUE){fChangeWithCentrality=flag;};
41 0 : void SetYmax(Float_t value){fYMaxValue=value;};
42 0 : void SetYmaxFlatness(Float_t value=2.0){fYlimitForFlatness=value;};
43 0 : void SetDecreaseSp(Float_t value=0.2){fYdecreaseSp=value;};
44 0 : void SetDecreaseV2(Float_t value=0.2){fYdecreaseV2=value;};
45 :
46 : enum Particles {
47 : kPiPlus, kPiMinus, kPi0 , kKaonPlus, kKaonMinus, kProton , kAntiProton , kKaon0, kLambda, kAntiLambda,
48 : kPhi , kXi , kAntiXi, kOmega , kAntiOmega, kNeutron, kAntiNeutron
49 : };
50 : private:
51 : AliGenTunedOnPbPb(const AliGenTunedOnPbPb ¶);
52 : AliGenTunedOnPbPb& operator = (const AliGenTunedOnPbPb ¶) ;
53 :
54 : static void DefineSpectra();
55 :
56 : static void SetParameters(Float_t centrality);
57 :
58 : static const Int_t fgNspecies = 17; // number of species available
59 : static Int_t fgPdgInput[fgNspecies]; // pdgs available
60 : static Float_t fgMult[fgNspecies]; // current multiplicity (fixed as a function of centrality)
61 : static Float_t fgV3Overv2; // v3 / v2 (fixed as a function of centrality)
62 : static Float_t fgEventplane; // event plane (Psi2)
63 :
64 : static TF1 *fgV2; // function to model the anisotropy
65 :
66 : TH1 *fgHSpectrum[fgNspecies]; // pt distributions (should be passed in Config.C)
67 : TH1 *fgHv2[fgNspecies]; // v2 vs pt (should be passed in Config.C)
68 :
69 : Float_t fCmin; // min centrality
70 : Float_t fCmax; // max centrality
71 :
72 : Bool_t fChangeWithCentrality; // flag to apply a centrality dependence to pt-distr and v2
73 : Float_t fYMaxValue; // max value for rapidity (abs)
74 : Float_t fYlimitForFlatness; // starting from this value y-profile starts to decrease both for spectra and v2
75 : Float_t fYdecreaseSp; // angular coefficient for the decrease above fYlimitForFlatness (spectra)
76 : Float_t fYdecreaseV2; // angular coefficient for the decrease above fYlimitForFlatness (v2)
77 :
78 6 : ClassDef(AliGenTunedOnPbPb,3) // Hijing parametrisation generator
79 : };
80 : #endif
|