New version of AliGeVSim code. New class for flow afterburner (S.Radomski)
[u/mrichter/AliRoot.git] / EVGEN / AliGenAfterBurnerFlow.h
CommitLineData
4966b266 1#ifndef AliGenAfterBurnerFlow_h
2#define AliGenAfterBurnerFlow_h
3
4////////////////////////////////////////////////////////////////////////////////////////////////////
5//
6// AliGenAfterBurnerFlow is a After Burner event generator applying flow.
7// The generator changes Phi coordinate of the particle momentum.
8// Flow (directed and elliptical) can be defined on particle type level
9//
10// For examples, parameters and testing macros refer to:
11// http:/home.cern.ch/radomski
12//
13// Author:
14// Sylwester Radomski,
15// GSI, April 2002
16//
17// S.Radomski@gsi.de
18//
19////////////////////////////////////////////////////////////////////////////////////////////////////
20
21
22#include "AliGenerator.h"
23
24class TObjArray;
25
26class AliGenAfterBurnerFlow : public AliGenerator {
27
28 public:
29
30 AliGenAfterBurnerFlow();
31 AliGenAfterBurnerFlow(Float_t reactionPlane);
32
33 ~AliGenAfterBurnerFlow();
34
35 void SetDirected(Int_t pdg, Float_t v11, Float_t v12 = 0, Float_t v13 = 1, Float_t v14 = 0);
36 void SetElliptic(Int_t pdg, Float_t v21, Float_t v22 = 0, Float_t v23 = 0);
37
38 void SetDefDirected(Float_t v11, Float_t v12 = 0, Float_t v13 = 1, Float_t v14 = 0);
39 void SetDefElliptic(Float_t v21, Float_t v22 = 0, Float_t v23 = 0);
40
41 void Init();
42 void Generate();
43
44 private:
45
46 static const Int_t kN = 30;
47
48 Float_t GetCoeff(Int_t pdg, Int_t n, Float_t Pt, Float_t Y);
49 void SetFlowParameters(Int_t pdg, Int_t order, Float_t v1, Float_t v2, Float_t v3, Float_t v4);
50
51 Float_t fReactionPlane; // Reaction plane angle (in rad)
52 Float_t fParams[kN][6]; // parameters (0: pdg, 1: order, 2-5: actual parameters)
53 Int_t fCounter; // counter
54
55 public:
56
57 ClassDef(AliGenAfterBurnerFlow,1)
58
59};
60
61////////////////////////////////////////////////////////////////////////////////////////////////////
62
63#endif