#ifndef __PHUrAddon_h__
#define __PHUrAddon_h__


#include "TObject.h"
#include "TVector3.h"
#include "TLorentzVector.h"


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

using namespace std;


class PHUrAddon : public TObject {

public:
    Int_t    n_in;       //  n ingoing particles
    Int_t    n_out;      //  n outgoing particles
    Int_t    process_id; //  process id
    Int_t    n_collision;//  n collision
    Double_t t_cre;     //   t   : computational frame time of particle in fm/c
    Double_t t_abs;     //   t   : computational frame time of particle in fm/c
    Double_t dens_cre;  //   baryon density at collision point
    Double_t dens_abs;  //   baryon density at collision point
    TVector3 fr_cre;    //   x,y,z coordinate in fm
    TVector3 fr_abs;    //   x,y,z coordinate in fm
    Int_t    stable;    // flag for stable particles
    Int_t    instance;  // default -1 , 0 first n last appearance of the particle
    Int_t    first;     // default -1 , 0 first n last appearance of the particle
    Int_t    last;      // default -1 , 0 first n last appearance of the particle

    using TObject::Clear;
    void  Clear(Option_t *) {
	n_in           = -2;
	n_out          = -1;
	process_id     = -1;
	n_collision    = -1;
	t_cre          = -1;
	t_abs          = -1;
	dens_cre       = -1;
        dens_abs       = -1;
	first          = -1;
        last           = -1;

        fr_cre.SetXYZ(-1.,-1.,-1.);
	fr_abs.SetXYZ(-1.,-1.,-1.);
	stable = -1;
        instance=-1;
    }

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

    Bool_t IsScattering()            { return (n_in==2 && n_out==2 ) ; }
    Bool_t IsDecay()                 { return (n_in==1 && n_out==2 ) ; }
    Bool_t IsAnnihilation()          { return (n_in==2 && n_out==1 ) ; }
    Bool_t IsPauliBlockedCollision() { return (n_in==2 && n_out==0 ) ; }
    Bool_t IsPauliBlockedDecay()     { return (n_in==1 && n_out==0 ) ; }
    Bool_t IsStringDecay5()          { return (n_in==2 && n_out==5 ) ; }

    ClassDef(PHUrAddon, 1)
};


#endif
 PHUrAddon.h:1
 PHUrAddon.h:2
 PHUrAddon.h:3
 PHUrAddon.h:4
 PHUrAddon.h:5
 PHUrAddon.h:6
 PHUrAddon.h:7
 PHUrAddon.h:8
 PHUrAddon.h:9
 PHUrAddon.h:10
 PHUrAddon.h:11
 PHUrAddon.h:12
 PHUrAddon.h:13
 PHUrAddon.h:14
 PHUrAddon.h:15
 PHUrAddon.h:16
 PHUrAddon.h:17
 PHUrAddon.h:18
 PHUrAddon.h:19
 PHUrAddon.h:20
 PHUrAddon.h:21
 PHUrAddon.h:22
 PHUrAddon.h:23
 PHUrAddon.h:24
 PHUrAddon.h:25
 PHUrAddon.h:26
 PHUrAddon.h:27
 PHUrAddon.h:28
 PHUrAddon.h:29
 PHUrAddon.h:30
 PHUrAddon.h:31
 PHUrAddon.h:32
 PHUrAddon.h:33
 PHUrAddon.h:34
 PHUrAddon.h:35
 PHUrAddon.h:36
 PHUrAddon.h:37
 PHUrAddon.h:38
 PHUrAddon.h:39
 PHUrAddon.h:40
 PHUrAddon.h:41
 PHUrAddon.h:42
 PHUrAddon.h:43
 PHUrAddon.h:44
 PHUrAddon.h:45
 PHUrAddon.h:46
 PHUrAddon.h:47
 PHUrAddon.h:48
 PHUrAddon.h:49
 PHUrAddon.h:50
 PHUrAddon.h:51
 PHUrAddon.h:52
 PHUrAddon.h:53
 PHUrAddon.h:54
 PHUrAddon.h:55
 PHUrAddon.h:56
 PHUrAddon.h:57
 PHUrAddon.h:58
 PHUrAddon.h:59
 PHUrAddon.h:60
 PHUrAddon.h:61
 PHUrAddon.h:62
 PHUrAddon.h:63
 PHUrAddon.h:64
 PHUrAddon.h:65
 PHUrAddon.h:66
 PHUrAddon.h:67
 PHUrAddon.h:68