00001 // -*- C++ -*- 00002 #ifndef PYTHIA7_SpaceShowerHandler_H 00003 #define PYTHIA7_SpaceShowerHandler_H 00004 // This is the declaration of the SpaceShowerHandler class. 00005 00006 #include "Pythia7/Config/Pythia7.h" 00007 #include "ThePEG/Handlers/HandlerBase.h" 00008 #include "Pythia7/Shower/SpaceShower.h" 00009 #include "SpaceShowerHandler.fh" 00010 // #include "SpaceShowerHandler.xh" 00011 00012 #include "TimeShowerHandler.fh" 00013 00014 namespace Pythia7 { 00015 00023 class SpaceShowerHandler: public HandlerBase { 00024 00025 public: 00026 00032 inline SpaceShowerHandler(); 00033 00037 inline SpaceShowerHandler(const SpaceShowerHandler &); 00038 00042 virtual ~SpaceShowerHandler(); 00044 00045 public: 00046 00051 Shower::SpaceShower * getModel(); 00052 00059 inline int hadronShower() const; 00060 00067 inline int leptonShower() const; 00068 00073 inline int nQuarks() const; 00074 00080 inline int alphaSMode() const; 00081 00087 inline int maxVirtuality() const; 00088 00093 inline int MEMode() const; 00094 00098 inline int softGluonResum() const; 00099 00105 inline int finalCone() const; 00106 00112 inline int Q2Order() const; 00113 00117 inline bool angularOrdering() const; 00118 00123 inline int phiPolAsym() const; 00124 00129 inline int phiCoherAsym() const; 00130 00139 inline int respectScale() const; 00140 00144 inline Energy Q0() const; 00145 00149 inline Energy Q0ChgQ() const; 00150 00154 inline Energy Q0ChgL() const; 00155 00159 inline double alphaSFix() const; 00160 00164 inline Energy Lambda5() const; 00165 00169 inline double alphaEMFix() const; 00170 00174 inline Energy EMinEmitted() const; 00175 00180 inline double zMinEmitted() const; 00181 00186 inline double xMinEmittedChg() const; 00187 00191 inline Energy tinyQChg() const; 00192 00196 inline double tinyPDF() const; 00197 00202 inline double tinyKernelPDF() const; 00203 00207 inline double tinyKinPrec() const; 00208 00213 inline double heavyEvol() const; 00214 00218 inline double extraPreweight() const; 00219 00224 inline double heavyMax() const; 00225 00230 inline double Q2StartFrac() const; 00231 00232 public: 00233 00234 00241 void persistentOutput(PersistentOStream & os) const; 00242 00248 void persistentInput(PersistentIStream & is, int version); 00250 00254 static void Init(); 00255 00256 protected: 00257 00258 00259 protected: 00260 00267 inline virtual IBPtr clone() const; 00268 00273 inline virtual IBPtr fullclone() const; 00275 00276 protected: 00277 00278 00279 protected: 00280 00286 inline virtual void doupdate() throw(UpdateException); 00287 00293 inline virtual void doinit() throw(InitException); 00294 00299 inline virtual void doinitrun(); 00300 00305 inline virtual void dofinish(); 00306 00316 inline virtual void rebind(const TranslationMap & trans) 00317 throw(RebindException); 00318 00324 inline virtual IVector getReferences(); 00326 00327 private: 00328 00332 Shower::SpaceShower * theShowerModel; 00333 00340 int theHadronShower; 00341 00348 int theLeptonShower; 00349 00353 int theNQuarks; 00354 00360 int theAlphaSMode; 00361 00366 int theMaxVirtuality; 00367 00372 int theMEMode; 00373 00377 int theSoftGluonResum; 00378 00384 int theFinalCone; 00385 00391 int theQ2Order; 00392 00396 int useAngularOrdering; 00397 00402 int thePhiPolAsym; 00403 00408 int thePhiCoherAsym; 00409 00418 int theRespectScale; 00419 00423 Energy theQ0; 00424 00428 Energy theQ0ChgQ; 00429 00433 Energy theQ0ChgL; 00434 00438 double theAlphaSFix; 00439 00443 Energy theLambda5; 00444 00448 double theAlphaEMFix; 00449 00453 Energy theEMinEmitted; 00454 00459 double theZMinEmitted; 00460 00465 double theXMinEmittedChg; 00466 00470 Energy theTinyQChg; 00471 00475 double theTinyPDF; 00476 00481 double theTinyKernelPDF; 00482 00486 double theTinyKinPrec; 00487 00491 double theHeavyEvol; 00492 00496 double theExtraPreweight; 00497 00502 double theHeavyMax; 00503 00508 double theQ2StartFrac; 00509 00510 private: 00511 00515 static ClassDescription<SpaceShowerHandler> initSpaceShowerHandler; 00516 00520 SpaceShowerHandler & operator=(const SpaceShowerHandler &); 00521 00522 }; 00523 00524 } 00525 00526 00527 namespace ThePEG { 00528 00535 template <> 00536 struct BaseClassTrait<Pythia7::SpaceShowerHandler,1>: public ClassTraitsType { 00538 typedef HandlerBase NthBase; 00539 }; 00540 00546 template <> 00547 struct ClassTraits<Pythia7::SpaceShowerHandler> 00548 : public ClassTraitsBase<Pythia7::SpaceShowerHandler> { 00550 static string className() { return "Pythia7::SpaceShowerHandler"; } 00554 static string library() { return "libP7Shower.so"; } 00555 00556 }; 00557 00560 } 00561 00562 #include "SpaceShowerHandler.icc" 00563 #ifndef PYTHIA7_TEMPLATES_IN_CC_FILE 00564 // #include "SpaceShowerHandler.tcc" 00565 #endif 00566 00567 #endif /* PYTHIA7_SpaceShowerHandler_H */