00001
00002 #ifndef PYTHIA7_LundPtGenerator_H
00003 #define PYTHIA7_LundPtGenerator_H
00004
00005
00006 #include "FragConfig.h"
00007
00008
00009 #include "ThePEG/Handlers/PtGenerator.h"
00010
00011
00012 namespace Pythia7 {
00013
00034 class LundPtGenerator: public ThePEG::PtGenerator {
00035
00036 public:
00037
00043 inline LundPtGenerator();
00044
00048 inline LundPtGenerator(const LundPtGenerator &);
00049
00053 virtual ~LundPtGenerator();
00055
00056 public:
00057
00066 virtual TransverseMomentum generate() const ;
00068
00074 inline Energy Sigma() const;
00075
00080 inline double NGaussFraction() const;
00081
00085 inline double NGaussFactor() const;
00087
00088 public:
00089
00090
00097 void persistentOutput(PersistentOStream & os) const;
00098
00104 void persistentInput(PersistentIStream & is, int version);
00106
00110 static void Init();
00111
00112 protected:
00113
00114
00115 protected:
00116
00123 inline virtual IBPtr clone() const;
00124
00129 inline virtual IBPtr fullclone() const;
00131
00132
00133 protected:
00134
00140 inline virtual void doupdate() throw(UpdateException);
00141
00147 inline virtual void doinit() throw(InitException);
00148
00153 inline virtual void dofinish();
00155
00156
00157 private:
00158
00162 Energy sigma;
00163
00168 double nGaussfraction;
00169
00173 double nGaussfactor;
00174
00178 static ClassDescription<LundPtGenerator> initLundPtGenerator;
00179
00183 LundPtGenerator & operator=(const LundPtGenerator &);
00184 };
00185
00186 }
00187
00188 namespace ThePEG {
00189
00196 template <>
00197 struct BaseClassTrait<Pythia7::LundPtGenerator,1>: public ClassTraitsType {
00199 typedef PtGenerator NthBase;
00200 };
00201
00207 template <>
00208 struct ClassTraits<Pythia7::LundPtGenerator>
00209 : public ClassTraitsBase<Pythia7::LundPtGenerator> {
00211 static string className() { return "Pythia7::LundPtGenerator"; }
00215 static string library() { return "libP7String.so"; }
00216 };
00217
00220 }
00221
00222 #include "LundPtGenerator.icc"
00223 #ifndef PYTHIA7_TEMPLATES_IN_CC_FILE
00224
00225 #endif
00226
00227 #endif