LCOV - code coverage report
Current view: top level - EVGEN - AliGenGeVSim.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 1 100.0 %
Date: 2016-06-14 17:26:59 Functions: 1 8 12.5 %

          Line data    Source code
       1             : #ifndef ALIGENGEVSIM_H
       2             : #define ALIGENGEVSIM_H
       3             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */
       5             : 
       6             : /* $Id$ */
       7             : 
       8             : ////////////////////////////////////////////////////////////////////////////////
       9             : //
      10             : // AliGenGeVSim is a class implementing GeVSim event generator.
      11             : // 
      12             : // GeVSim is a simple Monte-Carlo event generator for testing detector and 
      13             : // algorythm performance especialy concerning flow and event-by-event studies
      14             : //
      15             : // In this event generator particles are generated from thermal distributions 
      16             : // without any dynamics and addicional constrains. Distribution parameters like
      17             : // multiplicity, particle type yields, inverse slope parameters, flow coeficients 
      18             : // and expansion velocities are expleicite defined by the user.
      19             : //
      20             : // GeVSim contains four thermal distributions the same as
      21             : // MevSim event generator developed for STAR experiment.
      22             : //
      23             : // In addition custom distributions can be used be the mean 
      24             : // either two dimensional formula (TF2), a two dimensional histogram or
      25             : // two one dimensional histograms.
      26             : //  
      27             : // Azimuthal distribution is deconvoluted from (Pt,Y) distribution
      28             : // and is described by two Fourier coefficients representing 
      29             : // Directed and Elliptic flow. 
      30             : // 
      31             : ////////////////////////////////////////////////////////////////////////////////
      32             : //
      33             : // To apply flow to event ganerated by an arbitraly event generator
      34             : // refer to AliGenAfterBurnerFlow class.
      35             : //
      36             : ////////////////////////////////////////////////////////////////////////////////
      37             : //
      38             : // For examples, parameters and testing macros refer to:
      39             : // http:/home.cern.ch/radomski
      40             : // 
      41             : // for more detailed description refer to ALICE NOTE
      42             : // "GeVSim Monte-Carlo Event Generator"
      43             : // S.Radosmki, P. Foka.
      44             : //  
      45             : // Author:
      46             : // Sylwester Radomski,
      47             : // GSI, March 2002
      48             : //  
      49             : // S.Radomski@gsi.de
      50             : //
      51             : ////////////////////////////////////////////////////////////////////////////////
      52             : //
      53             : // Updated and revised: September 2002, S. Radomski, GSI
      54             : //
      55             : ////////////////////////////////////////////////////////////////////////////////
      56             : 
      57             : 
      58             : class TFormula;
      59             : class TF1;
      60             : class TF2;
      61             : class TH1D;
      62             : class TH2D;
      63             : class TObjArray;
      64             : class AliGeVSimParticle;
      65             : 
      66             : #include "AliGenerator.h"
      67             : 
      68             : 
      69             : class AliGenGeVSim : public AliGenerator {
      70             : 
      71             :  public:
      72             :   
      73             :   AliGenGeVSim();
      74             :   AliGenGeVSim(Float_t psi, Bool_t isMultTotal = kTRUE);
      75             :   
      76             :   virtual ~AliGenGeVSim();
      77             :   
      78             :   /////////////////////////////////////////////////////////////////
      79             :   
      80             :   void AddParticleType(AliGeVSimParticle *part);
      81             :   void SetMultTotal(Bool_t isTotal = kTRUE);
      82             :   
      83             :   void Init();
      84             :   void Generate();
      85             :   
      86             :   /////////////////////////////////////////////////////////////////
      87             :   
      88             :  private:
      89             : 
      90             :   AliGenGeVSim(const AliGenGeVSim & ggs);
      91             :   AliGenGeVSim & operator=(const AliGenGeVSim & /*ggs*/);
      92             : 
      93             : 
      94             :   Int_t   fModel;            // Selected model (1-7)
      95             :   Float_t fPsi;              // Reaction Plane angle (0-2pi)
      96             :   Bool_t  fIsMultTotal;      // Mode od multiplicity: total, dN/dY
      97             : 
      98             :   TF1 *fPtFormula;           //! Pt formula for model (1)
      99             :   TF1 *fYFormula;            //! Y formula for model (1)
     100             :   TF2 *fPtYFormula[4];       //! Pt,Y formulae for model (2)-(4)
     101             :   TF1 *fPhiFormula;          //! phi formula 
     102             :   
     103             :   TFormula *fCurrentForm;    //! currently used formula
     104             :   TH1D *fHist[2];            //! two 1D histograms (fModel == 6)
     105             :   TH2D *fPtYHist;            //! two-dimensional histogram (fModel == 7)
     106             : 
     107             :   TObjArray *fPartTypes;     // Registered particles
     108             :   
     109             :   void InitFormula();
     110             :   void SetFormula(Int_t pdg);
     111             :   void AdjustFormula();
     112             :   void DetermineReactionPlane();
     113             :   void GetRandomPtY(Double_t &pt, Double_t &y);
     114             : 
     115             :   Float_t GetdNdYToTotal();
     116             :   
     117             :   Bool_t CheckPtYPhi(Float_t pt, Float_t y, Float_t phi) const;  // for histograms only
     118             :   Bool_t CheckAcceptance(Float_t p[3]);
     119             :   
     120             :   Float_t FindScaler(Int_t paramId, Int_t pdg);
     121             :   
     122             :   /////////////////////////////////////////////////////////////////
     123             : 
     124             : 
     125           6 :   ClassDef(AliGenGeVSim, 2)
     126             : 
     127             : };
     128             : 
     129             : #endif

Generated by: LCOV version 1.11