BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
DCDecayList.cc
Go to the documentation of this file.
1#ifndef DCHAIN_DCDECAYLIST_CC
2#define DCHAIN_DCDECAYLIST_CC
3// -*- C++ -*-
4//
5// Package: DChain
6// Module: DecayList
7//
8// Description: container of subclasses of Decay, used for iteration
9//
10// Implimentation:
11// <Notes on implimentation>
12//
13// Author: Simon Patton
14// Created: Fri Oct 4 11:04:56 EDT 1996
15// $Id: DCDecayList.cc,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
16//
17// Revision history
18//
19// $Log: DCDecayList.cc,v $
20// Revision 1.1.1.1 2009/03/03 06:06:56 maqm
21// first import of DecayChain
22//
23// Revision 1.8 2006/02/03 18:29:34 cdj
24// fixed bug in copy constructor and operator=
25//
26// Revision 1.7 2006/01/11 20:28:38 cdj
27// massive class renaming, addition of [] for selection and unit tests
28//
29// Revision 1.6 2003/10/23 18:43:41 cdj
30// can now use DCDecayList with other Decay objects
31//
32// Revision 1.5 2003/05/16 18:33:39 cdj
33// previous change now works properly on OSF
34//
35// Revision 1.4 2003/05/15 19:56:12 cdj
36// revamped memory handling so always use a ReferenceHolder to deal with the reference counting
37//
38// Revision 1.3 2003/03/13 20:19:16 cleo3
39// now compiles under Linux
40//
41// Revision 1.2 2001/03/23 23:07:48 urner
42// modification needed to add pi0 eta and Ks decay lists in CleoDChain
43//
44// Revision 1.1.1.1 2000/12/18 22:16:55 cdj
45// imported DChain
46//
47// Revision 1.13 1998/08/20 20:00:07 sjp
48// Modified to use DChainBoolean
49//
50// Revision 1.12 1998/08/19 20:46:18 sjp
51// Fixed comments and removed report references
52//
53// Revision 1.11 1998/06/30 23:42:06 sjp
54// Cleaned up return object from labeledCandidateList
55//
56// Revision 1.10 1998/05/01 20:20:03 sjp
57// Removed unnecessary functions which were causing infinate loop
58//
59// Revision 1.9 1998/04/17 19:14:45 sjp
60// Modified to use latest type
61//
62// Revision 1.8 1997/09/03 14:58:17 sjp
63// Use new report.h and TBParticlePoint
64//
65// Revision 1.7 1997/08/28 07:00:15 sjp
66// Modified files to handle complete templating
67//
68// Revision 1.6 1997/08/19 23:02:31 sjp
69// Restructured package to be independent of Rock
70//
71// Revision 1.5 1997/08/15 21:32:58 sjp
72// Updated to use <package>/<file>.h include structure.
73// Updated to use bug flags specified in Experiement.h
74//
75// Revision 1.4 1997/01/31 20:17:26 sjp
76// Modified to use the new `bug' include files
77//
78// Revision 1.3 1997/01/21 20:34:38 sjp
79// Changed CPP flags and include because of library reorganization
80//
81// Revision 1.2 1996/12/20 21:16:01 sjp
82// Ammended to allow for LabaledLists being reference counted.
83// Added dropLink() for all created entries.
84//
85// Revision 1.1 1996/11/04 19:36:49 sjp
86// New file for new `List' module
87//
88
89// system include files
90#include <stdlib.h> // required for 'exit'
91#include <iostream>
92
93// user include files
104
106
107//
108// constants, enums and typedefs
109//
110
111//
112// static data member definitions
113//
114
115//
116// constructors and destructor
117//
118template < class DecayClass , class CandidateClass >
119DCDecayList< DecayClass , CandidateClass >::DCDecayList( bool ( * pFunction )( DecayClass& ) ) :
120 m_function( pFunction ) ,
121 m_functionalObject( 0 )
122{
123}
124
125template < class DecayClass , class CandidateClass >
127 bool ( * pFunction )( DecayClass& ) ) :
128 dchain::DecayList<DecayClass,CandidateClass>(),
129 m_function( pFunction ) ,
130 m_functionalObject( 0 )
131{
132 fill( aOtherList ) ;
133}
134
135template < class DecayClass , class CandidateClass >
137 m_function( 0 ) ,
138 m_functionalObject( &aFunctionalObject )
139{
140}
141
142
143template < class DecayClass , class CandidateClass >
145 dchain::DecayList<DecayClass,CandidateClass>(aLabeledList, aLabel),
146 m_function( 0 ) ,
147 m_functionalObject( 0 )
148{
149}
150
151//
152// assignment operators
153//
154
155template < class DecayClass , class CandidateClass >
157{
158 //std::cout << "@DCDecayList::operator=() ... (CombinatoricList)" << std::endl;
159 this->erase();
160 fill(aOtherList);
161 //static_cast<dchain::DecayList<DecayClass,CandidateClass>&>(*this)=aOtherList;
162 return *this;
163}
164
165//
166// member functions
167//
168
169
170//
171// const member functions
172//
173
174
175
176//
177// static member functions
178//
179
180#endif /* DCHAIN_DCDECAYLIST_CC */
void fill(NTuple::Array< double > &nt_p4, const HepLorentzVector &p4)
Definition: MyUtil.cxx:3
const DCDecayList< DecayClass, CandidateClass > & operator=(const DCDecayList< TDecay, CandidateClass > &aOtherList)
Definition: DCDecayList.h:167
DCDecayList(bool(*pFunction)(DecayClass &)=0)
Definition: DCDecayList.cc:119