TParticlePDG.h

Go to the documentation of this file.
00001 // @(#)root/eg:$Id: TParticlePDG.h 31956 2010-01-04 10:13:13Z brun $
00002 // Author: Pasha Murat   12/02/99
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 #ifndef TParticlePDG_hh
00012 #define TParticlePDG_hh
00013 
00014 #ifndef ROOT_TNamed
00015 #include "TNamed.h"
00016 #endif
00017 #ifndef ROOT_TObjArray
00018 #include "TObjArray.h"
00019 #endif
00020 
00021 class TDecayChannel;
00022 
00023 class TParticlePDG : public TNamed {
00024 public:
00025 //------------------------------------------------------------------------------
00026 //     data members
00027 //------------------------------------------------------------------------------
00028 protected:
00029   Int_t            fPdgCode;                    // PDG code of the particle
00030   Double_t         fMass;                       // particle mass in GeV
00031   Double_t         fCharge;                     // charge in units of |e|/3
00032   Double_t         fLifetime;                   // proper lifetime in seconds
00033   Double_t         fWidth;                      // total width in GeV
00034   Int_t            fParity;
00035   Double_t         fSpin;
00036   Double_t         fIsospin;                    // isospin
00037   Double_t         fI3;                         // i3
00038   Int_t            fStrangeness;                // flavours are defined if i3 != -1
00039   Int_t            fCharm;                      // 1 or -1 for C-particles,
00040                                                 // 0 for others
00041   Int_t            fBeauty;                     //
00042   Int_t            fTop;                        //
00043   Int_t            fY;                          // X,Y: quantum numbers for the 4-th generation
00044   Int_t            fX;                          //
00045   Int_t            fStable;                     // 1 if stable, 0 otherwise
00046                                         
00047   TObjArray*       fDecayList;                  // array of decay channels
00048                                 
00049   TString          fParticleClass;              // lepton, meson etc
00050 
00051   Int_t            fTrackingCode;               // G3 tracking code of the particle
00052   TParticlePDG*    fAntiParticle;               // pointer to antiparticle
00053 //------------------------------------------------------------------------------
00054 // functions
00055 //------------------------------------------------------------------------------
00056    TParticlePDG(const TParticlePDG&); 
00057    TParticlePDG& operator=(const TParticlePDG&);
00058 
00059 public:
00060    // ****** constructors  and destructor
00061    TParticlePDG();
00062    TParticlePDG(int pdg_code);
00063    TParticlePDG(const char* Name, const char* Title, Double_t Mass,
00064                 Bool_t Stable, Double_t Width, Double_t Charge,
00065                 const char* ParticleClass, Int_t PdgCode, Int_t Anti, 
00066                 Int_t TrackingCode);
00067 
00068    virtual ~TParticlePDG();
00069    // ****** access methods
00070   
00071    Int_t           PdgCode      () const { return fPdgCode; }
00072    Double_t        Mass         () const { return fMass; }
00073    Double_t        Charge       () const { return fCharge; } //charge in units of |e|/3
00074    Double_t        Lifetime     () const { return fLifetime; }
00075    Double_t        Width        () const { return fWidth; }
00076    Int_t           Parity       () const { return fParity; }
00077    Double_t        Spin         () const { return fSpin; }
00078    Double_t        Isospin      () const { return fIsospin; }
00079    Double_t        I3           () const { return fI3; }
00080    Int_t           Strangeness  () const { return fStrangeness; }
00081    Int_t           Charm        () const { return fCharm; }
00082    Int_t           Beauty       () const { return fBeauty; }
00083    Int_t           Top          () const { return fTop; }
00084    Int_t           X            () const { return fX; }
00085    Int_t           Y            () const { return fY; }
00086    Int_t           Stable       () const { return fStable; }
00087    const char*     ParticleClass() const { return fParticleClass.Data(); }
00088 
00089    TObjArray*      DecayList    () { return fDecayList; }
00090 
00091    Int_t   NDecayChannels () const { 
00092      return (fDecayList) ? fDecayList->GetEntriesFast() : 0;
00093    }
00094 
00095    Int_t   TrackingCode() const { return fTrackingCode; }
00096 
00097    TDecayChannel* DecayChannel(Int_t i);
00098 
00099    TParticlePDG* AntiParticle() { return fAntiParticle; }
00100 
00101    // ****** modifiers
00102 
00103    void   SetAntiParticle(TParticlePDG* ap) { fAntiParticle = ap; }
00104 
00105    Int_t  AddDecayChannel(Int_t        Type, 
00106                           Double_t     BranchingRatio, 
00107                           Int_t        NDaughters, 
00108                           Int_t*       DaughterPdgCode);
00109 
00110    virtual void  PrintDecayChannel(TDecayChannel* dc, Option_t* opt = "") const; 
00111 
00112    virtual void  Print(Option_t* opt = "") const; // *MENU*
00113 
00114    ClassDef(TParticlePDG,2)  // PDG static particle definition
00115 };
00116 
00117 #endif

Generated on Tue Jul 5 14:27:55 2011 for ROOT_528-00b_version by  doxygen 1.5.1