#include "hparticle.h"
#include "hades.h"
#include "hcategory.h"
#include "kickdef.h"
#include "richdef.h"
#include "hevent.h"
ClassImp(HParticle)
HParticle::HParticle(Double_t px, Double_t py, Double_t pz, Double_t m):
TLorentzVector(px,py,pz, sqrt(px*px+py*py+pz*pz+ m*m ) ) {
pid = 0;
r = z = 0;
index = 0;
trackId = -1;
ringId = -1;
fKickTrackCat = 0;
fRichHitCat = 0;
}
HParticle::HParticle(Int_t Pid, Double_t px, Double_t py, Double_t pz):
TLorentzVector(px,py,pz,0.) {
r = z = 0;
index = 0;
trackId = -1;
ringId = -1;
fKickTrackCat = 0;
fRichHitCat = 0;
pid = Pid;
Float_t mass = HPhysicsConstants::mass(pid);
SetE( sqrt(px*px + py*py + pz*pz + mass*mass) );
}
HParticle::HParticle(const Char_t *Pid, Double_t px, Double_t py, Double_t pz):
TLorentzVector(px,py,pz,0.) {
index = 0;
pid = HPhysicsConstants::pid(Pid);
Float_t mass = HPhysicsConstants::mass(Pid);
SetE( sqrt(px*px + py*py + pz*pz + mass*mass) );
fKickTrackCat = 0;
fRichHitCat = 0;
trackId = -1;
ringId = -1;
}
HParticle::HParticle(const TVector3 &p, Double_t e):
TLorentzVector(p,e) {}
HParticle::HParticle(const HParticle & p):
TLorentzVector( p.Vect4() ) {
setIndex(p.index);
setPid(p.pid);
setR(p.r);
setZ(p.z);
setTrackId(p.trackId);
setRingId(p.ringId);
}
HParticle::HParticle(const HParticle * p):
TLorentzVector( p->Vect4() ) {
setIndex( p->getIndex() );
setPid( p->getPid() );
setR(p->getR() );
setZ(p->getZ() );
setTrackId(p->getTrackId() );
setRingId(p->getRingId() );
}
HParticle & HParticle::operator = ( const HParticle &p ) {
setVect4(p.Vect4());
setIndex(p.index);
setPid(p.pid);
setR(p.r);
setZ(p.z);
setTrackId(p.trackId);
setRingId(p.ringId);
return *this;
}
HKickTrack* HParticle::getKickTrack() {
HKickTrack *track = 0;
if(!fKickTrackCat) {
if(gHades) {
fKickTrackCat = gHades->getCurrentEvent()->getCategory(catKickTrack);
if(!fKickTrackCat) return track;
}
}
if(trackId < 0) return track;
track = (HKickTrack*) fKickTrackCat->getObject(trackId);
return track;
}
HRichHit* HParticle::getRichHit() {
HRichHit *ring = 0;
if(!fRichHitCat) {
fRichHitCat = gHades->getCurrentEvent()->getCategory(catRichHit);
if(!fRichHitCat) return ring;
}
if(ringId < 0) return ring;
ring = (HRichHit*) fRichHitCat->getObject(ringId);
return ring;
}
Last change: Sat May 22 13:06:34 2010
Last generated: 2010-05-22 13:06
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.