Herwig++
2.7.0
|
00001 // -*- C++ -*- 00002 #ifndef HERWIG_Zrapidity_H 00003 #define HERWIG_Zrapidity_H 00004 // 00005 // This is the declaration of the Zrapidity class. 00006 // 00007 #include "ThePEG/Repository/CurrentGenerator.h" 00008 #include "ThePEG/Repository/EventGenerator.h" 00009 #include "ThePEG/Handlers/AnalysisHandler.h" 00010 #include "Herwig++/Utilities/Histogram.h" 00011 00012 00013 namespace Herwig { 00014 00015 using namespace ThePEG; 00022 class Zrapidity: public AnalysisHandler { 00023 00024 public: 00025 00031 inline Zrapidity() {} 00032 00033 00034 public: 00035 00055 virtual void analyze(tEventPtr event, long ieve, int loop, int state); 00056 00057 00058 public: 00059 00066 void persistentOutput(PersistentOStream & os) const; 00067 00073 void persistentInput(PersistentIStream & is, int version); 00075 00082 static void Init(); 00083 00088 virtual void doinitrun(); 00089 00094 virtual void dofinish(); 00095 00096 protected: 00097 00104 inline virtual IBPtr clone() const; 00105 00110 inline virtual IBPtr fullclone() const; 00112 00113 00114 // If needed, insert declarations of virtual function defined in the 00115 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs). 00116 00117 00118 private: 00119 00123 HistogramPtr _hy; 00124 00129 static ClassDescription<Zrapidity> initZrapidity; 00130 00135 Zrapidity & operator=(const Zrapidity &); 00136 00137 }; 00138 00139 } 00140 00141 #include "ThePEG/Utilities/ClassTraits.h" 00142 00143 namespace ThePEG { 00144 00149 template <> 00150 struct BaseClassTrait<Herwig::Zrapidity,1> { 00152 typedef AnalysisHandler NthBase; 00153 }; 00154 00157 template <> 00158 struct ClassTraits<Herwig::Zrapidity> 00159 : public ClassTraitsBase<Herwig::Zrapidity> { 00161 static string className() { return "Herwig::Zrapidity"; } 00169 static string library() { return "HwTevatronAnalysis.so"; } 00170 }; 00171 00174 } 00175 00176 #endif /* HERWIG_Zrapidity_H */ 00177 00178