Herwig++
2.7.0
|
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 */