CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
DCNeutralNCVisibleList.h
Go to the documentation of this file.
1#ifndef DCHAIN_DCNEUTRALNCVISIBLELIST_H
2#define DCHAIN_DCNEUTRALNCVISIBLELIST_H
3// -*- C++ -*-
4//
5// Package: DChain
6// Module: NeutralNCVisibleList
7//
8// Description: List to hold Candidate subclasses generated from VisibleEvidence
9//
10// Usage:
11// <usage>
12//
13// Author: Simon Patton
14// Created: Fri Oct 4 11:04:47 EDT 1996
15// $Id: DCNeutralNCVisibleList.h,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
16//
17// Revision history
18//
19// $Log: DCNeutralNCVisibleList.h,v $
20// Revision 1.1.1.1 2009/03/03 06:06:56 maqm
21// first import of DecayChain
22//
23// Revision 1.3 2006/01/11 20:28:27 cdj
24// massive class renaming, addition of [] for selection and unit tests
25//
26// Revision 1.2 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.1 2001/09/11 15:02:27 ajm36
30// add files to do neutral non-conjugating particles
31//
32// Revision 1.2 2000/12/30 19:43:29 cdj
33// no more missing symbols under OSF1
34//
35// Revision 1.1.1.1 2000/12/18 22:16:51 cdj
36// imported DChain
37//
38// Revision 1.11 1998/08/20 19:58:59 sjp
39// Modified to use DChainBoolean
40//
41// Revision 1.10 1998/04/17 19:10:59 sjp
42// Modified to use latest types
43//
44// Revision 1.9 1997/09/17 20:05:27 sjp
45// Removed filling to superclass
46//
47// Revision 1.8 1997/08/28 06:59:44 sjp
48// Modified files to handle complete templating
49//
50// Revision 1.7 1997/08/19 15:55:06 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:09 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:00 sjp
60// Modified to use the new `bug' include files
61//
62// Revision 1.4 1997/01/22 16:27:09 sjp
63// Fixed error in pre-processor labels
64//
65// Revision 1.3 1997/01/21 20:33:37 sjp
66// Changed CPP flags and include because of library reorganization
67//
68// Revision 1.2 1996/12/20 21:19:00 sjp
69// Extended pathnames for Include files
70//
71// Revision 1.1 1996/11/04 19:35:48 sjp
72// New file for new `List' module
73//
74
75// system include files
76
77// user include files
78#include "DecayChain/List/NeutralNCVisibleList.h" // superclass declaration
79#include "DecayChain/List/ChosenConjugateList.h" // for return-by-value
83
84template < class Arg > class DCSelectionFunction ;
85template < class Arg > class DCAnalysisFunction ;
86namespace dchain {
87template < class DecayClass > class MuteWholeItr ;
88template < class DecayClass > class WholeItr ;
89template < class DecayClass > class PartialItr ;
90}
91//
92// Note: To avoid a myriad of compiler flags it is easier to
93// have a two parameter template class. The instantiation
94// of this class must look like
95//
96// template class dchain::LabeledParticleList< A , A::CandidateClass > ;
97
98template < class NeutralNC , class CandidateClass >
99class DCNeutralNCVisibleList : public dchain::NeutralNCVisibleList<NeutralNC, CandidateClass >
100{
101 // friend classses and functions
102
103 public:
104 // constants, enums and typedefs
108
109 typedef NeutralNC value_type ;
110
111 // Constructors and destructor
112 DCNeutralNCVisibleList( bool ( * pFunction )( NeutralNC& ) = 0 ) ;
114 bool ( * pFunction )( NeutralNC& ) = 0 ) ;
117 DCSelectionFunction< NeutralNC >& aFunctionalObject ) ;
118 virtual ~DCNeutralNCVisibleList() ;
119
120 // assignment operator(s)
122
123 // member functions
124
125 protected:
126 // protected member functions
127 using dchain::NeutralNCVisibleList<NeutralNC,CandidateClass>::fill;
129
130 template<class Iterator>
131 void fill(Iterator first, Iterator last) {
132 if ( 0 != m_function ) {
133 fill(first,last, dchain::NewMaker<NeutralNC>(), m_function);
134 } else if (m_functionalObject) {
135 fill(first,last,dchain::NewMaker<NeutralNC>(),m_functionalObject);
136 } else {
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 )( NeutralNC& ) ;
153
154 // static data members
155
156} ;
157
158// inline function definitions
159
160// function definitions
162
163#endif /* DCHAIN_DCNEUTRALNCVISIBLELIST_H */
164
dchain::WholeItr< NeutralNC > const_iterator
dchain::MuteWholeItr< NeutralNC > iterator
dchain::PartialItr< NeutralNC > const_partial_iterator
void fill(const dchain::LabeledParticleList< NeutralNC, CandidateClass > &aList)
void fill(Iterator first, Iterator last)
const DCNeutralNCVisibleList< NeutralNC, CandidateClass > & operator=(const DCNeutralNCVisibleList< NeutralNC, CandidateClass > &aOtherList)