00001 // -*- C++ -*- 00002 // 00003 // FixedCMSLuminosity.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_FixedCMSLuminosity_H 00010 #define ThePEG_FixedCMSLuminosity_H 00011 // This is the declaration of the FixedCMSLuminosity class. 00012 00013 #include "LuminosityFunction.h" 00014 00015 namespace ThePEG { 00016 00033 class FixedCMSLuminosity: public LuminosityFunction { 00034 00035 public: 00036 00042 virtual ~FixedCMSLuminosity(); 00044 00045 public: 00046 00050 Energy energy() const { return maximumCMEnergy(); } 00051 00052 public: 00053 00057 static void Init(); 00058 00059 protected: 00060 00067 virtual IBPtr clone() const; 00068 00073 virtual IBPtr fullclone() const; 00075 00076 private: 00077 00081 void setEnergy(Energy); 00082 00086 Energy getEnergy() const; 00087 00088 private: 00089 00093 static NoPIOClassDescription<FixedCMSLuminosity> initFixedCMSLuminosity; 00094 00098 FixedCMSLuminosity & operator=(const FixedCMSLuminosity &); 00099 00100 }; 00101 00108 template <> 00109 struct BaseClassTrait<FixedCMSLuminosity,1>: public ClassTraitsType { 00111 typedef LuminosityFunction NthBase; 00112 }; 00113 00118 template <> 00119 struct ClassTraits<FixedCMSLuminosity>: 00120 public ClassTraitsBase<FixedCMSLuminosity> { 00122 static string className() { return "ThePEG::FixedCMSLuminosity"; } 00126 static string library() { return "FixedCMSLuminosity.so"; } 00127 }; 00128 00131 } 00132 00133 #endif /* ThePEG_FixedCMSLuminosity_H */