#include "hpiontrackerraw.h"
ClassImp (HPionTrackerRaw)
HPionTrackerRaw::HPionTrackerRaw() : fMultiplicity (0), fModule (-1), fStrip(-1)
{
	for (Int_t h = 0; h < fMaxMultiplicity; ++h)
	{
		fTime[h] = -1000;
		fCharge[h] = -1000;
		fPileUp[h] = -10;
		fOverflow[h] = -10;
	}
}
HPionTrackerRaw::~HPionTrackerRaw() { }
Float_t HPionTrackerRaw::getTime (const Int_t n) const
{
	if (n > (fMultiplicity+1))
	{
		Error ("getTime()", "hit number: %i out of range [0,%d]", n, fMultiplicity-1);
		return -1.F;
	}
	else
		return fTime[n];
}
Float_t HPionTrackerRaw::getCharge (const Int_t n) const
{
	if (n > (fMultiplicity+1))
	{
		Error ("getCharge()", "hit number: %i out of range [0,%d]", n, fMultiplicity-1);
		return -1.F;
	}
	else
		return fCharge[n];
}
void HPionTrackerRaw::getTimeAndCharge (const Int_t n, Float_t & time, Float_t & charge)
{
	if (n > (fMultiplicity+1))
	{
		Error ("getTimeAndCharge()", "hit number: %i out of range [0,%d]", n, fMultiplicity-1);
		time = -1.F;
		charge = -1.F;
	}
	else
	{
		time = fTime[n];
		charge = fCharge[n];
	}
}
Char_t HPionTrackerRaw::getPileup(const Int_t n) const
{
	if (n > (fMultiplicity+1))
	{
		Error ("getPileup()", "hit number: %i out of range [0,%d]", n, fMultiplicity-1);
		return -1;
	}
	else
		return fPileUp[n];
}
Char_t HPionTrackerRaw::getOverflow(const Int_t n) const
{
	if (n > (fMultiplicity+1))
	{
		Error ("getOverflow()", "hit number: %i out of range [0,%d]", n, fMultiplicity-1);
		return -1;
	}
	else
		return fOverflow[n];
}
void HPionTrackerRaw::getErrors (const Int_t n, Char_t & pileup, Char_t & overflow)
{
	if (n > (fMultiplicity+1))
	{
		Error ("getErrors()", "hit number: %i out of range [0,%d]", n, fMultiplicity-1);
		pileup = -1;
		overflow = -1;
	}
	else
	{
		pileup = fPileUp[n];
		overflow = fOverflow[n];
	}
}
Bool_t HPionTrackerRaw::setData (const Float_t time, const Float_t charge, const Char_t pileup, const Char_t overflow)
{
	if (fMultiplicity == fMaxMultiplicity)
	{
		Error ("setData()", "hit number: %i out of range [0,%d] for m=%d, s=%d", fMultiplicity+1, fMaxMultiplicity-1, fModule, fStrip);
		return kFALSE;
	}
	fTime[fMultiplicity] = time;
	fCharge[fMultiplicity] = charge;
	fPileUp[fMultiplicity] = pileup;
	fOverflow[fMultiplicity] = overflow;
	++fMultiplicity;
	return kTRUE;
}