BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/BesDChain/BesDChain/CDDecay.h
Go to the documentation of this file.
1#ifndef CLEODCHAIN_CDDECAY_H
2#define CLEODCHAIN_CDDECAY_H
3// -*- C++ -*-
4//
5// Package: CleoDChain
6// Module: CDDecay
7//
8// Description: CDDecay candidate built from other candidates
9//
10// Usage:
11// <usage>
12//
13// Author: Simon Patton
14// Created: Wed Sep 18 14:47:30 EDT 1996
15// $Id: CDDecay.h,v 1.2 2009/09/22 08:24:41 hujf Exp $
16//
17// Revision history
18//
19// $Log: CDDecay.h,v $
20// Revision 1.2 2009/09/22 08:24:41 hujf
21// see ChangeLog
22//
23// Revision 1.1.1.1 2009/03/03 06:05:56 maqm
24// first import of BesDChain
25//
26// Revision 1.8 2006/03/17 19:36:47 ponyisi
27// Fix mcParticle() to use gammaFSR when available while doing matching
28//
29// Revision 1.7 2006/01/11 20:37:28 cdj
30// work with renaming done in DChain package
31//
32// Revision 1.6 2004/10/19 13:39:38 cdj
33// removed unimplemented CDDecay::parent() method
34//
35// Revision 1.5 2004/06/02 23:24:55 ryd
36// Made constructor of CDDecay from CDCandidate explicit
37//
38// Revision 1.4 2004/03/05 22:01:49 chengp
39// implemented Monte Carlo matching
40//
41// Revision 1.3 2003/05/15 19:58:15 cdj
42// revamped memory handling so always use a ReferenceHolder to deal with the reference counting
43//
44// Revision 1.2 2002/04/09 20:54:19 lyon
45// Added CDDecay::setKinematicData
46//
47// Revision 1.1 2001/04/11 13:19:14 urner
48// transition to files with CD prefix. Addition of new files
49//
50// Revision 1.3 2001/04/04 15:16:50 cdj
51// added a protected default constructor (used for storage)
52//
53// Revision 1.2 2001/04/03 17:25:57 cdj
54// changed isCDDecay to builtFromCDDecay
55//
56// Revision 1.1.1.1 2000/12/18 22:17:26 cdj
57// imported CleoDChain
58//
59// Revision 1.11 1998/04/17 18:49:12 sjp
60// Modifed to use latest CLEO types
61//
62// Revision 1.10 1997/09/03 14:58:43 sjp
63// Use new report.h and KTKinematicData
64//
65// Revision 1.9 1997/08/29 17:01:19 sjp
66// Modified to handle new CDDecay Templated classes
67//
68// Revision 1.8 1997/08/26 04:02:08 sjp
69// Added typedef for CandidateClass
70//
71// Revision 1.7 1997/08/19 23:01:40 sjp
72// Restructured package to be independent of CleoDChain
73//
74// Revision 1.6 1997/08/19 20:41:37 sjp
75// Updated to use <package>/<file>.h include structure.
76// (Note: This version of the code has not been compiled)
77//
78// Revision 1.5 1997/01/31 20:10:20 sjp
79// Modified to use the new `bug' include files
80//
81// Revision 1.4 1997/01/21 20:30:25 sjp
82// Changed CPP flags and include because of library reorganization
83//
84// Revision 1.3 1997/01/19 20:32:06 sjp
85// Changed LargeCount to Count
86//
87// Revision 1.2 1996/12/20 20:59:50 sjp
88// Extended pathname for Includes.
89//
90// Revision 1.1 1996/11/04 17:01:57 sjp
91// New class for CDDecay CDCandidate
92//
93
94// system include files
95#include <stdint.h>
96#include <vector>
97
98// user include files
99#include "DecayChain/Element/DCChildren.h" // For enumerator
100#include "BesDChain/CDCandidate.h" // superclass
101#include "DecayChain/Element/ReferenceHolder.h"
102
103// forward declarations
104template < class Arg > class DCAnalysisFunction ;
105
106namespace DecayChain {
107 class KinematicData;
108}
109
110class CDDecay : public CDCandidate
111{
112 // friend classses and functions
113
114 public:
115 // constants, enums and typedefs
117
118 // Constructors and destructor
119 CDDecay( const CDDecay& aOtherCDDecay ) ;
120 explicit CDDecay( const CDCandidate& aProduct ) ;
121 CDDecay( const CDDecay& aProducts ,
122 const CDCandidate& aAdditionalProduct ) ;
123 virtual ~CDDecay() ;
124
125 // member functions
126 void addChild( const CDCandidate& aAdditionalProduct ) ;
127
128 // Replace the KinematicData for this decay. Useful for
129 // saving results of a fit.
130 void setKinematicData( const DecayChain::KinematicData& aKinematicData );
131
132 // const member functions
133 virtual bool builtFromCDDecay( void ) const ;
134 virtual const CDDecay& decay( void ) const ;
135 uint32_t numberChildren() const ;
136 void iterateChildren( void ( * analyze )( const CDCandidate& ) ) const ;
138 const CDCandidate& child( unsigned int aPosition ) const ;
139 const std::vector<dchain::ReferenceHolder<CDCandidate> >& children() const ;
140 // static member functions
141 // add for kinematic fit
142#ifdef EXTEND
143 double chisq() const { return m_kmfit_chisq;}
144 void chisq(double c) { m_kmfit_chisq = c;}
145 double vchisq() const { return m_vxfit_chisq;}
146 void vchisq(double c) { m_vxfit_chisq = c;}
147 protected:
148 double m_kmfit_chisq;
149 double m_vxfit_chisq;
150#endif
151 protected:
152 // Constructors and destructor
153 CDDecay() ; // used for storage
154
155 // protected member functions
157
158 private:
159 // Constructors and destructor
160
161 // assignment operator(s)
162 const CDDecay& operator=( const CDDecay& aOtherCDDecay ) ; // stop default
163
164 // private member functions
165
166 // data members
167 std::vector< dchain::ReferenceHolder<CDCandidate> >& m_children ;
168
169 // static data members
170
171} ;
172
173typedef const CDDecay& FixedCDDecay ;
175
176// inline function definitions
177
178#endif /* CLEODCHAIN_CDDECAY_H */
void iterateChildren(DCAnalysisFunction< CDCandidate > &analyze) const
const std::vector< dchain::ReferenceHolder< CDCandidate > > & children() const
void addChild(const CDCandidate &aAdditionalProduct)
virtual DecayChain::KinematicData * defaultKinematicData() const
void setKinematicData(const DecayChain::KinematicData &aKinematicData)
CDDecay(const CDDecay &aProducts, const CDCandidate &aAdditionalProduct)
const CDCandidate & child(unsigned int aPosition) const
uint32_t numberChildren() const
void iterateChildren(void(*analyze)(const CDCandidate &)) const
virtual ~CDDecay()
virtual bool builtFromCDDecay(void) const
virtual const CDDecay & decay(void) const
CDDecay(const CDDecay &aOtherCDDecay)
CDDecay(const CDCandidate &aProduct)