herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
BELLECharmAnalysis.h
00001 // -*- C++ -*-
00002 //
00003 // BELLECharmAnalysis.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_BELLECharmAnalysis_H
00010 #define HERWIG_BELLECharmAnalysis_H
00011 //
00012 // This is the declaration of the BELLECharmAnalysis class.
00013 //
00014 
00015 #include "ThePEG/Handlers/AnalysisHandler.h"
00016 #include "Herwig++/Utilities/Histogram.h"
00017 
00018 namespace Herwig {
00019 
00020 using namespace ThePEG;
00021 
00029 class BELLECharmAnalysis: public AnalysisHandler {
00030 
00031 public:
00032 
00036   BELLECharmAnalysis() : _s(), _onshell(false), _ratioDstar(),
00037                          _ratioDs(), _ratioLambda(), _weight()
00038   {}
00039 
00059   virtual void analyze(tEventPtr event, long ieve, int loop, int state);
00060 
00066   virtual void analyze(const tPVector & particles);
00067 
00072   virtual void analyze(tPPtr particle);
00074 
00075 public:
00076 
00083   void persistentOutput(PersistentOStream & os) const;
00084 
00090   void persistentInput(PersistentIStream & is, int version);
00092 
00099   static void Init();
00100 
00101 protected:
00102 
00109   virtual IBPtr clone() const {return new_ptr(*this);}
00110 
00115   virtual IBPtr fullclone() const {return new_ptr(*this);}
00117 
00118 protected:
00119 
00126   virtual void doinitrun();
00127 
00132   virtual void dofinish();
00134 
00135 private:
00136 
00141   static ClassDescription<BELLECharmAnalysis> initBELLECharmAnalysis;
00142 
00147   BELLECharmAnalysis & operator=(const BELLECharmAnalysis &);
00148 
00149 private:
00150 
00154   Energy2 _s;
00155 
00159   bool _onshell;
00160 
00164   HistogramPtr _histDstarplus;
00165 
00169   HistogramPtr _histDstar0;
00170 
00174   HistogramPtr _histD0;
00175 
00179   HistogramPtr _histDplus;
00180 
00184   HistogramPtr _histDs;
00185 
00189   HistogramPtr _histLambda;
00190 
00198   double _ratioDstar;
00199 
00203   double _ratioDs;
00204 
00208   double _ratioLambda;
00210 
00218   Statistic _statD;
00219 
00223   Statistic _statDstar;
00224   
00228   Statistic _statDs;
00229 
00233   Statistic _statLambda;
00235 
00239   double _weight;
00240 };
00241 
00242 }
00243 
00244 #include "ThePEG/Utilities/ClassTraits.h"
00245 
00246 namespace ThePEG {
00247 
00252 template <>
00253 struct BaseClassTrait<Herwig::BELLECharmAnalysis,1> {
00255   typedef AnalysisHandler NthBase;
00256 };
00257 
00260 template <>
00261 struct ClassTraits<Herwig::BELLECharmAnalysis>
00262   : public ClassTraitsBase<Herwig::BELLECharmAnalysis> {
00264   static string className() { return "Herwig::BELLECharmAnalysis"; }
00272   static string library() { return "HwAnalysis.so HwLEPAnalysis.so"; }
00273 };
00274 
00277 }
00278 
00279 #endif /* HERWIG_BELLECharmAnalysis_H */