herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
GnuplotOutput.h
00001 // -*- C++ -*-
00002 
00003 // (C) 2007-2009 Simon Plaetzer -- sp@particle.uni-karlsruhe.de
00004 
00005 #ifndef Analysis2_GnuplotOutput_H
00006 #define Analysis2_GnuplotOutput_H
00007 //
00008 // This is the declaration of the GnuplotOutput class.
00009 //
00010 
00011 #include "Analysis2/Histogram2/Histogram2Output.h"
00012 #include "GnuplotOutput.fh"
00013 
00014 namespace Analysis2 {
00015 
00016 using namespace ThePEG;
00017 
00025 class GnuplotOutput: public Histogram2Output {
00026 
00027 public:
00028 
00034   inline GnuplotOutput();
00035 
00039   inline GnuplotOutput(const GnuplotOutput&);
00040 
00044   virtual ~GnuplotOutput();
00046 
00047 public:
00048 
00053   virtual void put (Histogram2Ptr, const Histogram2Options&, const string&);
00054 
00055 public:
00056 
00063   void persistentOutput(PersistentOStream & os) const;
00064 
00070   void persistentInput(PersistentIStream & is, int version);
00072 
00079   static void Init();
00080 
00081 protected:
00082 
00089   inline virtual IBPtr clone() const;
00090 
00095   inline virtual IBPtr fullclone() const;
00097 
00098 
00099 // If needed, insert declarations of virtual function defined in the
00100 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
00101 
00102 public:
00103 
00111   virtual inline void initialize ();
00112 
00120   virtual inline void finalize ();
00121 
00122 private:
00123 
00130   string _subproMult;
00131 
00135   unsigned int _allHistos;
00136 
00141   bool _ratio;
00142 
00147   bool _chi2;
00148 
00152   string _gnuplot;
00153 
00157   ofstream _TeXfile;
00158 
00162   ofstream _makefile;
00163 
00167   bool _doneInitialize;
00168 
00173   static ClassDescription<GnuplotOutput> initGnuplotOutput;
00174 
00179   GnuplotOutput & operator=(const GnuplotOutput &);
00180 
00181 };
00182 
00183 }
00184 
00185 #include "ThePEG/Utilities/ClassTraits.h"
00186 
00187 namespace ThePEG {
00188 
00193 template <>
00194 struct BaseClassTrait<Analysis2::GnuplotOutput,1> {
00196   typedef Analysis2::Histogram2Output NthBase;
00197 };
00198 
00201 template <>
00202 struct ClassTraits<Analysis2::GnuplotOutput>
00203   : public ClassTraitsBase<Analysis2::GnuplotOutput> {
00205   static string className() { return "Analysis2::GnuplotOutput"; }
00213   static string library() { return "Analysis2.so"; }
00214 };
00215 
00218 }
00219 
00220 #include "GnuplotOutput.icc"
00221 #ifndef ThePEG_TEMPLATES_IN_CC_FILE
00222 // #include "GnuplotOutput.tcc"
00223 #endif
00224 
00225 #endif /* Analysis2_GnuplotOutput_H */