#include "hparticle.h"

HParticle


class description - source file - inheritance tree (.pdf)

class HParticle : public TLorentzVector

Inheritance Chart:
TObject
<-
TLorentzVector
<-
HParticle
<-
HParticleSim
HParticleSrc

    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

Data Members

    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

Class Description


  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.