00001 // -*- C++ -*- 00002 #ifndef PYTHIA7_TimeShowerHandler_H 00003 #define PYTHIA7_TimeShowerHandler_H 00004 // This is the declaration of the TimeShowerHandler class. 00005 00006 #include "Pythia7/Config/Pythia7.h" 00007 #include "ThePEG/Handlers/HandlerBase.h" 00008 #include "Pythia7/Shower/TimeShower.h" 00009 00010 #include "TimeShowerHandler.fh" 00011 // #include "TimeShowerHandler.xh" 00012 00013 namespace Pythia7 { 00014 00022 class TimeShowerHandler: public HandlerBase { 00023 00024 public: 00025 00031 inline TimeShowerHandler(); 00032 00036 inline TimeShowerHandler(const TimeShowerHandler &); 00037 00041 virtual ~TimeShowerHandler(); 00043 00044 public: 00045 00050 Shower::TimeShower * getModel(); 00051 00056 inline int angularOrder() const; 00057 00062 inline int nQuark() const; 00063 00070 inline int alphaSMode() const; 00071 00076 inline int MEMode() const; 00077 00082 inline int QEDShower() const; 00083 00089 inline int initialCone() const; 00090 00095 inline int phiPolAsym() const; 00096 00101 inline int phoCoherAsym() const; 00102 00110 inline int respectScale() const; 00111 00115 inline Energy Q0() const; 00116 00120 inline Energy Q0ChgQ() const; 00121 00125 inline Energy Q0ChgL() const; 00126 00130 inline double alphaSFix() const; 00131 00136 inline Energy Lambda5() const; 00137 00141 inline double alphaEMFix() const; 00142 00147 inline double Q0FracPS() const; 00148 00149 public: 00150 00151 00158 void persistentOutput(PersistentOStream & os) const; 00159 00165 void persistentInput(PersistentIStream & is, int version); 00167 00171 static void Init(); 00172 00173 protected: 00174 00175 00176 protected: 00177 00184 inline virtual IBPtr clone() const; 00185 00190 inline virtual IBPtr fullclone() const; 00192 00193 protected: 00194 00195 00196 protected: 00197 00203 inline virtual void doupdate() throw(UpdateException); 00204 00210 inline virtual void doinit() throw(InitException); 00211 00216 inline virtual void doinitrun(); 00217 00222 inline virtual void dofinish(); 00223 00233 inline virtual void rebind(const TranslationMap & trans) 00234 throw(RebindException); 00235 00241 inline virtual IVector getReferences(); 00243 00244 private: 00245 00249 Shower::TimeShower * theShowerModel; 00250 00255 int theAngularOrdering; 00256 00257 00261 int theNQuark; 00262 00263 00269 int theAlphaSMode; 00270 00271 00276 int theMEMode; 00277 00278 00283 int theQEDShower; 00284 00285 00291 int theInitialCone; 00292 00293 00298 int thePhiPolAsym; 00299 00300 00305 int thePhiCoherAsym; 00306 00307 00314 int theRespectScale; 00315 00316 00320 Energy theQ0; 00321 00322 00326 Energy theQ0ChgQ; 00327 00328 00332 Energy theQ0ChgL; 00333 00334 00338 double theAlphaSFix; 00339 00340 00344 Energy theLambda5; 00345 00346 00350 double theAlphaEMFix; 00351 00352 00357 double theQ0FracPS; 00358 00359 00360 private: 00361 00365 static ClassDescription<TimeShowerHandler> initTimeShowerHandler; 00366 00370 TimeShowerHandler & operator=(const TimeShowerHandler &); 00371 00372 }; 00373 00374 } 00375 00376 00377 namespace ThePEG { 00378 00385 template <> 00386 struct BaseClassTrait<Pythia7::TimeShowerHandler,1>: public ClassTraitsType { 00388 typedef HandlerBase NthBase; 00389 }; 00390 00396 template <> 00397 struct ClassTraits<Pythia7::TimeShowerHandler> 00398 : public ClassTraitsBase<Pythia7::TimeShowerHandler> { 00400 static string className() { return "Pythia7::TimeShowerHandler"; } 00404 static string library() { return "libP7Shower.so"; } 00405 00406 }; 00407 00410 } 00411 00412 #include "TimeShowerHandler.icc" 00413 #ifndef ThePEG_TEMPLATES_IN_CC_FILE 00414 // #include "TimeShowerHandler.tcc" 00415 #endif 00416 00417 #endif /* PYTHIA7_TimeShowerHandler_H */