#ifndef __PHUrEventHeader_h__
#define __PHUrEventHeader_h__

#include "PHUrCollisionHeader.h"

#include "TObject.h"

#include <fstream>
#include <iostream>
#include <iomanip>

using namespace std;


class PHUrEventHeader : public TObject {  
public:

    Int_t    id;               // 1 : Int_t    The first integer in the event header is a -1.
    Int_t    evtnum;           // 2 : Int_t    event number,
    Int_t    mass_proj;        // 3 : Int_t    mass of projectile
    Int_t    mass_target;      // 4 : Int_t    mass of target,
    Double_t impact_par;       // 5 : Double_t impact parameter,
    Double_t E_reaction;       // 6 : Double_t two-particle c.m. energy of heavy-ion reaction,
    Double_t tot_sig;          // 7 : Double_t the total cross section of the heavy-ion reaction ,
    Double_t E_beam;           // 8 : Double_t the beam energy ,
    Double_t mom_per_particle; // 9 : Double_t momentum (per particle) in the laboratory frame

    using TObject::Read;
    Bool_t Read(ifstream& in){
	if(in.eof()) return kFALSE;
	if(!in.good()) return kFALSE;
	in >> id >> evtnum >> mass_proj >> mass_target >> impact_par >> 
	    E_reaction >> tot_sig >> E_beam >> mom_per_particle;
	if(evtnum!=-2 && !in.eof() && !in.good()) 
	    return kFALSE;
        return kTRUE;
    }

    using TObject::Print;
    void Print(Option_t *) {
	cout << setw(5)  << dec << id  << " "
	     << setw(6)  << evtnum     << " "
	     << setw(4)  << mass_proj  << " "
	     << setw(4)  << mass_target << " "
	     << setw(15) << scientific << impact_par << " "
	     << setw(15) << E_reaction << " "
	     << setw(15) << tot_sig    << " "
	     << setw(15) << E_beam     << " "
	     << setw(15) << mom_per_particle
	     << dec << endl;
    }

    using TObject::Copy;
    void Copy(PHUrCollisionHeader& colheader){
	id               = colheader.n_in;
	evtnum           = colheader.n_out;
	mass_proj        = colheader.process_id;
	mass_target      = colheader.n_collision;
	impact_par       = colheader.t_collision;
	E_reaction       = colheader.E_total_CM;
	tot_sig          = colheader.sig_total;
	E_beam           = colheader.sig_partial;
	mom_per_particle = colheader.baryon_density;
    }

    using TObject::Clear;
    void Clear(Option_t *) {
	id               = -2;
	evtnum           = -1;
	mass_proj        = -99;
	mass_target      = -99;
	impact_par       = -1.;
	E_reaction       = -1.;
	tot_sig          = -1.;
	E_beam           = -1.;
	mom_per_particle = -1.;
    }

    PHUrEventHeader(){ Clear(NULL); };
    ~PHUrEventHeader(){};

    ClassDef(PHUrEventHeader, 0)
};


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