00001 #ifndef CLEODCHAIN_CDCHARGEDVISIBLE_H 00002 #define CLEODCHAIN_CDCHARGEDVISIBLE_H 00003 // -*- C++ -*- 00004 // 00005 // Package: CleoDChain 00006 // Module: CDChargedVisible 00007 // 00008 // Description: CDCharged candidate built from charged or truth table 00009 // 00010 // Usage: 00011 // <usage> 00012 // 00013 // Author: Simon Patton 00014 // Created: Wed Sep 18 14:47:30 EDT 1996 00015 // $Id: CDChargedVisible.h,v 1.1.1.1 2009/03/03 06:05:56 maqm Exp $ 00016 // 00017 // Revision history 00018 // 00019 // $Log: CDChargedVisible.h,v $ 00020 // Revision 1.1.1.1 2009/03/03 06:05:56 maqm 00021 // first import of BesDChain 00022 // 00023 // Revision 1.2 2004/03/05 22:01:49 chengp 00024 // implemented Monte Carlo matching 00025 // 00026 // Revision 1.1 2001/04/11 13:19:13 urner 00027 // transition to files with CD prefix. Addition of new files 00028 // 00029 // Revision 1.3 2001/04/03 17:26:43 cdj 00030 // moved builtFromCDCharged to builtFromTrack 00031 // 00032 // Revision 1.2 2001/03/23 23:05:34 urner 00033 // added pi0 eta and CDKs decay lists 00034 // 00035 // Revision 1.1.1.1 2000/12/18 22:17:25 cdj 00036 // imported CleoDChain 00037 // 00038 // Revision 1.18 1998/04/17 18:52:21 sjp 00039 // Modifed to use latest CLEO types 00040 // 00041 // Revision 1.17 1997/12/23 21:54:47 sjp 00042 // Modified package to be completely templated 00043 // 00044 // Revision 1.16 1997/09/03 14:58:42 sjp 00045 // Use new report.h and KTKinematicData 00046 // 00047 // Revision 1.15 1997/08/29 17:01:17 sjp 00048 // Modified to handle new Cairn Templated classes 00049 // 00050 // Revision 1.14 1997/08/19 20:41:32 sjp 00051 // Updated to use <package>/<file>.h include structure. 00052 // (Note: This version of the code has not been compiled) 00053 // 00054 // Revision 1.13 1997/01/31 20:10:18 sjp 00055 // Modified to use the new `bug' include files 00056 // 00057 // Revision 1.12 1997/01/21 20:30:23 sjp 00058 // Changed CPP flags and include because of library reorganization 00059 // 00060 // Revision 1.11 1996/12/20 21:01:42 sjp 00061 // Extended pathname for Includes. 00062 // 00063 // Revision 1.10 1996/11/04 17:01:27 sjp 00064 // Changed name to CDChargedVisible 00065 // 00066 00067 // system include files 00068 00069 // user include files 00070 #include "BesDChain/DBCandidate.h" // for enumerator 00071 #include "BesDChain/CDCandidate.h" 00072 00073 // forward declarations 00074 namespace DecayChain { 00075 class KinematicData; 00076 } 00077 00078 class EvtRecTrack; 00079 //zoujh: should be replaced in the future 00080 //class BPion; 00081 //class BKaon; 00082 00083 template < DBCandidate::Hypo H > 00084 class CDChargedVisible : public CDCandidate 00085 { 00086 // friend classes and functions 00087 00088 public: 00089 // constants, enums and typedefs 00090 typedef CDCandidate CandidateClass ; 00091 typedef EvtRecTrack VisibleEvidence ; 00092 00093 // Constructors and destructor 00094 CDChargedVisible( const EvtRecTrack* aVisible ) ; 00095 //zoujh: ... 00096 //CDChargedVisible( BPion* aPion ) ; 00097 //CDChargedVisible( BKaon* aKaon ) ; 00098 00099 CDChargedVisible( const CDChargedVisible< H >& aOtherCDChargedVisible ) ; 00100 virtual ~CDChargedVisible() ; 00101 00102 // member functions 00103 00104 // const member functions 00105 virtual bool builtFromTrack() const ; 00106 virtual const EvtRecTrack* track() const ; 00107 inline virtual DBCandidate::Hypo hypo() const; 00108 00109 // static member functions 00110 00111 protected: 00112 // Constructors and destructor 00113 00114 // protected member functions 00115 00116 // protected const member functions 00117 virtual DecayChain::KinematicData* defaultKinematicData() const; 00118 00119 private: 00120 // Constructors and destructor 00121 CDChargedVisible() ; // stop default 00122 00123 // assignment operator(s) 00124 const CDChargedVisible& operator=( const CDChargedVisible< H >& aOtherCDChargedVisible ) ; // stop default 00125 00126 // private member functions 00127 00128 // private const member functions 00129 00130 // data members 00131 const VisibleEvidence* m_visibleEvidence ; 00132 00133 // static data members 00134 00135 } ; 00136 00137 template < DBCandidate::Hypo H > 00138 inline DBCandidate::Hypo CDChargedVisible<H>::hypo() const 00139 { 00140 return H; 00141 } 00142 00143 #include "BesDChain/Template/CDChargedVisible.cc" 00144 00145 #endif /* CLEODCHAIN_CDCHARGEDVISIBLE_H */