/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/BesDChain/BesDChain-00-00-14/BesDChain/CDDecay.h

Go to the documentation of this file.
00001 #ifndef CLEODCHAIN_CDDECAY_H
00002 #define CLEODCHAIN_CDDECAY_H
00003 // -*- C++ -*-
00004 //
00005 // Package:     CleoDChain
00006 // Module:      CDDecay
00007 // 
00008 // Description: CDDecay candidate built from other candidates
00009 //
00010 // Usage:
00011 //    <usage>
00012 //
00013 // Author:      Simon Patton
00014 // Created:     Wed Sep 18 14:47:30 EDT 1996
00015 // $Id: CDDecay.h,v 1.2 2009/09/22 08:24:41 hujf Exp $
00016 //
00017 // Revision history
00018 //
00019 // $Log: CDDecay.h,v $
00020 // Revision 1.2  2009/09/22 08:24:41  hujf
00021 // see ChangeLog
00022 //
00023 // Revision 1.1.1.1  2009/03/03 06:05:56  maqm
00024 // first import of BesDChain
00025 //
00026 // Revision 1.8  2006/03/17 19:36:47  ponyisi
00027 // Fix mcParticle() to use gammaFSR when available while doing matching
00028 //
00029 // Revision 1.7  2006/01/11 20:37:28  cdj
00030 // work with renaming done in DChain package
00031 //
00032 // Revision 1.6  2004/10/19 13:39:38  cdj
00033 // removed unimplemented CDDecay::parent() method
00034 //
00035 // Revision 1.5  2004/06/02 23:24:55  ryd
00036 // Made constructor of CDDecay from CDCandidate explicit
00037 //
00038 // Revision 1.4  2004/03/05 22:01:49  chengp
00039 // implemented Monte Carlo matching
00040 //
00041 // Revision 1.3  2003/05/15 19:58:15  cdj
00042 // revamped memory handling so always use a ReferenceHolder to deal with the reference counting
00043 //
00044 // Revision 1.2  2002/04/09 20:54:19  lyon
00045 // Added CDDecay::setKinematicData
00046 //
00047 // Revision 1.1  2001/04/11 13:19:14  urner
00048 // transition to files with CD prefix. Addition of new files
00049 //
00050 // Revision 1.3  2001/04/04 15:16:50  cdj
00051 // added a protected default constructor (used for storage)
00052 //
00053 // Revision 1.2  2001/04/03 17:25:57  cdj
00054 // changed isCDDecay to builtFromCDDecay
00055 //
00056 // Revision 1.1.1.1  2000/12/18 22:17:26  cdj
00057 // imported CleoDChain
00058 //
00059 // Revision 1.11  1998/04/17 18:49:12  sjp
00060 // Modifed to use latest CLEO types
00061 //
00062 // Revision 1.10  1997/09/03 14:58:43  sjp
00063 // Use new report.h and KTKinematicData
00064 //
00065 // Revision 1.9  1997/08/29 17:01:19  sjp
00066 // Modified to handle new CDDecay Templated classes
00067 //
00068 // Revision 1.8  1997/08/26 04:02:08  sjp
00069 // Added typedef for CandidateClass
00070 //
00071 // Revision 1.7  1997/08/19 23:01:40  sjp
00072 // Restructured package to be independent of CleoDChain
00073 //
00074 // Revision 1.6  1997/08/19 20:41:37  sjp
00075 // Updated to use <package>/<file>.h include structure.
00076 //   (Note: This version of the code has not been compiled)
00077 //
00078 // Revision 1.5  1997/01/31 20:10:20  sjp
00079 // Modified to use the new `bug' include files
00080 //
00081 // Revision 1.4  1997/01/21 20:30:25  sjp
00082 // Changed CPP flags and include because of library reorganization
00083 //
00084 // Revision 1.3  1997/01/19 20:32:06  sjp
00085 // Changed LargeCount to Count
00086 //
00087 // Revision 1.2  1996/12/20 20:59:50  sjp
00088 // Extended pathname for Includes.
00089 //
00090 // Revision 1.1  1996/11/04 17:01:57  sjp
00091 // New class for CDDecay CDCandidate
00092 //
00093 
00094 // system include files
00095 #include <stdint.h>
00096 #include <vector>
00097 
00098 // user include files
00099 #include "DecayChain/Element/DCChildren.h" // For enumerator
00100 #include "BesDChain/CDCandidate.h" // superclass
00101 #include "DecayChain/Element/ReferenceHolder.h"
00102 
00103 // forward declarations
00104 template < class Arg > class DCAnalysisFunction ;
00105 
00106 namespace DecayChain {
00107    class KinematicData;
00108 }
00109 
00110 class CDDecay : public CDCandidate
00111 {
00112       // friend classses and functions
00113 
00114    public:
00115       // constants, enums and typedefs
00116       typedef CDCandidate CandidateClass ;
00117             
00118       // Constructors and destructor
00119       CDDecay( const CDDecay& aOtherCDDecay ) ;
00120       explicit CDDecay( const CDCandidate& aProduct ) ;
00121       CDDecay( const CDDecay& aProducts  ,
00122              const CDCandidate& aAdditionalProduct ) ;
00123       virtual ~CDDecay() ;
00124 
00125       // member functions
00126       void addChild( const CDCandidate& aAdditionalProduct ) ;
00127 
00128       // Replace the KinematicData for this decay. Useful for
00129       // saving results of a fit.
00130       void setKinematicData( const DecayChain::KinematicData& aKinematicData );
00131       
00132       // const member functions
00133       virtual bool builtFromCDDecay( void ) const ;
00134       virtual const CDDecay& decay( void ) const ;
00135       uint32_t numberChildren() const ;
00136       void iterateChildren( void ( * analyze )( const CDCandidate& ) ) const ;
00137       void iterateChildren( DCAnalysisFunction< CDCandidate >& analyze ) const ;
00138       const CDCandidate& child( unsigned int aPosition ) const ;
00139       const std::vector<dchain::ReferenceHolder<CDCandidate> >& children() const ;
00140       // static member functions
00141       // add for kinematic fit
00142 #ifdef EXTEND
00143       double chisq() const { return m_kmfit_chisq;}
00144       void chisq(double c) { m_kmfit_chisq = c;}
00145       double vchisq() const { return m_vxfit_chisq;}
00146       void vchisq(double c) { m_vxfit_chisq = c;}
00147    protected:
00148       double m_kmfit_chisq;
00149       double m_vxfit_chisq;
00150 #endif
00151    protected:
00152       // Constructors and destructor
00153       CDDecay() ; // used for storage
00154 
00155       // protected member functions
00156       virtual DecayChain::KinematicData* defaultKinematicData() const ;
00157 
00158    private:
00159       // Constructors and destructor
00160 
00161       // assignment operator(s)
00162       const CDDecay& operator=( const CDDecay& aOtherCDDecay ) ; // stop default
00163 
00164       // private member functions
00165 
00166       // data members
00167       std::vector< dchain::ReferenceHolder<CDCandidate> >& m_children ;
00168 
00169       // static data members
00170 
00171 } ;
00172 
00173 typedef const CDDecay& FixedCDDecay ;
00174 typedef CDDecay& PossibleCDDecay ;
00175 
00176 // inline function definitions
00177 
00178 #endif /* CLEODCHAIN_CDDECAY_H */

Generated on Tue Nov 29 22:58:19 2016 for BOSS_7.0.2 by  doxygen 1.4.7