herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
EventShapesMasterAnalysis.h
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 */