StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
StarParticleData Class Reference

Interface to PDG information. More...

#include <StarParticleData.h>

Inheritance diagram for StarParticleData:
TObjectSet TDataSet

Public Member Functions

 StarParticleData (const Char_t *name="PDG_Database", TDataSet *parent=0)
TParticlePDG * GetParticle (const Char_t *name)
 Get a particle by name.
TParticlePDG * GetParticle (const Int_t id)
 Get a particle by PDG ID.
TParticlePDG * GetParticleG3 (const Int_t id)
 Get a particle by G3 ID.
void AddParticle (const Char_t *name, TParticlePDG *particle)
 Add a particle to the database.
void AddAlias (const Char_t *alias, const Char_t *realname)
 Add an alias to a particle in the database.
TParticlePDG * AddParticle (const Char_t *name, const Char_t *title, Double_t mass, Bool_t Stable, Double_t Width, Double_t Charge3, const char *ParticleClass, Int_t PdgCode, Int_t Anti, Int_t geantCode)
TParticlePDG * AddParticleToG3 (const char *name, const double mass, const double lifetime, const double charge, const int tracktype, const int pdgcode, const int g3code, const double *bratio=0, const int *mode=0)
TParticlePDG * AddParticleToG3 (TParticlePDG *part, const int g3code)
TParticlePDG * SetTrackingCode (const int pdgid, const int g3id)
 Maps the particle with the given PDG id to G3 tracking ID and returns pointer to the particle data.
TParticlePDG * operator() (const Char_t *name)
TParticlePDG * operator() (const Int_t id)
const TObjArray & GetParticles () const
 Returns a reference to the list of particles.
- Public Member Functions inherited from TObjectSet
 TObjectSet (const Char_t *name, TObject *obj=0, Bool_t makeOwner=kTRUE)
 to be documented
 TObjectSet (TObject *obj=0, Bool_t makeOwner=kTRUE)
 to be documented
virtual ~TObjectSet ()
 to be documented
virtual TObject * AddObject (TObject *obj, Bool_t makeOwner=kTRUE)
 Aliase for SetObject method.
virtual void Browse (TBrowser *b)
 Browse this dataset (called by TBrowser).
virtual void Delete (Option_t *opt="")
 to be documented
virtual Bool_t DoOwner (Bool_t done=kTRUE)
virtual Long_t HasData () const
virtual TObject * GetObject () const
 The depricated method (left here for the sake of the backward compatibility)
virtual TDataSetInstance () const
virtual Bool_t IsOwner () const
virtual void SetObject (TObject *obj)
 The depricated method (left here for the sake of the backward compatibility)
virtual TObject * SetObject (TObject *obj, Bool_t makeOwner)
- Public Member Functions inherited from TDataSet
 TDataSet (const char *name="", TDataSet *parent=0, Bool_t arrayFlag=kFALSE)
 TDataSet (const TDataSet &src, EDataSetPass iopt=kAll)
 TDataSet (TNode &src)
 This copy ctor has been depricated (left for thwe sake of the backweard compatibility)
virtual ~TDataSet ()
 std::cout << "Default destructor for " << GetName() << " - " << GetTitle() << std::endl;
virtual void Add (TDataSet *dataset)
virtual void AddAt (TDataSet *dataset, Int_t idx=0)
virtual void AddAtAndExpand (TDataSet *dataset, Int_t idx=0)
virtual void AddFirst (TDataSet *dataset)
 Add TDataSet object at the beginning of the dataset list of this dataset.
virtual void AddLast (TDataSet *dataset)
 Add TDataSet object at the end of the dataset list of this dataset.
TDataSetAt (Int_t idx) const
virtual TObject * Clone (const char *newname="") const
 the custom implementation fo the TObject::Clone
virtual TDataSetFind (const char *path) const
virtual TDataSetFindByName (const char *name, const char *path="", Option_t *opt="") const
virtual TDataSetFindByPath (const char *path) const
 Aliase for TDataSet::Find(const Char_t *path) method.
virtual TDataSetFindByTitle (const char *title, const char *path="", Option_t *opt="") const
TObject * FindObject (const char *name) const
TObject * FindObject (const TObject *o) const
virtual TDataSetFirst () const
 Return the first object in the list. Returns 0 when list is empty.
TObjArray * GetObjArray () const
virtual TSeqCollection * GetCollection () const
TList * GetList () const
virtual Int_t GetListSize () const
TObject * GetMother () const
virtual TDataSetGetParent () const
virtual TString Path () const
 return the full path of this data set
virtual EDataSetPass Pass (EDataSetPass(*callback)(TDataSet *), Int_t depth=0)
virtual EDataSetPass Pass (EDataSetPass(*callback)(TDataSet *, void *), void *user, Int_t depth=0)
virtual void PrintContents (Option_t *opt="") const
virtual Int_t Purge (Option_t *opt="")
virtual void Remove (TDataSet *set)
 Remiove the "set" from this TDataSet.
virtual TDataSetRemoveAt (Int_t idx)
virtual void SetMother (TDataSet *parent=0)
virtual void SetParent (TDataSet *parent=0)
virtual void SetWrite ()
virtual void Shunt (TDataSet *newParent=0)
virtual void Sort ()
 Sort recursively all members of the TDataSet with TList::Sort method.
