#ifndef UEVENT_H
#define UEVENT_H
#include "TObject.h"
#include "TLorentzVector.h"
class TString;
class TClonesArray;
class UParticle;
class UEvent : public TObject {
private:
Int_t fEventNr;
Double_t fB;
Double_t fPhi;
Int_t fNes;
Int_t fStepNr;
Double_t fStepT;
Int_t fNpa;
TClonesArray *fParticles;
public:
UEvent();
UEvent(const UEvent& right);
virtual ~UEvent();
using TObject::Print;
void Print(Option_t *option = "");
inline Int_t GetEventNr() const {return fEventNr;}
inline Double_t GetB() const {return fB;}
inline Double_t GetPhi() const {return fPhi;}
inline Int_t GetNes() const {return fNes;}
inline Int_t GetStepNr() const {return fStepNr;}
inline Double_t GetStepT() const {return fStepT;}
inline Int_t GetNpa() const {return fNpa;}
inline TClonesArray *GetParticleList() const {return fParticles;}
UParticle* GetParticle(Int_t index) const;
void SetParameters(Int_t eventNr, Double_t b, Double_t phi, Int_t nes,
Int_t stepNr, Double_t stepT);
inline void SetEventNr(Int_t eventNr) {fEventNr = eventNr;}
inline void SetB (Double_t b) {fB = b;}
inline void SetPhi (Double_t phi) {fPhi = phi;}
inline void SetNes (Int_t nes) {fNes = nes;}
inline void SetStepNr (Int_t stepNr) {fStepNr = stepNr;}
inline void SetStepT (Double_t stepT) {fStepT = stepT;}
void AddParticle(Int_t index, Int_t pdg, Int_t status,
Int_t parent, Int_t parentDecay,
Int_t mate, Int_t decay, Int_t child[2],
Double_t px, Double_t py, Double_t pz, Double_t e,
Double_t x, Double_t y, Double_t z, Double_t t,
Double_t weight);
void AddParticle(Int_t index, Int_t pdg, Int_t status,
Int_t parent, Int_t parentDecay,
Int_t mate, Int_t decay, Int_t child[2],
TLorentzVector mom, TLorentzVector pos,
Double_t weight);
void AddParticle(const UParticle &particle);
using TObject::Clear;
void Clear(const Option_t * = NULL);
void RemoveAt(Int_t i);
ClassDef(UEvent, 1);
};
#endif