Herwig++
2.7.0
|
00001 // -*- C++ -*- 00002 #ifndef HERWIG_SemiLeptonicDPiAnalysis_H 00003 #define HERWIG_SemiLeptonicDPiAnalysis_H 00004 // 00005 // This is the declaration of the SemiLeptonicDPiAnalysis class. 00006 // 00007 00008 #include "ThePEG/Handlers/AnalysisHandler.h" 00009 #include "Herwig++/Utilities/Histogram.h" 00010 #include "ThePEG/EventRecord/Event.h" 00011 00012 namespace Herwig { 00013 00014 using namespace ThePEG; 00015 00022 class SemiLeptonicDPiAnalysis: public AnalysisHandler { 00023 00024 public: 00025 00045 virtual void analyze(tEventPtr event, long ieve, int loop, int state); 00046 00053 virtual LorentzRotation transform(tEventPtr event) const; 00054 00060 virtual void analyze(const tPVector & particles); 00061 00066 virtual void analyze(tPPtr particle); 00068 00069 public: 00070 00077 void persistentOutput(PersistentOStream & os) const; 00078 00084 void persistentInput(PersistentIStream & is, int version); 00086 00093 static void Init(); 00094 00095 protected: 00096 00103 inline virtual IBPtr clone() const {return new_ptr(*this);} 00104 00109 inline virtual IBPtr fullclone() const {return new_ptr(*this);} 00111 00112 00113 protected: 00114 00121 virtual void dofinish(); 00123 00124 protected: 00125 00129 void findChildren(tPPtr,ParticleVector &); 00130 00131 private: 00132 00137 static ClassDescription<SemiLeptonicDPiAnalysis> initSemiLeptonicDPiAnalysis; 00138 00143 SemiLeptonicDPiAnalysis & operator=(const SemiLeptonicDPiAnalysis &); 00144 00145 private: 00146 00150 vector<int> _incoming; 00151 00155 vector<int> _outgoingD; 00156 00160 vector<int> _outgoingP; 00161 00165 vector<long> _outgoingL; 00166 00170 vector<HistogramPtr> _energy; 00171 00175 vector<HistogramPtr> _scale; 00176 00180 vector<HistogramPtr> _mDpi; 00181 00182 }; 00183 00184 } 00185 00186 #include "ThePEG/Utilities/ClassTraits.h" 00187 00188 namespace ThePEG { 00189 00194 template <> 00195 struct BaseClassTrait<Herwig::SemiLeptonicDPiAnalysis,1> { 00197 typedef AnalysisHandler NthBase; 00198 }; 00199 00202 template <> 00203 struct ClassTraits<Herwig::SemiLeptonicDPiAnalysis> 00204 : public ClassTraitsBase<Herwig::SemiLeptonicDPiAnalysis> { 00206 static string className() { return "Herwig::SemiLeptonicDPiAnalysis"; } 00214 static string library() { return "HwDecayAnalysis.so"; } 00215 }; 00216 00219 } 00220 00221 #endif /* HERWIG_SemiLeptonicDPiAnalysis_H */