00001 // -*- C++ -*- 00002 // 00003 // ReweightMinPT.h is a part of ThePEG - Toolkit for HEP Event Generation 00004 // Copyright (C) 1999-2007 Leif Lonnblad 00005 // 00006 // ThePEG is licenced under version 2 of the GPL, see COPYING for details. 00007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 00008 // 00009 #ifndef ThePEG_ReweightMinPT_H 00010 #define ThePEG_ReweightMinPT_H 00011 // This is the declaration of the ReweightMinPT class. 00012 00013 #include "ThePEG/MatrixElement/ReweightBase.h" 00014 00015 namespace ThePEG { 00016 00024 class ReweightMinPT: public ReweightBase { 00025 00026 public: 00027 00033 ReweightMinPT() 00034 : power(4.0), scale(50.0*GeV) {} 00036 00037 public: 00038 00043 virtual double weight() const; 00044 00045 public: 00046 00053 void persistentOutput(PersistentOStream & os) const; 00054 00060 void persistentInput(PersistentIStream & is, int version); 00062 00066 static void Init(); 00067 00068 protected: 00069 00076 virtual IBPtr clone() const; 00077 00082 virtual IBPtr fullclone() const; 00084 00085 private: 00086 00090 double power; 00091 00095 Energy scale; 00096 00097 private: 00098 00102 static ClassDescription<ReweightMinPT> initReweightMinPT; 00103 00107 ReweightMinPT & operator=(const ReweightMinPT &); 00108 00109 }; 00110 00111 } 00112 00113 00114 namespace ThePEG { 00115 00120 template <> 00121 struct BaseClassTrait<ReweightMinPT,1>: public ClassTraitsType { 00123 typedef ReweightBase NthBase; 00124 }; 00125 00128 template <> 00129 struct ClassTraits<ReweightMinPT>: public ClassTraitsBase<ReweightMinPT> { 00131 static string className() { return "ThePEG::ReweightMinPT"; } 00135 static string library() { return "ReweightMinPT.so"; } 00136 }; 00137 00140 } 00141 00142 #endif /* ThePEG_ReweightMinPT_H */