BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
DCNeutralVisibleList.h
Go to the documentation of this file.
1#ifndef DCHAIN_DCNEUTRALVISIBLELIST_H
2#define DCHAIN_DCNEUTRALVISIBLELIST_H
3// -*- C++ -*-
4//
5// Package: DChain
6// Module: NeutralVisibleList
7//
8// Description: List to hold Candidates generated from observed Tracks.
9//
10// Usage:
11// <usage>
12//
13// Author: Simon Patton
14// Created: Fri Oct 4 11:04:47 EDT 1996
15// $Id: DCNeutralVisibleList.h,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
16//
17// Revision history
18//
19// $Log: DCNeutralVisibleList.h,v $
20// Revision 1.1.1.1 2009/03/03 06:06:56 maqm
21// first import of DecayChain
22//
23// Revision 1.5 2006/01/11 20:28:27 cdj
24// massive class renaming, addition of [] for selection and unit tests
25//
26// Revision 1.4 2003/05/15 19:56:08 cdj
27// revamped memory handling so always use a ReferenceHolder to deal with the reference counting
28//
29// Revision 1.3 2001/03/28 14:27:58 urner
30// added same workaround as for charged because of NonTemplatedMemberFunctionBug
31//
32// Revision 1.2 2001/03/23 23:07:44 urner
33// modification needed to add pi0 eta and Ks decay lists in CleoDChain
34//
35// Revision 1.1.1.1 2000/12/18 22:16:53 cdj
36// imported DChain
37//
38// Revision 1.11 1998/08/20 19:59:05 sjp
39// Modified to use DChainBoolean
40//
41// Revision 1.10 1998/04/17 19:11:05 sjp
42// Modified to use latest types
43//
44// Revision 1.9 1997/09/17 20:05:29 sjp
45// Removed filling to superclass
46//
47// Revision 1.8 1997/08/28 06:59:56 sjp
48// Modified files to handle complete templating
49//
50// Revision 1.7 1997/08/19 15:55:10 sjp
51// Modified list to have no dependence on any other
52// structures except its contents, which must have
53// certain `typedef' available to use.
54//
55// Revision 1.6 1997/08/15 21:32:39 sjp
56// Updated to use <package>/<file>.h include structure.
57// Updated to use bug flags specified in Experiement.h
58//
59// Revision 1.5 1997/01/31 20:17:14 sjp
60// Modified to use the new `bug' include files
61//
62// Revision 1.4 1997/01/22 16:27:32 sjp
63// Fixed error in pre-processor labels
64//
65// Revision 1.3 1997/01/21 20:34:06 sjp
66// Changed CPP flags and include because of library reorganization
67//
68// Revision 1.2 1996/12/20 21:19:23 sjp
69// Extended pathnames for Include files
70//
71// Revision 1.1 1996/11/04 19:36:11 sjp
72// New file for new `List' module
73//
74
75// system include files
76
77// user include files
78#include "DecayChain/List/NeutralVisibleList.h" // superclass declaration
82
83// forward declarations
84
85//
86// Note: To avoid a myriad of conpiler flags it is easier to
87// have a two parameter template class. The instantiation
88// of this class must look like
89//
90// template class LabeledDecayList< A , A::CandidateClass > ;
91
92template< class Neutral , class CandidateClass >
93class DCNeutralVisibleList : public dchain::NeutralVisibleList< Neutral, CandidateClass >
94{
95 // friend classses and functions
96
97 public:
98 // constants, enums and typedefs
99 /*
100 typedef dchain::MuteWholeItr< Neutral > iterator ;
101 typedef dchain::WholeItr< Neutral > const_iterator ;
102 //typedef dchain::PartialItr< Neutral > const_partial_iterator ;
103 */
104 typedef Neutral value_type ;
105
106 // Constructors and destructor
107 DCNeutralVisibleList( bool ( * pFunction )( Neutral& ) = 0 ) ;
109 bool ( * pFunction )( Neutral& ) = 0 ) ;
112 DCSelectionFunction< Neutral >& aFunctionalObject ) ;
113 virtual ~DCNeutralVisibleList() ;
114
115 // assignment operator(s)
117
118 // member functions
119
120 // const member functions
121
122 // static member functions
123
124 protected:
125 // protected member functions
126 using dchain::NeutralVisibleList<Neutral,CandidateClass>::fill;
128
129 template<class Iterator>
130 void fill(Iterator first, Iterator last) {
131 if ( 0 != m_function ) {
132 fill(first,last, dchain::NewMaker<Neutral>(), m_function);
133 } else if (m_functionalObject) {
134 fill(first,last,dchain::NewMaker<Neutral>(),m_functionalObject);
135 } else {
137 }
138 }
139
140
141 // protected const member functions
142
143 private:
144 // Constructors and destructor
145
146 // private member functions
147
148 // private const member functions
149
150 // data members
151 bool ( * m_function )( Neutral& ) ;
153
154 // static data members
155
156} ;
157
158// inline function definitions
159
160// function definitions
162
163#endif /* DCHAIN_DCNEUTRALVISIBLELIST_H */
const DCNeutralVisibleList< Neutral, CandidateClass > & operator=(const DCNeutralVisibleList< Neutral, CandidateClass > &aOtherList)
void fill(Iterator first, Iterator last)
void fill(const dchain::LabeledParticleList< Neutral, CandidateClass > &aList)