HParticle
class description - source file - inheritance tree (.pdf)
public:
HParticle(Double_t px = 0., Double_t py = 0., Double_t pz = 0., Double_t m = 0.)
HParticle(Int_t, Double_t px = 0., Double_t py = 0., Double_t pz = 0.)
HParticle(Char_t* Pid, Double_t px = 0., Double_t py = 0., Double_t pz = 0.)
HParticle(const TVector3&, Double_t)
HParticle(const HParticle&)
HParticle(const HParticle*)
virtual ~HParticle()
Double_t Angle(const HParticle& p) const
Double_t AngleD(const HParticle& p) const
static TClass* Class()
Int_t getCharge() const
Int_t getIndex() const
HKickTrack* getKickTrack()
Int_t getPid() const
Double_t getR() const
HRichHit* getRichHit()
Int_t getRingId() const
Int_t getTrackId() const
Int_t getVertexId() const
Double_t getZ() const
virtual TClass* IsA() const
HParticle& operator=(const HParticle&)
Double_t P() const
void setIndex(Int_t sInd)
void setPid(Int_t sPid)
void setPid(Char_t* sPid)
void setR(Double_t sR)
void setRingId(Int_t sInd)
void setTrackId(Int_t sInd)
void setVect4(const TLorentzVector& v)
void setVertexId(Int_t sInd)
void setZ(Double_t sZ)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
TLorentzVector Vect4() const
private:
HCategory* fKickTrackCat ! Kick plane category, used for getKickTrack()
HCategory* fRichHitCat ! Rich hit category, used for getRichHit()
protected:
Double_t r polar coordinate of track's closest approach to beam axis
Double_t z z coordinate of track's closest approach to beam axis
Int_t pid Particle id
Int_t index Index of particle in event
Int_t trackId Index of track component in track container
Int_t ringId Index of ring component in HRichHit container (-1 = no ring used)
Int_t vertexId Index of vertex in HVertex (not used yet)
HSymMat6 cov Covariant matrix
HParticle - Data container for identified particles and their 4-momenta
This class derives from TLorentzVector, so that all of the functions
available to TLorentzVector can be performed on HParticle objects.
Some extra care needs to be taken regarding Hydra vs. Root coding
conventions ('set' vs. 'Set'), for example
HParticle *part1 = new HParticle();
part1->SetPxPyPzE(1.,1.,1.,10.); <-- uses TLorentzVector function
part1->setPid("e-"); <-- uses HParticle function
HParticle's can be initialized as follows:
part = new HParticle();
part = new HParticle(Double_t px, Double_t py, Double_t pz, Double_t m);
part = new HParticle(TVector3 p,Double_t E);
part = new HParticle(Int_t Pid, Double_t px, Double_t py, Double_t pz);
part = new HParticle(Char_t *Pid, Double_t px, Double_t py, Double_t pz);
For example:
HParticle part1("e+",30.,-50.,100.); <-- constructed with pid and momentum
HParticle part2("e-",30.,50.,100.); <-- constructed with pid and momentum
Float_t openAngle = part1.Angle(part2); <-- Opening angle between 2 HParticles
theta = part2->Theta();
Float_t pxSum = part1.Px() + part2.Px();
.....
For more information, see the PhyAna documentation.
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 ) )
Px, Py, Pz (MeV/c), mass (MeV/c**2)
HParticle(int Pid, Double_t px, Double_t py, Double_t pz):
TLorentzVector(px,py,pz,0.)
Particle id, Px, Py, Pz (MeV/c)
HParticle(Char_t *Pid, Double_t px, Double_t py, Double_t pz):
TLorentzVector(px,py,pz,0.)
Particle name, Px, Py, Pz (MeV/c)
HParticle(const TVector3 &p, Double_t e):
TLorentzVector(p,e)
HParticle(const HParticle & p):
TLorentzVector( p.Vect4() )
copy constructor
HParticle(const HParticle * p):
TLorentzVector( p->Vect4() )
copy constructor
HKickTrack* getKickTrack()
Returns the HKickTrack object corresponding to the particle. As of now,
this only works when using Hades object... it won't work in a macro
which reads a tree.
HRichHit* getRichHit()
Returns the HRichHit object corresponding to the particle. As of now,
this only works when using Hades object... it won't work in a macro
which reads a tree.
Inline Functions
void ~HParticle()
Double_t Angle(const HParticle& p) const
Double_t AngleD(const HParticle& p) const
Double_t P() const
Int_t getPid() const
void setPid(Int_t sPid)
void setPid(Char_t* sPid)
Int_t getCharge() const
Double_t getR() const
void setR(Double_t sR)
Double_t getZ() const
void setZ(Double_t sZ)
Int_t getIndex() const
void setIndex(Int_t sInd)
Int_t getTrackId() const
void setTrackId(Int_t sInd)
Int_t getRingId() const
void setRingId(Int_t sInd)
Int_t getVertexId() const
void setVertexId(Int_t sInd)
TLorentzVector Vect4() const
void setVect4(const TLorentzVector& v)
HParticle& operator=(const HParticle&)
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Author: Dan Magestro
Last update: Fri Jan 26 12:20:52 2007
ROOT page - Class index - Class Hierarchy - Top of the page
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.