]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TTherminator/Therminator/Parser.h
Added possibility to run only with ZEM (no hadronic calorimeters built).
[u/mrichter/AliRoot.git] / TTherminator / Therminator / Parser.h
1 /******************************************************************************
2  *                      T H E R M I N A T O R                                 *
3  *                   THERMal heavy-IoN generATOR                              *
4  *                           version 1.0                                      *
5  *                                                                            *
6  * Authors of the model: Wojciech Broniowski, Wojciech.Broniowski@ifj.edu.pl, *
7  *                       Wojciech Florkowski, Wojciech.Florkowski@ifj.edu.pl  *
8  * Authors of the code:  Adam Kisiel, kisiel@if.pw.edu.pl                     *
9  *                       Tomasz Taluc, ttaluc@if.pw.edu.pl                    *
10  * Code designers: Adam Kisiel, Tomasz Taluc, Wojciech Broniowski,            *
11  *                 Wojciech Florkowski                                        *
12  *                                                                            *
13  * For the detailed description of the program and furhter references         * 
14  * to the description of the model plesase refer to: nucl-th/0504047,         *
15  * accessibile at: http://www.arxiv.org/nucl-th/0504047                       *
16  *                                                                            *
17  * Homepage: http://hirg.if.pw.edu.pl/en/therminator/                         *
18  *                                                                            *
19  * This code can be freely used and redistributed. However if you decide to   *
20  * make modifications to the code, please contact the authors, especially     *
21  * if you plan to publish the results obtained with such modified code.       *
22  * Any publication of results obtained using this code must include the       *
23  * reference to nucl-th/0504047 and the published version of it, when         *
24  * available.                                                                 *
25  *                                                                            *
26  *****************************************************************************/
27 #ifndef _BFPW_PARSER_
28 #define _BFPW_PARSER_
29
30 #include <stdio.h>
31 #include <stdlib.h>
32 #include <math.h>
33 //#include <curses.h>
34 #include <iostream>
35 #include <fstream>
36 #include <map>
37 #include <string>
38 #include "THGlobal.h"
39 #include "ReadPar.h"
40 #include "ParticleType.h"
41 #include "Integrator.h"
42 #include "ParticleDB.h"
43
44 class Parser
45 {
46  private:
47   char        mNameBuffer[369][20];             //local table with particle names
48   double      mMassBuffer[369];         //local table with particle masses
49   double      mGammaBuffer[369];                //local table with particle gammas      
50   double      mSpinBuffer[369];         //local table with particle spins
51
52   int         mBarionBuffer[369];               //local table with particle barion number
53   int         mStrangeBuffer[369];              //local table with partcle strangeless number
54   double      mI3Buffer[369];           //local table with particle izospin3
55   int         mDecayBuffer[369][2];
56
57   int         mParticleCount;           //number of particles
58   int         mTypeCountBuffer[369];    //number of each particle
59   
60   ParticleDB *mDB;
61
62   TString     mInputDir;
63   
64   double DeltaJ(double aJot1, double aJot2, double aJot);
65   double ClebschGordan(double aJot, double aEm, double aJot1, double aEm1, double aJot2, double aEm2);
66   void   ReadParameters();
67
68  public:
69   Parser(ParticleDB *aDB);
70   ~Parser();
71   void    ReadInput();  //read input1 "tables.m" and "i200STAR.m"
72   void    ReadShare();  //read input from SHaRe format: particles.data & decays.data
73
74   int     GetParticleCount(); 
75         
76   int     check(char *,char *); //check particules by name
77         
78   char   *GetParticleName(int); 
79   double  GetParticleMass(int);
80   double  GetParticleGamma(int);
81   double  GetParticleSpin(int); 
82   int     GetParticleBarionN(int);
83   int     GetParticleStrangeN(int);
84   double  GetParticleI3(int);
85   int     GetParticleDecayChannelCount(int,int);
86   int     GetParticleNumber(int);
87 };
88
89 #endif