Herwig++
2.7.0
|
00001 // -*- C++ -*- 00002 #ifndef HERWIG_AcerDet_H 00003 #define HERWIG_AcerDet_H 00004 // 00005 // This is the declaration of the AcerDet class. 00006 // 00007 00008 #include "ThePEG/Handlers/AnalysisHandler.h" 00009 #include "HepMC/GenEvent.h" 00010 #include "HepMC/IO_HEPEVT.h" 00011 00012 namespace Herwig { 00013 00014 using namespace ThePEG; 00015 00023 class AcerDet: public AnalysisHandler { 00024 00025 public: 00026 00030 inline AcerDet() {} 00031 00051 virtual void analyze(tEventPtr event, long ieve, int loop, int state); 00053 00054 public: 00055 00063 inline unsigned int numberOfPhotons() const {return _nphoton;} 00064 00068 inline const vector<LorentzMomentum> & photonMomentum() const {return _photonMomentum;} 00069 00073 inline unsigned int numberOfLeptons() const {return _nlepton;} 00074 00078 inline const vector<LorentzMomentum> & leptonMomentum() const {return _leptonMomentum;} 00079 00083 inline const vector<int> & leptonID() const {return _leptonID;} 00084 00088 inline unsigned int numberOfJets() const {return _njet;} 00089 00093 inline const vector<LorentzMomentum> & jetMomentum() const {return _jetMomentum;} 00094 00099 inline const vector<int> & jetID() const {return _jetID;} 00100 00105 inline const pair<Energy,Energy> & missingETCalorimeter() const {_etcalo;} 00106 00111 inline const pair<Energy,Energy> & missingETNeutrino() const {_etneutrino;} 00112 00117 inline const pair<Energy,Energy> & missingETStable() const {_etstable;} 00119 00120 public: 00121 00128 static void Init(); 00129 00130 protected: 00131 00138 inline virtual IBPtr clone() const {return new_ptr(*this);} 00139 00144 inline virtual IBPtr fullclone() const {return new_ptr(*this);} 00146 00147 protected: 00148 00155 virtual void doinitrun(); 00156 00161 virtual void dofinish(); 00163 00164 private: 00165 00170 static NoPIOClassDescription<AcerDet> initAcerDet; 00171 00176 AcerDet & operator=(const AcerDet &); 00177 00178 private: 00179 00183 HepMC::IO_HEPEVT * _converter; 00184 00188 unsigned int _nphoton; 00189 00193 vector<LorentzMomentum> _photonMomentum; 00194 00198 unsigned int _nlepton; 00199 00203 vector<LorentzMomentum> _leptonMomentum; 00204 00208 vector<int> _leptonID; 00209 00213 unsigned int _njet; 00214 00218 vector<LorentzMomentum> _jetMomentum; 00219 00223 vector<int> _jetID; 00224 00228 pair<Energy,Energy> _etcalo; 00229 00233 pair<Energy,Energy> _etneutrino; 00234 00238 pair<Energy,Energy> _etstable; 00239 }; 00240 00241 } 00242 00243 #include "ThePEG/Utilities/ClassTraits.h" 00244 00245 namespace ThePEG { 00246 00251 template <> 00252 struct BaseClassTrait<Herwig::AcerDet,1> { 00254 typedef AnalysisHandler NthBase; 00255 }; 00256 00259 template <> 00260 struct ClassTraits<Herwig::AcerDet> 00261 : public ClassTraitsBase<Herwig::AcerDet> { 00263 static string className() { return "Herwig::AcerDet"; } 00271 static string library() { return "HwAcerDet.so"; } 00272 }; 00273 00276 } 00277 00278 #endif /* HERWIG_AcerDet_H */