#ifndef ALIGENGEVSIM_H
#define ALIGENGEVSIM_H
-#include "TObjArray.h"
-#include "TF1.h"
-#include "TF2.h"
-#include "AliGenerator.h"
-#include "AliGeVSimParticle.h"
+////////////////////////////////////////////////////////////////////////////////
+//
+// AliGenGeVSim is a class implementing simple Monte-Carlo event generator for
+// testing algorythms and detector performance.
+//
+// In this event generator particles are generated from thermal distributions
+// without any dynamics and addicional constrains. Distribution parameters like
+// multiplicity, particle type yields, inverse slope parameters, flow coeficients
+// and expansion velocities are expleicite defined by the user.
+//
+// GeVSim contains four thermal distributions the same as
+// MevSim event generator developed for STAR experiment.
+//
+// In addition custom distributions can be used be the mean of TF2 function
+// named "gevsimPtY".
+//
+// Azimuthal distribution is deconvoluted from (Pt,Y) distribution
+// and is described by two Fourier coefficients representing
+// Directed and Elliptical flow.
+//
+// To apply flow to event ganerated by an arbitraly event generator
+// refer to AliGenAfterBurnerFlow class.
+// For examples, parameters and testing macros refer to:
+// http:/home.cern.ch/radomski
+//
+// Author:
+// Sylwester Radomski,
+// GSI, March 2002
+//
+// S.Radomski@gsi.de
+//
+////////////////////////////////////////////////////////////////////////////////
+
+class TFormula;
+class TF1;
+class TF2;
+class TObjArray;
+class AliGeVSimParticle;
class AliGenGeVSim : public AliGenerator {
+ public:
+
+ AliGenGeVSim();
+ AliGenGeVSim(Int_t model, Float_t psi);
+
+ virtual ~AliGenGeVSim();
+
+ /////////////////////////////////////////////////////////////////
+
+ void AddParticleType(AliGeVSimParticle *part);
+
+ void Init();
+ void Generate();
+
+ /////////////////////////////////////////////////////////////////
+
+ private:
+
Int_t fModel; // Selected model (1-5)
Float_t fPsi; // Reaction Plane angle (0-2pi)
-
+
TF1 *fPtFormula; // Pt formula for model (1)
TF1 *fYFormula; // Y formula for model (1)
TF2 *fPtYFormula[4]; // Pt,Y formulae for model (2)-(4) and custom
TF1 *fPhiFormula; // phi formula
-
+
TObjArray *fPartTypes; // Registered particles
-
+
void InitFormula();
+ void DetermineReactionPlane();
+
+ TFormula* DetermineModel();
+
//void PlotDistributions();
Bool_t CheckPtYPhi(Float_t pt, Float_t y, Float_t phi);
Bool_t CheckP(Float_t p[3]);
-
+
Float_t FindScaler(Int_t paramId, Int_t pdg);
-
- public:
-
- AliGenGeVSim();
- AliGenGeVSim(Int_t model, Float_t psi);
-
- virtual ~AliGenGeVSim();
-
- /////////////////////////////////////////////////////////////////
-
- void AddParticleType(AliGeVSimParticle *part);
- void Init();
- void Generate();
-
/////////////////////////////////////////////////////////////////
+ public:
+
ClassDef(AliGenGeVSim, 1)
};