//
//  The version of the class should be changed every time
//  when any changes in the codes are done
//  Grigory Nigmatkulov: 2016/12/15
//
#ifndef StOscar97Event_h
#define StOscar97Event_h

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


//_________________
class StO97Event : public TObject {
  
 private:

  Int_t mEventNumber;     // number of event
  Int_t mNTracks;         // number of tracks
  Float_t mImpactPar;     // Impact parameter (fm/c)
  Float_t mEventPlaneRot; // Rotation of the event plane 
                          // (fixed to 0. in UrQMD)
  TClonesArray *mTrack;

 public:
  
  StO97Event();
  StO97Event &operator=(const StO97Event &event);
  ~StO97Event();
  void Clear(Option_t* option= "");
  StO97Track *AddTrack(Int_t trackNUm);
  //
  // Get methods
  // 
  Int_t         GetEventNumber()   { return mEventNumber; }
  Int_t         GetNTracks()       { return mNTracks; }
  Float_t       GetImpactPar()     { return mImpactPar; }
  Float_t       GetEventPlaneRot() { return mEventPlaneRot; }
  TClonesArray *GetTracks()        { return mTrack; }
  //
  // Set methods
  //
  void SetEventNumber(Int_t eventNumber) { mEventNumber = eventNumber; }
  void SetNTracks(Int_t nTracks)         { mNTracks = nTracks; }
  void SetImpactPar(Float_t impPar)      { mImpactPar = impPar; }
  void SetEventPlaneRot(Float_t epr)     { mEventPlaneRot = epr; }
  void SetTracks(TClonesArray *tracks)   { mTrack = tracks; }

  ClassDef(StO97Event, 1)
};

#endif 
