#ifndef ALIGEVSIMPARTICLE_H
#define ALIGEVSIMPARTICLE_H
-////////////////////////////////////////////////////////////////////////////////
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+/* $Id$ */
+
+//////////////////////////////////////////////////////////////////////////////
//
// AliGeVSimParticle is a helper class for GeVSim (AliGenGeVSim) event generator.
// An object of this class represents one particle type and contain
// information about particle type thermal parameters.
//
+//////////////////////////////////////////////////////////////////////////////
+//
// For examples, parameters and testing macros refer to:
// http:/home.cern.ch/radomski
-//
+//
+// for more detailed description refer to ALICE NOTE
+// "GeVSim Monte-Carlo Event Generator"
+// S.Radosmki, P. Foka.
+//
// Author:
// Sylwester Radomski,
// GSI, March 2002
-//
+//
// S.Radomski@gsi.de
//
+//////////////////////////////////////////////////////////////////////////////
+//
+// Updated and revised: September 2002, S. Radomski, GSI
+//
////////////////////////////////////////////////////////////////////////////////
+
#include "TObject.h"
class AliGeVSimParticle : public TObject {
public:
////////////////////////////////////////////////////////////////////////////
-
- AliGeVSimParticle() {}
- AliGeVSimParticle(Int_t pdg);
- AliGeVSimParticle(Int_t pdg, Int_t n,
+
+ AliGeVSimParticle();
+ AliGeVSimParticle(Int_t pdg, Int_t model, Float_t multiplicity);
+ AliGeVSimParticle(Int_t pdg, Int_t model, Float_t multiplicity,
Float_t T, Float_t dY = 1., Float_t exp=0.);
- ~AliGeVSimParticle() {}
+ ~AliGeVSimParticle() {}
////////////////////////////////////////////////////////////////////////////
Int_t GetPdgCode() const {return fPDG;}
-
- Float_t GetMultiplicity() const {return fN;}
+ Int_t GetModel() const {return fModel;}
+
Float_t GetTemperature() const {return fT;}
Float_t GetSigmaY() const {return fSigmaY;}
Float_t GetExpansionVelocity() const {return fExpansion;}
-
- void SetMultiplicity(Float_t n) {fN = n;}
+
+ void SetModel(Int_t model);
+ void SetTemperature(Float_t T) {fT = T;}
+ void SetSigmaY(Float_t sigma) {fSigmaY = sigma;}
void SetExpansionVelocity(Float_t vel) {fExpansion = vel;}
- // Flow
+
+ // Multiplicity
+
+ void SetMultiplicity(Float_t mult);
+ Float_t GetMultiplicity() const {return fN;}
+
+ void SetMultTotal(Bool_t isTotal = kTRUE);
+
+ Bool_t IsMultTotal() const {return fMultTotal;}
+ Bool_t IsMultForced() const {return fIsSetMult;}
- void SetDirectedFlow(Float_t v11, Float_t v12=0, Float_t v13=1, Float_t v14=0);
- void SetEllipticFlow(Float_t v21, Float_t v22=0, Float_t v23=0);
+ // Flow
+ void SetDirectedSimple(Float_t v1);
+ void SetEllipticSimple(Float_t v2);
+
+ void SetDirectedParam(Float_t v11, Float_t v12=0, Float_t v13=1, Float_t v14=0);
+ void SetEllipticParam(Float_t v21, Float_t pTmax, Float_t v22=0.);
+ void SetEllipticOld(Float_t v21, Float_t v22, Float_t v23);
+
+ Bool_t IsFlowSimple() const;
+
Float_t GetDirectedFlow(Float_t pt, Float_t y);
Float_t GetEllipticFlow(Float_t pt, Float_t y);
- Float_t GetDirectedFlow();
- Float_t GetEllipticFlow();
-
-
////////////////////////////////////////////////////////////////////////////
private:
Int_t fPDG; // Particle type code
-
+ Int_t fModel; // Transverse momentum model
+
Float_t fN; // Multiplicity (subject to scalling)
+ Bool_t fMultTotal; // multiplicity mode: Total or dN/dY
+ Bool_t fIsSetMult; // force multiplicity mode or use from AliGenGeVSim
+
Float_t fT; // Slope Parameter (subject to scalling)
Float_t fSigmaY; // Rapidity Width
Float_t fExpansion; // Expansion Velocity in c units (subject to scalling)
- Float_t fV1[4]; // Direct Flow coefficient parameters (subject to scalling)
- Float_t fV2[3]; // Elliptical flow coefficient parameters (subject to scalling)
-
- public:
+ Float_t fV1[4]; // Directed Flow coefficient parameters
+ Float_t fV2[3]; // Elliptic Flow coefficient parameters
- ClassDef(AliGeVSimParticle, 1)
+ Bool_t fIsDirectedSimple; // indicate use constant value for directed (v1)
+ Bool_t fIsEllipticSimple; // indicate use constant value for elliptic (v2)
+ Bool_t fIsEllipticOld; // linear / quadratical pT parametrisation
+
+ ClassDef(AliGeVSimParticle, 3)
};