Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TAttParticle.h
Go to the documentation of this file.
1 // @(#)root/eg:$Id$
2 // Author: Ola Nordmann 29/09/95
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 
13 //////////////////////////////////////////////////////////////////////////
14 // //
15 // TAttParticle //
16 // //
17 // Particle definition, based on GEANT3 particle definition //
18 // //
19 // //
20 //////////////////////////////////////////////////////////////////////////
21 
22 #ifndef ROOT_TAttParticle
23 #define ROOT_TAttParticle
24 
25 #include "TNamed.h"
26 #include "TAttLine.h"
27 
28 class THashList;
29 
30 class TAttParticle : public TNamed {
31 private:
32  Double_t fPDGMass; //Mass of the particle in GeV/c2
33  Bool_t fPDGStable; //Logical indicator, if TRUE the particle can not decay
34  Double_t fPDGDecayWidth; //Life time of the particle in sec.
35  Double_t fPDGCharge; //Charge of the particle in units of e
36  TString fParticleType; //Text indicator for the particle family
37  Int_t fMCnumberOfPDG; //PDG MC number followed by
38  //http://pdg.lbl.gov/rpp/mcdata/all.mc
39  Double_t fEnergyCut; //Lower energy cut off, the default is 10 keV
40  Double_t fEnergyLimit; //High energy cut off, the default is 10 TeV
41  Double_t fGranularity; //Granularity of the fLogEScale
42 
43 public:
44  TAttParticle();
45  TAttParticle(const char *name, const char *title,
46  Double_t Mass, Bool_t Stable,
47  Double_t DecayWidth, Double_t Charge, const char *Type,
48  Int_t MCnumber, Int_t granularity=90,
49  Double_t LowerCutOff=1.e-5, Double_t HighCutOff=1.e4);
50  virtual ~TAttParticle();
51  static THashList *fgList;
52  static Int_t ConvertISAtoPDG(Int_t isaNumber);
53  static void DefinePDG();
54  virtual Double_t GetCharge() const { return fPDGCharge; }
55  virtual Double_t GetEnergyCut() const { return fEnergyCut; }
56  virtual Double_t GetEnergyLimit() const { return fEnergyLimit; }
57  virtual Double_t GetGranularity() const { return fGranularity; }
58  virtual Double_t GetDecayWidth() const { return fPDGDecayWidth; }
59  virtual Double_t GetMass() const { return fPDGMass; }
60  virtual Int_t GetMCNumber() const { return fMCnumberOfPDG; }
61  static TAttParticle *GetParticle(const char *name);
62  static TAttParticle *GetParticle(Int_t mcnumber);
63  virtual const char *GetParticleType() const { return fParticleType.Data(); }
64  virtual Bool_t GetStable() const { return fPDGStable; }
65  virtual void Print(Option_t *option="") const ;
66  virtual Double_t SampleMass() const ;
67  virtual Double_t SampleMass(Double_t widthcut) const ;
68 
69  ClassDef(TAttParticle,1) //Particle definition
70 };
71 
72 #endif