herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
YJetRates.h
00001 // -*- C++ -*-
00002 
00003 // (C) 2007-2009 Simon Plaetzer -- sp@particle.uni-karlsruhe.de
00004 
00005 #ifndef Analysis2_YJetRates_H
00006 #define Analysis2_YJetRates_H
00007 //
00008 // This is the declaration of the YJetRates class.
00009 //
00010 
00011 #include "Analysis2Base.h"
00012 
00013 namespace Analysis2 {
00014 
00015 using namespace ThePEG;
00016 
00026 class YJetRates: public Analysis2Base {
00027 
00028 public:
00029 
00035   inline YJetRates()
00036     : _nMax(5), _options(6,""), _yn(), _sumWeights(0.) {}
00037 
00041   virtual ~YJetRates();
00043 
00044 public:
00045 
00051   virtual void analyze(const tPVector & particles);
00052 
00056   string R (string);
00057 
00058 public:
00059 
00066   void persistentOutput(PersistentOStream & os) const;
00067 
00073   void persistentInput(PersistentIStream & is, int version);
00075 
00082   static void Init();
00083 
00084 protected:
00085 
00093   virtual void doinit() throw(InitException);
00094 
00099   virtual void dofinish();
00100 
00102 
00103 protected:
00104 
00111   inline virtual IBPtr clone() const { return new_ptr(*this); }
00112 
00117   inline virtual IBPtr fullclone() const { return new_ptr(*this); }
00119 
00120 
00121 private:
00122 
00127   unsigned int _nMax;
00128 
00134   vector<string> _options;
00135 
00139   vector<string> _yn;
00140 
00145   double _sumWeights;
00146 
00151   static ClassDescription<YJetRates> initYJetRates;
00152 
00157   YJetRates & operator=(const YJetRates &);
00158 
00159 };
00160 
00161 }
00162 
00163 #include "ThePEG/Utilities/ClassTraits.h"
00164 #include "ThePEG/Config/Pointers.h"
00165 
00166 namespace ThePEG {
00167 
00168 ThePEG_DECLARE_POINTERS(Analysis2::YJetRates,YJetRatesPtr);
00169 
00174 template <>
00175 struct BaseClassTrait<Analysis2::YJetRates,1> {
00177   typedef Analysis2::Analysis2Base NthBase;
00178 };
00179 
00182 template <>
00183 struct ClassTraits<Analysis2::YJetRates>
00184   : public ClassTraitsBase<Analysis2::YJetRates> {
00186   static string className() { return "Analysis2::YJetRates"; }
00194   static string library() { return "Analysis2.so"; }
00195 };
00196 
00199 }
00200 
00201 #ifndef ThePEG_TEMPLATES_IN_CC_FILE
00202 // #include "YJetRates.tcc"
00203 #endif
00204 
00205 #endif /* Analysis2_YJetRates_H */