// @(#)root/eg:$Id$
// Author: Pasha Murat   12/02/99

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/
#ifndef TParticleClassPDG_hh
#define TParticleClassPDG_hh

#include "TNamed.h"
#include "TObjArray.h"

class TParticlePDG;

class TParticleClassPDG : public TNamed {
public:
//------------------------------------------------------------------------------
//     data members
//------------------------------------------------------------------------------
protected:
   TObjArray*  fListOfParticles;  // list of (non-owned) particles

   TParticleClassPDG(const TParticleClassPDG& pcp): TNamed(pcp), fListOfParticles(pcp.fListOfParticles) { }
   TParticleClassPDG& operator=(const TParticleClassPDG& pcp)
   {if(this!=&pcp) {TNamed::operator=(pcp); fListOfParticles=pcp.fListOfParticles;}
       return *this;
   }
//------------------------------------------------------------------------------
// functions
//------------------------------------------------------------------------------
public:
   // ****** constructors  and destructor

   TParticleClassPDG(const char* name = 0);
   virtual ~TParticleClassPDG();
   // ****** access methods

   Int_t   GetNParticles () {
      return fListOfParticles->GetEntriesFast();
   }

   TParticlePDG* GetParticle(Int_t i) {
      return (TParticlePDG*) fListOfParticles->At(i);
   }

   TObjArray* GetListOfParticles() { return fListOfParticles; }

   // ****** modifiers

   void AddParticle(TObject* p) { fListOfParticles->Add(p); }

   // ****** overloaded methods of TObject

   virtual void    Print(Option_t* opt="") const; // *MENU*

   Bool_t IsFolder() const { return kTRUE; }
   virtual void   Browse(TBrowser* b);

   ClassDef(TParticleClassPDG,1)  // PDG static particle definition
};

#endif
 TParticleClassPDG.h:1
 TParticleClassPDG.h:2
 TParticleClassPDG.h:3
 TParticleClassPDG.h:4
 TParticleClassPDG.h:5
 TParticleClassPDG.h:6
 TParticleClassPDG.h:7
 TParticleClassPDG.h:8
 TParticleClassPDG.h:9
 TParticleClassPDG.h:10
 TParticleClassPDG.h:11
 TParticleClassPDG.h:12
 TParticleClassPDG.h:13
 TParticleClassPDG.h:14
 TParticleClassPDG.h:15
 TParticleClassPDG.h:16
 TParticleClassPDG.h:17
 TParticleClassPDG.h:18
 TParticleClassPDG.h:19
 TParticleClassPDG.h:20
 TParticleClassPDG.h:21
 TParticleClassPDG.h:22
 TParticleClassPDG.h:23
 TParticleClassPDG.h:24
 TParticleClassPDG.h:25
 TParticleClassPDG.h:26
 TParticleClassPDG.h:27
 TParticleClassPDG.h:28
 TParticleClassPDG.h:29
 TParticleClassPDG.h:30
 TParticleClassPDG.h:31
 TParticleClassPDG.h:32
 TParticleClassPDG.h:33
 TParticleClassPDG.h:34
 TParticleClassPDG.h:35
 TParticleClassPDG.h:36
 TParticleClassPDG.h:37
 TParticleClassPDG.h:38
 TParticleClassPDG.h:39
 TParticleClassPDG.h:40
 TParticleClassPDG.h:41
 TParticleClassPDG.h:42
 TParticleClassPDG.h:43
 TParticleClassPDG.h:44
 TParticleClassPDG.h:45
 TParticleClassPDG.h:46
 TParticleClassPDG.h:47
 TParticleClassPDG.h:48
 TParticleClassPDG.h:49
 TParticleClassPDG.h:50
 TParticleClassPDG.h:51
 TParticleClassPDG.h:52
 TParticleClassPDG.h:53
 TParticleClassPDG.h:54
 TParticleClassPDG.h:55
 TParticleClassPDG.h:56
 TParticleClassPDG.h:57
 TParticleClassPDG.h:58
 TParticleClassPDG.h:59
 TParticleClassPDG.h:60
 TParticleClassPDG.h:61
 TParticleClassPDG.h:62
 TParticleClassPDG.h:63
 TParticleClassPDG.h:64
 TParticleClassPDG.h:65
 TParticleClassPDG.h:66