Herwig++
2.7.0
|
00001 // -*- C++ -*- 00002 // 00003 // EventShapesMasterAnalysis.h is a part of Herwig++ - A multi-purpose Monte Carlo event generator 00004 // Copyright (C) 2002-2011 The Herwig Collaboration 00005 // 00006 // Herwig++ 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 HERWIG_EventShapesMasterAnalysis_H 00010 #define HERWIG_EventShapesMasterAnalysis_H 00011 // 00012 // This is the declaration of the EventShapesMasterAnalysis class. 00013 // 00014 00015 #include "ThePEG/Handlers/AnalysisHandler.h" 00016 #include "EventShapes.h" 00017 00018 namespace Herwig { 00019 00020 using namespace ThePEG; 00021 00031 class EventShapesMasterAnalysis: public AnalysisHandler { 00032 00033 public: 00034 00054 virtual void analyze(tEventPtr event, long ieve, int loop, int state); 00055 00062 virtual LorentzRotation transform(tEventPtr event) const; 00063 00069 virtual void analyze(const tPVector & particles); 00070 00075 virtual void analyze(tPPtr particle); 00077 00078 public: 00079 00086 void persistentOutput(PersistentOStream & os) const; 00087 00093 void persistentInput(PersistentIStream & is, int version); 00095 00102 static void Init(); 00103 00104 protected: 00105 00112 virtual IBPtr clone() const {return new_ptr(*this);} 00113 00118 virtual IBPtr fullclone() const {return new_ptr(*this);} 00120 00121 private: 00122 00127 static ClassDescription<EventShapesMasterAnalysis> initEventShapesMasterAnalysis; 00128 00133 EventShapesMasterAnalysis & operator=(const EventShapesMasterAnalysis &); 00134 00135 private: 00136 00140 EventShapesPtr _shapes; 00141 00142 }; 00143 00144 } 00145 00146 #include "ThePEG/Utilities/ClassTraits.h" 00147 00148 namespace ThePEG { 00149 00154 template <> 00155 struct BaseClassTrait<Herwig::EventShapesMasterAnalysis,1> { 00157 typedef AnalysisHandler NthBase; 00158 }; 00159 00162 template <> 00163 struct ClassTraits<Herwig::EventShapesMasterAnalysis> 00164 : public ClassTraitsBase<Herwig::EventShapesMasterAnalysis> { 00166 static string className() { return "Herwig::EventShapesMasterAnalysis"; } 00170 static string library() { return "HwAnalysis.so"; } 00171 }; 00172 00175 } 00176 00177 #endif /* HERWIG_EventShapesMasterAnalysis_H */