// Author: M.A. Kagarlis
// Written: 31.01.99
// Revised: 17/10/2006   R.H.
// PData Class Header
// (copied in part to PStdData) IF

#ifndef _PSTDDATA_H_
#define _PSTDDATA_H_

#include "TROOT.h"
#include "TArrayI.h"
#include "TArrayD.h"
#include <iostream>

#include "PStaticData.h"

class PStdData;
PStdData *makeStdData();
PStdData &fStdData();

class PStdData : public TObject {
      
 public:

    //constructor
    PStdData();
    //destructor
    ~PStdData();
    
    Bool_t fillDataBase(void); //Copies the static entries into the PDataBase
    
    
 private:
    
    int disable;
    
    void resetPosition() {
	// Resets the array PPosition
	
	int i, nm, position=0;
	for (i=0; i<maxnumpar; ++i) {
	    nm = PNModes[i];              // number of decay modes of particle pid=i
	    if (!nm) PPosition[i] = -1;   // signifies stable particle
	    else {
		PPosition[i] = position;    // index of 1st decay mode for current particle
		position += nm;             // reposition for the next particle
	    }
	}
    }

    int *PPosition;

    static int maxnumpar, maxnummodes, *Pkf, *PMeson, *PBaryon, *PLepton,
	*PCharge, *PJ, *PParity, *PI, *PNModes, *intcache,
	cachesize, save, nfiles;
    static double *PMass, *PWidth, *PBR, *dblcache, scale;
    static char **PName, **PMDescription, **PMode;
    
    
    // local storage area
    static int *pmes_tmp, *pbar_tmp, *plep_tmp, *pchar_tmp, *pspin_tmp,
	*pparity_tmp, *pispin_tmp, *pnmod_tmp, *id_tmp, *pkf_tmp;
    static double *pmass_tmp, *pwidth_tmp, *pbr_tmp;
    static char **pnam_tmp, **pmdescr_tmp, **pmod_tmp;
    
    static const char *MESSAGE[];
    static const char *NAME[];
    static double MASS[];
    static double WIDTH[];
    static const int PYTHIAKF[];
    static const int MESON[];
    static const int BARYON[];
    static const int LEPTON[];
    static const int CHARGE[];
    static const int SPIN[];
    static const int PARITY[];
    static const int ISPIN[];
    static const int NMODES[];
    static double BRR[];
    static const char *MODE[];
    static const char *DESCRIPTION[];
    
    static const long double hbar;
    
    ClassDef(PStdData, 0) //Pluto Particle Std Data Class
};

#endif // _PSTDDATA_H_







 PStdData.h:1
 PStdData.h:2
 PStdData.h:3
 PStdData.h:4
 PStdData.h:5
 PStdData.h:6
 PStdData.h:7
 PStdData.h:8
 PStdData.h:9
 PStdData.h:10
 PStdData.h:11
 PStdData.h:12
 PStdData.h:13
 PStdData.h:14
 PStdData.h:15
 PStdData.h:16
 PStdData.h:17
 PStdData.h:18
 PStdData.h:19
 PStdData.h:20
 PStdData.h:21
 PStdData.h:22
 PStdData.h:23
 PStdData.h:24
 PStdData.h:25
 PStdData.h:26
 PStdData.h:27
 PStdData.h:28
 PStdData.h:29
 PStdData.h:30
 PStdData.h:31
 PStdData.h:32
 PStdData.h:33
 PStdData.h:34
 PStdData.h:35
 PStdData.h:36
 PStdData.h:37
 PStdData.h:38
 PStdData.h:39
 PStdData.h:40
 PStdData.h:41
 PStdData.h:42
 PStdData.h:43
 PStdData.h:44
 PStdData.h:45
 PStdData.h:46
 PStdData.h:47
 PStdData.h:48
 PStdData.h:49
 PStdData.h:50
 PStdData.h:51
 PStdData.h:52
 PStdData.h:53
 PStdData.h:54
 PStdData.h:55
 PStdData.h:56
 PStdData.h:57
 PStdData.h:58
 PStdData.h:59
 PStdData.h:60
 PStdData.h:61
 PStdData.h:62
 PStdData.h:63
 PStdData.h:64
 PStdData.h:65
 PStdData.h:66
 PStdData.h:67
 PStdData.h:68
 PStdData.h:69
 PStdData.h:70
 PStdData.h:71
 PStdData.h:72
 PStdData.h:73
 PStdData.h:74
 PStdData.h:75
 PStdData.h:76
 PStdData.h:77
 PStdData.h:78
 PStdData.h:79
 PStdData.h:80
 PStdData.h:81
 PStdData.h:82
 PStdData.h:83
 PStdData.h:84
 PStdData.h:85
 PStdData.h:86
 PStdData.h:87
 PStdData.h:88
 PStdData.h:89
 PStdData.h:90
 PStdData.h:91
 PStdData.h:92
 PStdData.h:93
 PStdData.h:94
 PStdData.h:95