00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012 #ifndef ROOT_GParticle
00013 #define ROOT_GParticle
00014
00015 #include <string.h>
00016
00017 #include "TMath.h"
00018 #include "TObject.h"
00019
00020 const Int_t Keep_Bit = 1;
00021 const Int_t Children_Bit = 2;
00022 const Int_t Done_Bit = 4;
00023
00024 class GParticle : public TObject {
00025
00026 private:
00027
00028 Int_t fKS;
00029 Int_t fKF;
00030 Int_t fParent;
00031 Int_t fFirstChild;
00032 Int_t fLastChild;
00033
00034 Float_t fPx;
00035 Float_t fPy;
00036 Float_t fPz;
00037 Float_t fEnergy;
00038 Float_t fMass;
00039
00040 Float_t fVx;
00041 Float_t fVy;
00042 Float_t fVz;
00043
00044 Float_t fPolx;
00045 Float_t fPoly;
00046 Float_t fPolz;
00047
00048 Float_t fTime;
00049 Float_t fLifeTime;
00050 Float_t fProcessTime;
00051
00052 char fOrigin[11];
00053
00054 public:
00055 GParticle();
00056
00057 GParticle(const Int_t kS, const Int_t kF, const Int_t parent,
00058 const Int_t firstchild, const Int_t lastchild,
00059 const Float_t px, const Float_t py, const Float_t pz,
00060 const Float_t energy, const Float_t mass,
00061 const Float_t vx, const Float_t vy, const Float_t vz,
00062 const Float_t polx, const Float_t poly, const Float_t polz,
00063 const Float_t time, const Float_t lifetime,
00064 const char *Origin="Unknown");
00065
00066 virtual ~GParticle();
00067
00068 inline Int_t GetKS() const {return fKS;}
00069 inline Int_t GetKF() const {return fKF;}
00070 inline Int_t GetParent() const {return fParent;}
00071 inline Int_t GetFirstChild() const {return fFirstChild;}
00072 inline Int_t GetLastChild() const {return fLastChild;}
00073
00074 inline Float_t GetPx() const {return fPx;}
00075 inline Float_t GetPy() const {return fPy;}
00076 inline Float_t GetPz() const {return fPz;}
00077
00078 inline Float_t GetPolx() const {return fPolx;}
00079 inline Float_t GetPoly() const {return fPoly;}
00080 inline Float_t GetPolz() const {return fPolz;}
00081
00082 inline Float_t GetEnergy() const {return fEnergy;}
00083 inline Float_t GetMass() const {return fMass;}
00084 inline Float_t GetMomentum() const {return
00085 TMath::Sqrt(fPx*fPx+fPy*fPy+fPz*fPz);}
00086 inline void GetOrigin(char *Origin) {strcpy(Origin,fOrigin);}
00087 inline Float_t GetPT() const {return TMath::Sqrt(fPx*fPx+fPy*fPy);}
00088
00089 inline Float_t GetVx() const {return fVx;}
00090 inline Float_t GetVy() const {return fVy;}
00091 inline Float_t GetVz() const {return fVz;}
00092 inline Float_t GetTime() const {return fTime;}
00093 inline Float_t GetLifeTime() const {return fLifeTime;}
00094 inline Float_t GetProcessTime() const {return fProcessTime;}
00095 virtual const Text_t *GetName() const;
00096 virtual const Text_t *GetTitle() const;
00097
00098 inline void SetKS(Int_t KS) {fKS=KS;}
00099 inline void SetFirstChild(const Int_t firstchild)
00100 {fFirstChild=firstchild;}
00101 inline void SetLastChild(const Int_t lastchild)
00102 {fLastChild=lastchild;}
00103 inline void SetParent(const Int_t parent) {fParent=parent;}
00104 inline void SetProcessTime(Float_t cputime)
00105 {fProcessTime=cputime;}
00106
00107 ClassDef(GParticle,1)
00108 };
00109
00110 #endif // ROOT_GParticle