Update master to aliroot
[u/mrichter/AliRoot.git] / TTherminator / Therminator / Hypersurface.h
1 /***************************************************************************
2  *                             L H Y Q U I D                               *
3  *              reLativistic HYdrodynamics of Quark glUon fluID            *
4  *                                                                         *
5  *                         T H E R M I N A T O R                           *
6  *                      THERMal heavy-IoN generATOR                        *
7  *                                                                         *
8  *                              INTERFACE                                  *
9  *                                                                         *
10  * Author of LHYQUID THERMINATOR INTERFACE code:                           *
11  *   Miko´┐Żaj Chojnacki, e-mail: Mikolaj.Chojnacki@ifj.edu.pl               *
12  *                                                                         *
13  * About the interface:                                                    *
14  *   Code in the files "Hypersurface.h" and "Hypersurface.cxx" enables the *
15  * usage of a paramatrized hypersurface from LHYQUID (written in           *
16  * Mathematica).                                                           *
17  * Set the option FreezeOutModel = Lhyquid in the file "therminator.in".   *
18  * Modifications in the original files (Integrator.cxx, Integrator.h,      *
19  * therm_events, Makefile, therminator.in are marked by "MCH" comment      *
20  *                                                                         *
21  ***************************************************************************/
22
23
24 #ifndef _MCH_HYPERSURFACE_
25 #define _MCH_HYPERSURFACE_
26
27 #include <stdio.h>
28 #include <iostream>
29 #include <fstream>
30
31 using namespace std;
32
33 class Hypersurface {
34   public:
35     // constructor
36     Hypersurface(const char *dirname);
37     Hypersurface(void);
38     Hypersurface(const Hypersurface &aSurf);
39     Hypersurface& operator=(const Hypersurface &aSurf);
40     // destructor
41     ~Hypersurface(void);
42     // variables
43     double TFO;
44     double tau0;
45     // functions
46     double fahs  (double p, double z);
47     double fvhs  (double p, double z);
48     double fdhs  (double p, double z);
49     double fDpdhs(double p, double z);
50     double fDzdhs(double p, double z);
51   private:
52     unsigned int i, j;
53     unsigned int Np, Nz;
54     double   ip, fp, dp, iz, fz, dz;
55     double   **aArr, **vArr, **dArr, **DpdArr, **DzdArr;
56     char     *FName;
57     char     buff[100];
58     ifstream *HSFile;
59 };
60
61
62 #endif /* _MCH_HYPERSURFACE_ */