00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_ReweightBase_H
00010 #define ThePEG_ReweightBase_H
00011
00012
00013 #include "ThePEG/Handlers/HandlerBase.h"
00014 #include "ThePEG/EventRecord/SubProcess.h"
00015 #include "ThePEG/Handlers/LastXCombInfo.h"
00016 #include "ThePEG/Handlers/StandardXComb.fh"
00017
00018 namespace ThePEG {
00019
00039 class ReweightBase: public HandlerBase, public LastXCombInfo<> {
00040
00041 public:
00042
00045
00049 virtual ~ReweightBase();
00051
00052 public:
00053
00058 virtual double weight() const = 0;
00059
00064 void setXComb(tXCombPtr xc);
00065
00066 public:
00067
00074 void persistentOutput(PersistentOStream & os) const;
00075
00081 void persistentInput(PersistentIStream & is, int version);
00083
00087 static void Init();
00088
00089 private:
00090
00094 static AbstractClassDescription<ReweightBase> initReweightBase;
00095
00099 ReweightBase & operator=(const ReweightBase &);
00100
00101 };
00102
00103 }
00104
00105
00106 namespace ThePEG {
00107
00114 template <>
00115 struct BaseClassTrait<ReweightBase,1>: public ClassTraitsType {
00117 typedef HandlerBase NthBase;
00118 };
00119
00124 template <>
00125 struct ClassTraits<ReweightBase>: public ClassTraitsBase<ReweightBase> {
00127 static string className() { return "ThePEG::ReweightBase"; }
00128 };
00129
00132 }
00133
00134 #endif