00001 // -*- C++ -*- 00002 #ifndef PYTHIA7_StringCollapser_H 00003 #define PYTHIA7_StringCollapser_H 00004 // This is the declaration of the StringCollapser class. 00005 00006 #include "Pythia7/Config/Pythia7.h" 00007 #include "ThePEG/Handlers/ClusterCollapser.h" 00008 // #include "StringCollapser.fh" 00009 // #include "StringCollapser.xh" 00010 00011 namespace Pythia7 { 00012 00022 class StringCollapser: public ClusterCollapser { 00023 00024 public: 00025 00031 inline StringCollapser(); 00032 00036 inline StringCollapser(const StringCollapser &); 00037 00041 virtual ~StringCollapser(); 00043 00044 public: 00045 00046 00053 void persistentOutput(PersistentOStream & os) const; 00054 00060 void persistentInput(PersistentIStream & is, int version); 00062 00066 static void Init(); 00067 00068 protected: 00069 00070 00071 protected: 00072 00079 inline virtual IBPtr clone() const; 00080 00085 inline virtual IBPtr fullclone() const; 00087 00088 protected: 00089 00090 00091 protected: 00092 00098 inline virtual void doupdate() throw(UpdateException); 00099 00105 inline virtual void doinit() throw(InitException); 00106 00111 inline virtual void doinitrun(); 00112 00117 inline virtual void dofinish(); 00118 00128 inline virtual void rebind(const TranslationMap & trans) 00129 throw(RebindException); 00130 00136 inline virtual IVector getReferences(); 00138 00139 private: 00140 00144 static ClassDescription<StringCollapser> initStringCollapser; 00145 00149 StringCollapser & operator=(const StringCollapser &); 00150 00151 }; 00152 00153 } 00154 00155 00156 namespace ThePEG { 00157 00164 template <> 00165 struct BaseClassTrait<Pythia7::StringCollapser,1>: public ClassTraitsType { 00167 typedef ClusterCollapser NthBase; 00168 }; 00169 00175 template <> 00176 struct ClassTraits<Pythia7::StringCollapser> 00177 : public ClassTraitsBase<Pythia7::StringCollapser> { 00179 static string className() { return "Pythia7::StringCollapser"; } 00185 static string library() { return "libP7String.so"; } 00186 }; 00187 00190 } 00191 00192 #include "StringCollapser.icc" 00193 #ifndef PYTHIA7_TEMPLATES_IN_CC_FILE 00194 // #include "StringCollapser.tcc" 00195 #endif 00196 00197 #endif /* PYTHIA7_StringCollapser_H */