00001 //----------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: EvtDecayMode.hh,v 1.1.1.2 2007/10/26 05:03:14 pingrg Exp $ 00004 // 00005 // Environment: 00006 // This software is part of the EvtGen package developed jointly 00007 // for the BaBar and CLEO collaborations. If you use all or part 00008 // of it, please give an appropriate acknowledgement. 00009 // 00010 // Copyright Information: 00011 // Copyright (C) 1998 Caltech, UCSB 00012 // 00013 // Module creator: 00014 // Alexei Dvoretskii, Caltech, 2001-2002. 00015 //----------------------------------------------------------------------- 00016 00017 #ifndef EVT_DECAY_MODE_HH 00018 #define EVT_DECAY_MODE_HH 00019 00020 #include <string> 00021 #include <vector> 00022 #include "EvtGenBase/EvtCyclic3.hh" 00023 00024 #include <iosfwd> 00025 00026 class EvtDecayMode { 00027 00028 public: 00029 00030 EvtDecayMode(const char* decay); 00031 EvtDecayMode(const EvtDecayMode& other); 00032 EvtDecayMode(std::string mother,std::vector<std::string> dau); 00033 ~EvtDecayMode(); 00034 00035 const char* mother() const; 00036 int nD() const; 00037 const char* dau(int i) const; 00038 00039 std::ostream& print(std::ostream&) const; 00040 00041 00042 // Frequent name combinations 00043 00044 const char* m(EvtCyclic3::Pair i) const; 00045 const char* q(EvtCyclic3::Pair i) const; 00046 const char* dal(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const; 00047 const char* mode() const; 00048 00049 private: 00050 00051 std::string _mother; 00052 std::vector<std::string> _dau; 00053 00054 }; 00055 00056 00057 std::ostream& operator<<(std::ostream&,const EvtDecayMode&); 00058 00059 #endif