Herwig++
2.7.0
|
00001 // -*- C++ -*- 00002 // 00003 // IdentifiedParticleAnalysis.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_IdentifiedParticleAnalysis_H 00010 #define HERWIG_IdentifiedParticleAnalysis_H 00011 // 00012 // This is the declaration of the IdentifiedParticleAnalysis class. 00013 // 00014 00015 #include "ThePEG/Repository/CurrentGenerator.h" 00016 #include "ThePEG/Handlers/AnalysisHandler.h" 00017 #include "ThePEG/Repository/EventGenerator.h" 00018 #include "Herwig++/Utilities/Histogram.h" 00019 #include "ThePEG/Vectors/Lorentz5Vector.h" 00020 00021 namespace Herwig { 00022 00023 using namespace ThePEG; 00024 00032 class IdentifiedParticleAnalysis: public AnalysisHandler { 00033 00034 public: 00035 00055 virtual void analyze(tEventPtr event, long ieve, int loop, int state); 00056 00057 public: 00058 00065 static void Init(); 00066 00067 protected: 00068 00072 int getFlavour(const tPVector &); 00073 00074 double getX(const Lorentz5Momentum & p, const Energy & Ebeam) { 00075 return Ebeam > ZERO ? double(p.vect().mag()/Ebeam) : -1.; 00076 } 00077 00078 protected: 00079 00086 virtual IBPtr clone() const {return new_ptr(*this);} 00087 00092 virtual IBPtr fullclone() const {return new_ptr(*this);} 00094 00095 protected: 00096 00103 virtual void doinitrun(); 00104 00109 virtual void dofinish(); 00111 00112 private: 00113 00118 static NoPIOClassDescription<IdentifiedParticleAnalysis> 00119 initIdentifiedParticleAnalysis; 00120 00125 IdentifiedParticleAnalysis & operator=(const IdentifiedParticleAnalysis &); 00126 00127 private: 00128 00136 HistogramPtr _xpa; 00137 00141 HistogramPtr _xpl; 00142 00146 HistogramPtr _xpc; 00147 00151 HistogramPtr _xpb; 00152 00156 HistogramPtr _pipma; 00157 00161 HistogramPtr _pipml; 00162 00166 HistogramPtr _pipmc; 00167 00171 HistogramPtr _pipmb; 00172 00176 HistogramPtr _pipm; 00177 00181 HistogramPtr _kpma; 00182 00186 HistogramPtr _kpml; 00187 00191 HistogramPtr _kpmc; 00192 00196 HistogramPtr _kpmb; 00197 00201 HistogramPtr _kpm; 00202 00203 00207 HistogramPtr _ppma; 00208 00212 HistogramPtr _ppml; 00213 00217 HistogramPtr _ppmc; 00218 00222 HistogramPtr _ppmb; 00223 00227 HistogramPtr _ppm; 00228 00232 HistogramPtr _udsxp; 00233 00237 HistogramPtr _udsxip; 00238 00242 HistogramPtr _lpm; 00243 00247 HistogramPtr _xpKstarplus; 00248 00252 HistogramPtr _xpXiminus; 00253 00257 HistogramPtr _xiXiminus; 00258 00262 HistogramPtr _xpSigmaplus; 00263 00267 HistogramPtr _xiSigmaplus; 00268 00272 HistogramPtr _xpSigmaminus; 00273 00277 HistogramPtr _xiSigmaminus; 00278 00282 HistogramPtr _xpXi0; 00283 00287 HistogramPtr _xiXi0; 00288 00292 HistogramPtr _xpLambda1520; 00293 00297 HistogramPtr _xiLambda1520; 00298 00302 HistogramPtr _xeDelta; 00303 00307 HistogramPtr _xpf980; 00308 00312 HistogramPtr _xpphi; 00313 00317 HistogramPtr _xpf2; 00318 00322 HistogramPtr _xpKstar0; 00323 00327 HistogramPtr _xpK0; 00328 00332 HistogramPtr _xerho0; 00333 00337 HistogramPtr _xepi0; 00338 00342 HistogramPtr _xipi0; 00343 00347 HistogramPtr _xeeta; 00348 00352 HistogramPtr _xieta; 00353 00357 HistogramPtr _xeetap; 00358 00362 HistogramPtr _xietap; 00363 00367 HistogramPtr _xeomega; 00368 00372 HistogramPtr _xiomega; 00373 00377 HistogramPtr _xerhop; 00378 00382 HistogramPtr _xirhop; 00383 00387 HistogramPtr _xea_0p; 00388 00392 HistogramPtr _xia_0p; 00393 00397 HistogramPtr _xeD0; 00398 00402 HistogramPtr _xeDstar; 00403 00404 }; 00405 00406 } 00407 00408 #include "ThePEG/Utilities/ClassTraits.h" 00409 00410 namespace ThePEG { 00411 00416 template <> 00417 struct BaseClassTrait<Herwig::IdentifiedParticleAnalysis,1> { 00419 typedef AnalysisHandler NthBase; 00420 }; 00421 00424 template <> 00425 struct ClassTraits<Herwig::IdentifiedParticleAnalysis> 00426 : public ClassTraitsBase<Herwig::IdentifiedParticleAnalysis> { 00428 static string className() { return "Herwig::IdentifiedParticleAnalysis"; } 00432 static string library() { return "HwAnalysis.so HwLEPAnalysis.so"; } 00433 }; 00434 00437 } 00438 00439 #endif /* HERWIG_IdentifiedParticleAnalysis_H */