00001 #ifndef CLEODCHAIN_CDPHOTON_H 00002 #define CLEODCHAIN_CDPHOTON_H 00003 // -*- C++ -*- 00004 // 00005 // Package: CleoDChain 00006 // Module: CDPhoton 00007 // 00008 // Description: CDPhoton candidate built from shower 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: CDPhoton.h,v 1.2 2010/01/11 08:05:20 zoujh Exp $ 00016 // 00017 // Revision history 00018 // 00019 // $Log: CDPhoton.h,v $ 00020 // Revision 1.2 2010/01/11 08:05:20 zoujh 00021 // Add setIP for vertex correction 00022 // 00023 // Revision 1.1.1.1 2009/03/03 06:05:56 maqm 00024 // first import of BesDChain 00025 // 00026 // Revision 1.2 2004/03/05 22:01:50 chengp 00027 // implemented Monte Carlo matching 00028 // 00029 // Revision 1.1 2001/04/11 13:19:20 urner 00030 // transition to files with CD prefix. Addition of new files 00031 // 00032 // Revision 1.2 2001/03/23 23:05:37 urner 00033 // added pi0 eta and CDKs decay lists 00034 // 00035 // Revision 1.1.1.1 2000/12/18 22:17:26 cdj 00036 // imported CleoDChain 00037 // 00038 // Revision 1.13 1998/04/17 18:52:24 sjp 00039 // Modifed to use latest CLEO types 00040 // 00041 // Revision 1.12 1997/12/23 21:54:49 sjp 00042 // Modified package to be completely templated 00043 // 00044 // Revision 1.11 1997/09/03 14:58:45 sjp 00045 // Use new report.h and KTKinematicData 00046 // 00047 // Revision 1.10 1997/08/29 17:01:22 sjp 00048 // Modified to handle new CDDecay Templated classes 00049 // 00050 // Revision 1.9 1997/08/19 20:41:39 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.8 1997/01/21 20:30:26 sjp 00055 // Changed CPP flags and include because of library reorganization 00056 // 00057 // Revision 1.7 1996/12/20 21:02:01 sjp 00058 // Extended pathname for Include. 00059 // 00060 // Revision 1.6 1996/11/04 17:01:39 sjp 00061 // Updated to work with new CDCandidate 00062 // 00063 00064 // system include files 00065 00066 // user include files 00067 #include "BesDChain/CDCandidate.h" 00068 00069 // forward declarations 00070 namespace DecayChain { 00071 class KinematicData; 00072 } 00073 00074 class EvtRecTrack; 00075 00076 class CDPhoton : public CDCandidate 00077 { 00078 // friend classses and functions 00079 00080 public: 00081 // constants, enums and typedefs 00082 typedef CDCandidate CandidateClass ; 00083 typedef EvtRecTrack VisibleEvidence ; 00084 00085 // Constructors and destructor 00086 CDPhoton( const VisibleEvidence* aVisible ) ; 00087 CDPhoton( const CDPhoton& aOtherCDPhoton ) ; 00088 virtual ~CDPhoton() ; 00089 00090 // member functions 00091 00092 // const member functions 00093 virtual bool builtFromCDPhoton() const ; 00094 virtual const EvtRecTrack* photon() const ; 00095 inline virtual DBCandidate::Hypo hypo() const; 00096 00097 // static member functions 00098 //set event IP point 00099 static bool setIP(double x, double y, double z) { 00100 m_IPV.set(x, y, z); 00101 } 00102 00103 protected: 00104 // Constructors and destructor 00105 00106 // protected member functions 00107 00108 // protected const member functions 00109 virtual DecayChain::KinematicData* defaultKinematicData() const; 00110 00111 private: 00112 // Constructors and destructor 00113 CDPhoton() ; // stop default 00114 00115 // assignment operator(s) 00116 const CDPhoton& operator=( const CDPhoton& aOtherCDPhoton ) ; // stop default 00117 00118 // private member functions 00119 00120 // private const member functions 00121 00122 // data members 00123 const VisibleEvidence* m_visibleEvidence ; 00124 00125 // static data members 00126 static Hep3Vector m_IPV; //IP point 00127 00128 } ; 00129 00130 typedef const CDPhoton& FixedCDPhoton ; 00131 typedef CDPhoton& PossibleCDPhoton ; 00132 00133 // inline function definitions 00134 inline DBCandidate::Hypo CDPhoton::hypo() const 00135 { 00136 return DBCandidate::kPhoton; 00137 } 00138 00139 #endif /* CLEODCHAIN_CDPHOTON_H */