ROOT  6.06/09
Reference Guide
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 #ifndef ROOT_TNamed
26 #include "TNamed.h"
27 #endif
28 #ifndef ROOT_TAttLine
29 #include "TAttLine.h"
30 #endif
31 
32 class THashList;
33 
34 class TAttParticle : public TNamed {
35 private:
36  Double_t fPDGMass; //Mass of the particle in GeV/c2
37  Bool_t fPDGStable; //Logical indicator, if TRUE the particle can not decay
38  Double_t fPDGDecayWidth; //Life time of the particle in sec.
39  Double_t fPDGCharge; //Charge of the particle in units of e
40  TString fParticleType; //Text indicator for the particle family
41  Int_t fMCnumberOfPDG; //PDG MC number followed by
42  //http://pdg.lbl.gov/rpp/mcdata/all.mc
43  Double_t fEnergyCut; //Lower energy cut off, the default is 10 keV
44  Double_t fEnergyLimit; //High energy cut off, the default is 10 TeV
45  Double_t fGranularity; //Granularity of the fLogEScale
46 
47 public:
48  TAttParticle();
49  TAttParticle(const char *name, const char *title,
50  Double_t Mass, Bool_t Stable,
51  Double_t DecayWidth, Double_t Charge, const char *Type,
52  Int_t MCnumber, Int_t granularity=90,
53  Double_t LowerCutOff=1.e-5, Double_t HighCutOff=1.e4);
54  virtual ~TAttParticle();
55  static THashList *fgList;
56  static Int_t ConvertISAtoPDG(Int_t isaNumber);
57  static void DefinePDG();
58  virtual Double_t GetCharge() const { return fPDGCharge; }
59  virtual Double_t GetEnergyCut() const { return fEnergyCut; }
60  virtual Double_t GetEnergyLimit() const { return fEnergyLimit; }
61  virtual Double_t GetGranularity() const { return fGranularity; }
62  virtual Double_t GetDecayWidth() const { return fPDGDecayWidth; }
63  virtual Double_t GetMass() const { return fPDGMass; }
64  virtual Int_t GetMCNumber() const { return fMCnumberOfPDG; }
65  static TAttParticle *GetParticle(const char *name);
66  static TAttParticle *GetParticle(Int_t mcnumber);
67  virtual const char *GetParticleType() const { return fParticleType.Data(); }
68  virtual Bool_t GetStable() const { return fPDGStable; }
69  virtual void Print(Option_t *option="") const ;
70  virtual Double_t SampleMass() const ;
71  virtual Double_t SampleMass(Double_t widthcut) const ;
72 
73  ClassDef(TAttParticle,1) //Particle definition
74 };
75 
76 #endif
Double_t fGranularity
Definition: TAttParticle.h:45
Double_t fPDGDecayWidth
Definition: TAttParticle.h:38
const char Option_t
Definition: RtypesCore.h:62
Int_t fMCnumberOfPDG
Definition: TAttParticle.h:41
Basic string class.
Definition: TString.h:137
Bool_t fPDGStable
Definition: TAttParticle.h:37
Double_t fPDGCharge
Definition: TAttParticle.h:39
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
virtual Double_t GetDecayWidth() const
Definition: TAttParticle.h:62
virtual Double_t GetCharge() const
Definition: TAttParticle.h:58
const char * Data() const
Definition: TString.h:349
Double_t fPDGMass
Definition: TAttParticle.h:36
virtual Bool_t GetStable() const
Definition: TAttParticle.h:68
#define ClassDef(name, id)
Definition: Rtypes.h:254
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
Definition: THashList.h:36
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:33
static void DefinePDG()
Defines particles according to the Particle Data Group.
virtual Int_t GetMCNumber() const
Definition: TAttParticle.h:64
virtual Double_t GetGranularity() const
Definition: TAttParticle.h:61
static TAttParticle * GetParticle(const char *name)
Get a pointer to the particle object according to the name given.
virtual Double_t GetMass() const
Definition: TAttParticle.h:63
static THashList * fgList
Definition: TAttParticle.h:55
virtual const char * GetParticleType() const
Definition: TAttParticle.h:67
TString fParticleType
Definition: TAttParticle.h:40
Type
enumeration specifying the integration types.
virtual void Print(Option_t *option="") const
Print the entire information of this kind of particle.
virtual Double_t SampleMass() const
Samples a mass according to the Breit-Wigner resonance distribution.
double Double_t
Definition: RtypesCore.h:55
Double_t fEnergyLimit
Definition: TAttParticle.h:44
virtual Double_t GetEnergyLimit() const
Definition: TAttParticle.h:60
#define name(a, b)
Definition: linkTestLib0.cpp:5
static Int_t ConvertISAtoPDG(Int_t isaNumber)
Converts the ISAJET Particle number into the PDG MC number.
Double_t fEnergyCut
Definition: TAttParticle.h:43
virtual Double_t GetEnergyCut() const
Definition: TAttParticle.h:59
virtual ~TAttParticle()
Particle destructor.