ROOT logo
#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, 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() {}
  
  ////////////////////////////////////////////////////////////////////////////
  
  Int_t GetPdgCode() const {return fPDG;}
  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 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;}
  

  // 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;}
  
  // 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);
  
  ////////////////////////////////////////////////////////////////////////////
  
 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];        // Directed Flow coefficient parameters
  Float_t fV2[3];        // Elliptic Flow coefficient parameters
  
  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)
    
};

////////////////////////////////////////////////////////////////////////////////

#endif
 AliGeVSimParticle.h:1
 AliGeVSimParticle.h:2
 AliGeVSimParticle.h:3
 AliGeVSimParticle.h:4
 AliGeVSimParticle.h:5
 AliGeVSimParticle.h:6
 AliGeVSimParticle.h:7
 AliGeVSimParticle.h:8
 AliGeVSimParticle.h:9
 AliGeVSimParticle.h:10
 AliGeVSimParticle.h:11
 AliGeVSimParticle.h:12
 AliGeVSimParticle.h:13
 AliGeVSimParticle.h:14
 AliGeVSimParticle.h:15
 AliGeVSimParticle.h:16
 AliGeVSimParticle.h:17
 AliGeVSimParticle.h:18
 AliGeVSimParticle.h:19
 AliGeVSimParticle.h:20
 AliGeVSimParticle.h:21
 AliGeVSimParticle.h:22
 AliGeVSimParticle.h:23
 AliGeVSimParticle.h:24
 AliGeVSimParticle.h:25
 AliGeVSimParticle.h:26
 AliGeVSimParticle.h:27
 AliGeVSimParticle.h:28
 AliGeVSimParticle.h:29
 AliGeVSimParticle.h:30
 AliGeVSimParticle.h:31
 AliGeVSimParticle.h:32
 AliGeVSimParticle.h:33
 AliGeVSimParticle.h:34
 AliGeVSimParticle.h:35
 AliGeVSimParticle.h:36
 AliGeVSimParticle.h:37
 AliGeVSimParticle.h:38
 AliGeVSimParticle.h:39
 AliGeVSimParticle.h:40
 AliGeVSimParticle.h:41
 AliGeVSimParticle.h:42
 AliGeVSimParticle.h:43
 AliGeVSimParticle.h:44
 AliGeVSimParticle.h:45
 AliGeVSimParticle.h:46
 AliGeVSimParticle.h:47
 AliGeVSimParticle.h:48
 AliGeVSimParticle.h:49
 AliGeVSimParticle.h:50
 AliGeVSimParticle.h:51
 AliGeVSimParticle.h:52
 AliGeVSimParticle.h:53
 AliGeVSimParticle.h:54
 AliGeVSimParticle.h:55
 AliGeVSimParticle.h:56
 AliGeVSimParticle.h:57
 AliGeVSimParticle.h:58
 AliGeVSimParticle.h:59
 AliGeVSimParticle.h:60
 AliGeVSimParticle.h:61
 AliGeVSimParticle.h:62
 AliGeVSimParticle.h:63
 AliGeVSimParticle.h:64
 AliGeVSimParticle.h:65
 AliGeVSimParticle.h:66
 AliGeVSimParticle.h:67
 AliGeVSimParticle.h:68
 AliGeVSimParticle.h:69
 AliGeVSimParticle.h:70
 AliGeVSimParticle.h:71
 AliGeVSimParticle.h:72
 AliGeVSimParticle.h:73
 AliGeVSimParticle.h:74
 AliGeVSimParticle.h:75
 AliGeVSimParticle.h:76
 AliGeVSimParticle.h:77
 AliGeVSimParticle.h:78
 AliGeVSimParticle.h:79
 AliGeVSimParticle.h:80
 AliGeVSimParticle.h:81
 AliGeVSimParticle.h:82
 AliGeVSimParticle.h:83
 AliGeVSimParticle.h:84
 AliGeVSimParticle.h:85
 AliGeVSimParticle.h:86
 AliGeVSimParticle.h:87
 AliGeVSimParticle.h:88
 AliGeVSimParticle.h:89
 AliGeVSimParticle.h:90
 AliGeVSimParticle.h:91
 AliGeVSimParticle.h:92
 AliGeVSimParticle.h:93
 AliGeVSimParticle.h:94
 AliGeVSimParticle.h:95
 AliGeVSimParticle.h:96
 AliGeVSimParticle.h:97
 AliGeVSimParticle.h:98
 AliGeVSimParticle.h:99
 AliGeVSimParticle.h:100
 AliGeVSimParticle.h:101
 AliGeVSimParticle.h:102
 AliGeVSimParticle.h:103
 AliGeVSimParticle.h:104
 AliGeVSimParticle.h:105
 AliGeVSimParticle.h:106
 AliGeVSimParticle.h:107
 AliGeVSimParticle.h:108
 AliGeVSimParticle.h:109
 AliGeVSimParticle.h:110
 AliGeVSimParticle.h:111
 AliGeVSimParticle.h:112
 AliGeVSimParticle.h:113
 AliGeVSimParticle.h:114
 AliGeVSimParticle.h:115
 AliGeVSimParticle.h:116
 AliGeVSimParticle.h:117
 AliGeVSimParticle.h:118
 AliGeVSimParticle.h:119