#include <Riostream.h>
#include "AliEMCALHit.h"
using std::endl;
ClassImp(AliEMCALHit)
AliEMCALHit::AliEMCALHit()
: fId(0),
fELOS(0.),
fPrimary(0),
fPx(0.),
fPy(0.),
fPz(0.),
fPe(0.),
fIparent(0),
fIenergy(0.),
fTime(0.)
{
}
AliEMCALHit::AliEMCALHit(const AliEMCALHit & hit)
: AliHit(hit),
fId(hit.fId),
fELOS(hit.fELOS),
fPrimary(hit.fPrimary),
fPx(hit.fPx),
fPy(hit.fPy),
fPz(hit.fPz),
fPe(hit.fPe),
fIparent(hit.fIparent),
fIenergy(hit.fIenergy),
fTime(hit.fTime)
{
}
AliEMCALHit& AliEMCALHit::operator = (const AliEMCALHit &source)
{
if (&source == this) return *this;
new (this) AliEMCALHit(source);
return *this;
}
AliEMCALHit::AliEMCALHit(Int_t shunt, Int_t primary, Int_t track,Int_t iparent, Float_t ienergy, Int_t id,
Float_t *hits,Float_t *p)
: AliHit(shunt, track),
fId(id),
fELOS(0.),
fPrimary(primary),
fPx(0.),
fPy(0.),
fPz(0.),
fPe(0.),
fIparent(iparent),
fIenergy(ienergy),
fTime(0.)
{
fX = hits[0];
fY = hits[1];
fZ = hits[2];
fTime = hits[3] ;
fELOS = hits[4];
fPx = p[0];
fPy = p[1];
fPz = p[2];
fPe = p[3];
}
Bool_t AliEMCALHit::operator==(AliEMCALHit const &rValue) const{
Bool_t rv = kFALSE;
if ( (fId == rValue.GetId()) && ( fIparent == rValue.GetIparent()))
rv = kTRUE;
return rv;
}
AliEMCALHit AliEMCALHit::operator+(const AliEMCALHit &rValue){
fELOS += rValue.GetEnergy() ;
if(rValue.GetTime() < fTime)
fTime = rValue.GetTime() ;
return *this;
}
ostream& operator << (ostream& out,AliEMCALHit& hit){
out << "AliEMCALHit:";
out << "id=" << hit.GetId();
out << ", Eloss=" << hit.GetEnergy();
out << ", Time=" << hit.GetTime();
out << "GeV , Track no.=" << hit.GetPrimary();
out << ", (xyz)=(" << hit.X()<< ","<< hit.Y()<< ","<<hit.Z()<<") cm";
out << ", fTrack=" << hit.GetTrack();
out << ", P=(" << hit.GetPx() << "," << hit.GetPy() << "," << hit.GetPz()
<< "," <<hit.GetPe() << ") GeV" ;
out << ", Enterring particle ID" << hit.GetIparent();
out << ", Enterring particle initial energy = " << hit.GetIenergy() << " GeV" ;
out << endl;
return out;
}