bug fixes
[u/mrichter/AliRoot.git] / EVGEN / AliGeVSimParticle.h
CommitLineData
7816887f 1#ifndef ALIGEVSIMPARTICLE_H
2#define ALIGEVSIMPARTICLE_H
3
ac3faee4 4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9//////////////////////////////////////////////////////////////////////////////
4966b266 10//
11// AliGeVSimParticle is a helper class for GeVSim (AliGenGeVSim) event generator.
12// An object of this class represents one particle type and contain
13// information about particle type thermal parameters.
14//
ac3faee4 15//////////////////////////////////////////////////////////////////////////////
7e4131fc 16//
4966b266 17// For examples, parameters and testing macros refer to:
18// http:/home.cern.ch/radomski
7e4131fc 19//
20// for more detailed description refer to ALICE NOTE
21// "GeVSim Monte-Carlo Event Generator"
22// S.Radosmki, P. Foka.
23//
4966b266 24// Author:
25// Sylwester Radomski,
26// GSI, March 2002
7e4131fc 27//
4966b266 28// S.Radomski@gsi.de
29//
ac3faee4 30//////////////////////////////////////////////////////////////////////////////
7e4131fc 31//
32// Updated and revised: September 2002, S. Radomski, GSI
33//
34////////////////////////////////////////////////////////////////////////////////
35
7816887f 36
4966b266 37#include "TObject.h"
7816887f 38
39class AliGeVSimParticle : public TObject {
40
7816887f 41 public:
4966b266 42
7816887f 43 ////////////////////////////////////////////////////////////////////////////
1c56e311 44
45 AliGeVSimParticle();
46 AliGeVSimParticle(Int_t pdg, Int_t model, Float_t multiplicity);
47 AliGeVSimParticle(Int_t pdg, Int_t model, Float_t multiplicity,
7816887f 48 Float_t T, Float_t dY = 1., Float_t exp=0.);
4966b266 49
1c56e311 50 ~AliGeVSimParticle() {}
4966b266 51
7816887f 52 ////////////////////////////////////////////////////////////////////////////
4966b266 53
54 Int_t GetPdgCode() const {return fPDG;}
7e4131fc 55 Int_t GetModel() const {return fModel;}
56
4966b266 57 Float_t GetTemperature() const {return fT;}
58 Float_t GetSigmaY() const {return fSigmaY;}
59 Float_t GetExpansionVelocity() const {return fExpansion;}
7e4131fc 60
61 void SetModel(Int_t model);
62 void SetTemperature(Float_t T) {fT = T;}
63 void SetSigmaY(Float_t sigma) {fSigmaY = sigma;}
7816887f 64 void SetExpansionVelocity(Float_t vel) {fExpansion = vel;}
4966b266 65
7e4131fc 66
67 // Multiplicity
68
69 void SetMultiplicity(Float_t mult);
ac3faee4 70 Float_t GetMultiplicity() const {return fN;}
7e4131fc 71
72 void SetMultTotal(Bool_t isTotal = kTRUE);
73
ac3faee4 74 Bool_t IsMultTotal() const {return fMultTotal;}
75 Bool_t IsMultForced() const {return fIsSetMult;}
4966b266 76
7e4131fc 77 // Flow
4966b266 78
7e4131fc 79 void SetDirectedSimple(Float_t v1);
80 void SetEllipticSimple(Float_t v2);
81
82 void SetDirectedParam(Float_t v11, Float_t v12=0, Float_t v13=1, Float_t v14=0);
83 void SetEllipticParam(Float_t v21, Float_t pTmax, Float_t v22=0.);
84 void SetEllipticOld(Float_t v21, Float_t v22, Float_t v23);
85
ac3faee4 86 Bool_t IsFlowSimple() const;
7e4131fc 87
4966b266 88 Float_t GetDirectedFlow(Float_t pt, Float_t y);
89 Float_t GetEllipticFlow(Float_t pt, Float_t y);
90
7816887f 91 ////////////////////////////////////////////////////////////////////////////
4966b266 92
93 private:
94
95 Int_t fPDG; // Particle type code
7e4131fc 96 Int_t fModel; // Transverse momentum model
97
4966b266 98 Float_t fN; // Multiplicity (subject to scalling)
7e4131fc 99 Bool_t fMultTotal; // multiplicity mode: Total or dN/dY
100 Bool_t fIsSetMult; // force multiplicity mode or use from AliGenGeVSim
101
4966b266 102 Float_t fT; // Slope Parameter (subject to scalling)
103 Float_t fSigmaY; // Rapidity Width
104 Float_t fExpansion; // Expansion Velocity in c units (subject to scalling)
105
7e4131fc 106 Float_t fV1[4]; // Directed Flow coefficient parameters
107 Float_t fV2[3]; // Elliptic Flow coefficient parameters
4966b266 108
7e4131fc 109 Bool_t fIsDirectedSimple; // indicate use constant value for directed (v1)
110 Bool_t fIsEllipticSimple; // indicate use constant value for elliptic (v2)
111 Bool_t fIsEllipticOld; // linear / quadratical pT parametrisation
112
7e4131fc 113 ClassDef(AliGeVSimParticle, 3)
4966b266 114
7816887f 115};
116
4966b266 117////////////////////////////////////////////////////////////////////////////////
7816887f 118
119#endif