#ifndef Oscar97Track_h
#define Oscar97Track_h

#include <TObject.h>
#include <TClonesArray.h>
#include <TRef.h>
#include <TH1.h>
#include <TBits.h>


//_________________
class Oscar97Track : public TObject {

 private:

  Int_t   mId;     // Number of the particle
  Int_t   mPdgId;  // PDG code
  Float_t mPx;     // Px (GeV/c)
  Float_t mPy;     // Py (GeV/c)
  Float_t mPz;     // Pz (GeV/c)
  Float_t mE;      // Energy (GeV/c)
  Float_t mMass;   // Particle mass (GeV/c)
  Float_t mXfr;    // x at freeze-out (fm)
  Float_t mYfr;    // y at freeze-out (fm)
  Float_t mZfr;    // z at freeze-out (fm)
  Float_t mTfr;    // Freeze-out time (fm/c)
  Bool_t  mIsSpec; // Is spectator if x,y,z and t < 0.0001

 public:

  Oscar97Track();
  Oscar97Track &operator=(const Oscar97Track &orig);
  ~Oscar97Track() { /* nothing */ }
  
  void    SetTrack(Int_t id, Int_t pdgId, 
		   Float_t px, Float_t py, Float_t pz, 
		   Float_t energy, Float_t mass,
		   Float_t xFr, Float_t yFr, Float_t zFr, 
		   Float_t tFr, Bool_t isSpec);
  Int_t   GetId() const { return mId; }
  Int_t   GetPdgId() const { return mPdgId; }
  Float_t GetPx() const { return mPx; }
  Float_t GetPy() const { return mPy; }
  Float_t GetPz() const { return mPz; }
  Float_t GetE() const { return mE; }
  Float_t GetEnergy() const { return mE; }
  Float_t GetMass() const { return mMass; }
  Float_t GetXfr() const { return mXfr; }
  Float_t GetYfr() const { return mYfr; }
  Float_t GetZfr() const { return mZfr; }
  Float_t GetTfr() const { return mTfr; }
  Bool_t  GetIsSpec() const { return mIsSpec; }

  void    SetId(Int_t id) { mId = id; }
  void    SetPdgId(Int_t pdgId) { mPdgId = pdgId; }
  void    SetPx(Float_t px) { mPx = px; }
  void    SetPy(Float_t py) { mPy = py; }
  void    SetPz(Float_t pz) { mPz = pz;}
  void    SetE(Float_t energy) { mE = energy; }
  void    SetMass(Float_t mass) { mMass = mass; }
  void    SetXfr(Float_t xFr) { mXfr = xFr; }
  void    SetYfr(Float_t yFr) { mYfr = yFr; }
  void    SetZfr(Float_t zFr) { mZfr = zFr; }
  void    SetTfr(Float_t tFr) { mTfr = tFr; }
  void    SetIsSpec(Bool_t isSpec) { mIsSpec = isSpec; }

  ClassDef(Oscar97Track, 1)
};


#endif