virtual Bool_t IsEmpty () const
 return kTRUE if the "internal" collection has no member
virtual Bool_t IsFolder () const
virtual Bool_t IsMarked () const
virtual Bool_t IsThisDir (const char *dirname, int len=-1, int ignorecase=0) const
virtual TDataSetLast () const
 Return the last object in the list. Returns 0 when list is empty.
virtual void ls (Option_t *option="") const
virtual void ls (Int_t depth) const
void Mark ()
void UnMark ()
void MarkAll ()
 Mark all members of this dataset.
void UnMarkAll ()
 UnMark all members of this dataset.
void InvertAllMarks ()
 Invert mark bit for all members of this dataset.
void Mark (UInt_t flag, EBitOpt reset=kSet)
virtual TDataSetNext () const
virtual TDataSetPrev () const
virtual void Update ()
virtual void Update (TDataSet *set, UInt_t opt=0)
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const

Static Public Member Functions

static StarParticleDatainstance ()
 Returns a reference to the single instance of this class. More...
- Static Public Member Functions inherited from TObjectSet
static TObjectSetinstance ()
- Static Public Member Functions inherited from TDataSet
static TDataSetGetMainSet ()
 return pointer to the main dataset
static TDataSetinstance ()

Protected Member Functions

 ClassDef (StarParticleData, 1)
- Protected Member Functions inherited from TDataSet
virtual void SetMother (TObject *mother)
 TDataSet (const char *name, const char *title)
void AddMain (TDataSet *set)
 add data set to main data set
TDataSetGetRealParent ()
 return real parent
void MakeCollection ()
 Create the internal container at once if any.

Protected Attributes

TObjArray mParticleList
std::map< TString, TParticlePDG * > mParticleNameMap
std::map< Int_t, TParticlePDG * > mParticleIdMap
std::map< Int_t, TParticlePDG * > mParticleG3IdMap
- Protected Attributes inherited from TObjectSet
TObject * fObj
- Protected Attributes inherited from TDataSet
TSeqCollection * fList

Static Protected Attributes

static StarParticleDatasInstance = nullptr
- Static Protected Attributes inherited from TDataSet
static TDataSetfgMainSet = &mainSet

Additional Inherited Members

- Public Types inherited from TDataSet
enum  EDataSetPass {
  kContinue, kPrune, kStop, kUp,
  kStruct, kAll, kRefs, kMarked
enum  ESetBits { kMark = BIT(22), kArray = BIT(20) }
enum  EBitOpt { kSet = kTRUE, kReset = kFALSE }
- Protected Types inherited from TObjectSet
enum  EOwnerBits { kIsOwner = BIT(23) }
- Static Protected Member Functions inherited from TDataSet
static EDataSetPass SortIt (TDataSet *ds)
static EDataSetPass SortIt (TDataSet *ds, void *user)

Detailed Description

Interface to PDG information.

Jason C. Webb StarParticleData provides an interface to the data provided in the TDatabasePDG class from ROOT. We extend the available list of particles, including some standard heavy ions which are lacking in the ROOT table, and provide the capability to alias names to individual particles.

Definition at line 22 of file StarParticleData.h.

Member Function Documentation

TParticlePDG * StarParticleData::AddParticle ( const Char_t *  name,
const Char_t *  title,
Double_t  mass,
Bool_t  Stable,
Double_t  Width,
Double_t  Charge3,
const char *  ParticleClass,
Int_t  PdgCode,
Int_t  Anti,
Int_t  geantCode 

Particle definition normal constructor. If the particle is set to be stable, the decay width parameter does have no meaning and can be set to any value. The parameters granularity, LowerCutOff and HighCutOff are used for the construction of the mean free path look up tables. The granularity will be the number of logwise energy points for which the mean free path will be calculated.

nameName of the particle
massMass of the particle [GeV]
stableTrue if the particle is stable
widthTotal width of the particle (meaningless if stable) [GeV]
charge3Charge of the particle in units of |e|/3... i.e. proton would be charge3 = 3, down quark charge3 = -1.
particleClassis the class of the particle, e.g. lepton, hadron, ...
pdgCodeis the Particle Data Group code
geantCodeis the geant code of the particle

Definition at line 204 of file StarParticleData.cxx.

References AddParticle().

TParticlePDG * StarParticleData::AddParticleToG3 ( const char *  name,
const double  mass,
const double  lifetime,
const double  charge,
const int  tracktype,
const int  pdgcode,
const int  g3code,
const double *  bratio = 0,
const int *  mode = 0 

Particle definition to DB and G3

TODO: Add decay channels to PDG particle

Register particle and its decay modes with G3

Definition at line 262 of file StarParticleData.cxx.

References AgStarParticle::Add(), and AddParticle().

StarParticleData & StarParticleData::instance ( )

Returns a reference to the single instance of this class.

Add a decay channel to the named particle

nameName of the particle

AddDecay( const Char_t *name, Int_t num, Int_t matrixCode, Double_t branchingRatio, TArrayI kids );

Definition at line 354 of file StarParticleData.cxx.

Referenced by StarPrimaryMaker::Finish(), StarPrimaryMaker::pdg(), StarGenParticle::Print(), StarGenParticle::SetId(), and StarPrimaryMaker::StarPrimaryMaker().

The documentation for this class was generated from the following files: