00001 // -*- C++ -*- 00002 /*************************************************************************** 00003 * 00004 * The IPPL Framework 00005 * 00006 * 00007 * Visit http://people.web.psi.ch/adelmann/ for more details 00008 * 00009 ***************************************************************************/ 00010 00011 #ifndef GEN_PARTICLE_H 00012 #define GEN_PARTICLE_H 00013 00014 /* 00015 * GenParticle - Specialized Particle container with just one more attribute. 00016 * 00017 * GenParticle is a special version of a ParticleBase class, specialized 00018 * to have one more attribute of type T2 in addition to the normal attributes 00019 * defined in ParticleBase. 00020 */ 00021 00022 // include files 00023 #include "Particle/ParticleBase.h" 00024 00025 00026 // GenParticle class definition 00027 template<class PLayout, class T> 00028 class GenParticle : public ParticleBase<PLayout> { 00029 00030 public: 00031 // the extra attribute for this class 00032 ParticleAttrib<T> data; 00033 00034 // constructor: user-provided Layout object must be supplied 00035 GenParticle(PLayout* L) : ParticleBase<PLayout>(L) { 00036 addAttribute(data); 00037 } 00038 00039 private: 00040 // disable default constructor 00041 GenParticle(); 00042 00043 }; 00044 00045 #endif // GEN_PARTICLE_H 00046 00047 /*************************************************************************** 00048 * $RCSfile: GenParticle.h,v $ $Author: adelmann $ 00049 * $Revision: 1.1.1.1 $ $Date: 2003/01/23 07:40:28 $ 00050 * IPPL_VERSION_ID: $Id: GenParticle.h,v 1.1.1.1 2003/01/23 07:40:28 adelmann Exp $ 00051 ***************************************************************************/