00001 // -*- C++ -*- 00002 // 00003 // EventConfig.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_EventConfig_H 00010 #define ThePEG_EventConfig_H 00011 00022 #ifndef ThePEG_NOT_ThePEG 00023 00024 #include "ThePEG/Config/ThePEG.h" 00025 #include "ThePEG/Utilities/Rebinder.fh" 00026 #include "ThePEG/Persistency/PersistentOStream.fh" 00027 #include "ThePEG/Persistency/PersistentIStream.fh" 00028 00029 #ifndef ThePEG_ALTERNATIVE_EVENT_RECORD 00030 00031 #include "ThePEG/Vectors/Lorentz5Vector.h" 00032 #include "ThePEG/Vectors/LorentzRotation.h" 00033 00034 namespace ThePEG { 00035 00041 typedef Base EventRecordBase; 00043 typedef Ptr<EventRecordBase>::pointer EventBasePtr; 00045 typedef Ptr<EventRecordBase>::const_pointer cEventBasePtr; 00047 typedef Ptr<EventRecordBase>::transient_pointer tEventBasePtr; 00049 typedef Ptr<EventRecordBase>::transient_const_pointer tcEventBasePtr; 00050 00053 typedef Rebinder<EventRecordBase> EventTranslationMap; 00054 00055 00057 typedef Particle ParticleClass; 00060 typedef ParticleData ParticleDataClass; 00061 00063 typedef Ptr<ParticleDataClass>::pointer EventPDPtr; 00065 typedef Ptr<ParticleDataClass>::const_pointer cEventPDPtr; 00067 typedef Ptr<ParticleDataClass>::transient_pointer tEventPDPtr; 00069 typedef Ptr<ParticleDataClass>::transient_const_pointer tcEventPDPtr; 00070 00072 typedef vector<tPPtr> tParticleVector; 00074 typedef vector<PPtr> ParticleVector; 00076 typedef set<PPtr, less<PPtr> > ParticleSet; 00078 typedef set<tPPtr, less<tPPtr> > tParticleSet; 00080 typedef set<tcPPtr, less<tcPPtr> > tcParticleSet; 00082 typedef vector<StepPtr> StepVector; 00084 typedef vector<SubProPtr> SubProcessVector; 00086 typedef vector<tSubProPtr> tSubProcessVector; 00088 typedef vector<CollPtr> CollisionVector; 00090 typedef set<StepPtr, less<StepPtr> > StepSet; 00092 typedef set<SubProPtr, less<SubProPtr> > SubProcessSet; 00093 00095 struct EventConfig { 00096 00106 static tcEventBasePtr currentGenerator; 00107 00109 static void putHandler(PersistentOStream & os, tcEventBasePtr h); 00111 static void getHandler(PersistentIStream & is, tcEventBasePtr & h); 00113 static void putParticleData(PersistentOStream & os, tcEventPDPtr pd); 00115 static void getParticleData(PersistentIStream & is, cEventPDPtr & pd); 00117 static string nameHandler(tcEventBasePtr h); 00118 00119 }; 00120 00121 } 00122 00123 #else 00124 00125 #include ThePEG_ALTERNATIVE_EVENT_RECORD 00126 00127 #endif 00128 00129 #endif /* ThePEG_NOT_ThePEG */ 00130 00131 00132 #endif /* ThePEG_EventConfig_H */ 00133