CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
DCChargedVisibleList.h
Go to the documentation of this file.
1#ifndef DCHAIN_DCCHARGEDVISIBLELIST_H
2#define DCHAIN_DCCHARGEDVISIBLELIST_H
3// -*- C++ -*-
4//
5// Package: DChain
6// Module: ChargedVisibleList
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: DCChargedVisibleList.h,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
16//
17// Revision history
18//
19// $Log: DCChargedVisibleList.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:23 cdj
24// massive class renaming, addition of [] for selection and unit tests
25//
26// Revision 1.4 2003/08/01 13:48:40 mrs43
27// changed plus and minus methods of DCChargedVisibleList to const
28//
29// Revision 1.3 2003/05/15 19:56:06 cdj
30// revamped memory handling so always use a ReferenceHolder to deal with the reference counting
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/ChargedVisibleList.h" // superclass declaration
79#include "DecayChain/List/ChosenChargeList.h" // for return-by-value
83
84// forward declarations
85template < class DecayClass , class CandidateClass > class LabeledParticleList;
86template < class Arg > class DCSelectionFunction ;
87template < class Arg > class DCAnalysisFunction ;
88
89//
90// Note: To avoid a myriad of compiler flags it is easier to
91// have a two parameter template class. The instantiation
92// of this class must look like
93//
94// template class LabeledDecayList< A , A::CandidateClass > ;
95
96template < class Charged , class CandidateClass >
97class DCChargedVisibleList : public dchain::ChargedVisibleList< Charged, CandidateClass >
98{
99 // friend classses and functions
100
101 public:
102 // constants, enums and typedefs
106
107 typedef Charged value_type ;
108
109 // Constructors and destructor
110 DCChargedVisibleList( bool ( * pFunction )( Charged& ) = 0 ) ;
112 bool ( * pFunction )( Charged& ) = 0 ) ;
115 DCSelectionFunction< Charged >& aFunctionalObject ) ;
116 virtual ~DCChargedVisibleList() ;
117
118 // assignment operator(s)
120
121 // member functions
122 // static member functions
123
124 protected:
125 // protected member functions
126 using dchain::ChargedVisibleList<Charged,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<Charged>(), m_function);
133 } else if (m_functionalObject) {
134 fill(first,last,dchain::NewMaker<Charged>(),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 )( Charged& ) ;
153
154 // static data members
155
156} ;
157
158// inline function definitions
159
160// function definitions
162
163#endif /* DCHAIN_DCCHARGEDVISIBLELIST_H */
164
dchain::PartialItr< Charged > const_partial_iterator
dchain::MuteWholeItr< Charged > iterator
void fill(Iterator first, Iterator last)
void fill(const dchain::LabeledParticleList< Charged, CandidateClass > &aList)
const DCChargedVisibleList< Charged, CandidateClass > & operator=(const DCChargedVisibleList< Charged, CandidateClass > &aOtherList)
dchain::WholeItr< Charged > const_iterator