00001 // -*- C++ -*- 00002 // 00003 // Package: <CleoDChain> 00004 // Module: CDPi0 00005 // 00006 // Description: <one line class summary> 00007 // 00008 // Implementation: 00009 // <Notes on implementation> 00010 // 00011 // Author: David Urner 00012 // Created: Thu Mar 22 16:01:08 EST 2001 00013 // $Id: CDPi0.cxx,v 1.1.1.1 2009/03/03 06:05:56 maqm Exp $ 00014 // 00015 // Revision history 00016 // 00017 // $Log: CDPi0.cxx,v $ 00018 // Revision 1.1.1.1 2009/03/03 06:05:56 maqm 00019 // first import of BesDChain 00020 // 00021 // Revision 1.7 2006/01/11 20:37:25 cdj 00022 // work with renaming done in DChain package 00023 // 00024 // Revision 1.6 2004/03/05 22:01:44 chengp 00025 // implemented Monte Carlo matching 00026 // 00027 // Revision 1.5 2003/05/15 19:58:09 cdj 00028 // revamped memory handling so always use a ReferenceHolder to deal with the reference counting 00029 // 00030 // Revision 1.4 2001/11/15 14:30:31 ajm36 00031 // include PhdPi0 00032 // 00033 // Revision 1.3 2001/11/06 15:20:46 ajm36 00034 // override defaultKinematicData for pi0, eta, ks, lambda 00035 // 00036 // Revision 1.2 2001/04/25 12:52:13 ajm36 00037 // plugged memory leak in ctor for pi0's, k shorts, etas 00038 // 00039 // Revision 1.1 2001/04/11 13:19:03 urner 00040 // transition to files with CD prefix. Addition of new files 00041 // 00042 // Revision 1.2 2001/03/24 03:07:56 cdj 00043 // fixed CDPi0 CDKs and CDEta classes so could properly assess info from CDCandidate class 00044 // 00045 // Revision 1.1 2001/03/23 23:05:29 urner 00046 // added pi0 eta and CDKs decay lists 00047 // 00048 00049 // system include files 00050 00051 // user include files 00052 #include "EvtRecEvent/EvtRecPi0.h" 00053 #include "BesDChain/CDPhoton.h" 00054 #include "BesDChain/util/KinematicData.h" 00055 #include "BesDChain/CDPi0.h" 00056 //zoujh: ... 00057 //#include "AnalEvent/BComposedParticle.h" 00058 00059 // 00060 // constants, enums and typedefs 00061 // 00062 using namespace dchain; 00063 using DecayChain::KinematicData; 00064 00065 // 00066 // constructors and destructor 00067 // 00068 CDPi0::CDPi0(const EvtRecPi0* aVisible) : 00069 m_pi0(aVisible) 00070 { 00071 ReferenceHolder<CDPhoton> tmp = new CDPhoton(aVisible->hiEnGamma()); 00072 addChild(*tmp); 00073 tmp = new CDPhoton(aVisible->loEnGamma()); 00074 addChild(*tmp); 00075 } 00076 00077 // CDPi0::CDPi0( const CDPi0& rhs ) 00078 // { 00079 // // do actual copying here; if you implemented 00080 // // operator= correctly, you may be able to use just say 00081 // *this = rhs; 00082 // } 00083 00084 CDPi0::~CDPi0() 00085 { 00086 } 00087 00088 00089 00090 00091 //------ buildFromCDPi0 ----- 00092 // return `true' as CDPi0 is made up from VisibleEvidence 00093 // 00094 bool CDPi0::builtFromCDPi0() const 00095 { 00096 return true; 00097 } 00098 00099 00100 //------ pi0 ----- 00101 // return NavCDPi0 for this CDPi0 00102 // 00103 const EvtRecPi0* CDPi0::navPi0() const 00104 { 00105 return ( m_pi0 ) ; 00106 } 00107 00108 KinematicData* CDPi0::defaultKinematicData() const 00109 { 00110 return new KinematicData( m_pi0->hiPfit() + m_pi0->loPfit() ); 00111 } 00112 // 00113 // assignment operators 00114 // 00115 // const CDPi0& CDPi0::operator=( const CDPi0& rhs ) 00116 // { 00117 // if( this != &rhs ) { 00118 // // do actual copying here, plus: 00119 // // "SuperClass"::operator=( rhs ); 00120 // } 00121 // 00122 // return *this; 00123 // } 00124 00125 // 00126 // member functions 00127 // 00128 00129 // 00130 // const member functions 00131 //