BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/DecayChain/include/DecayChain/Iterator/MuteWholeCandidateItr.h
Go to the documentation of this file.
1#ifndef DCHAIN_MUTEWHOLECANDIDATEITR_H
2#define DCHAIN_MUTEWHOLECANDIDATEITR_H
3// -*- C++ -*-
4//
5// Package: DChain
6// Module: MuteWholeCandidateItr
7//
8// Description: Iterator through a entire LabeledList.
9//
10// Usage:
11// <usage>
12//
13// Author: Simon Patton
14// Created: Wed Sep 11 21:51:25 EDT 1996
15// $Id: MuteWholeCandidateItr.h,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
16//
17// Revision history
18//
19// $Log: MuteWholeCandidateItr.h,v $
20// Revision 1.1.1.1 2009/03/03 06:06:56 maqm
21// first import of DecayChain
22//
23// Revision 1.1 2006/01/11 20:28:17 cdj
24// massive class renaming, addition of [] for selection and unit tests
25//
26//
27
28// system include files
29
30// user include files
31#include "DecayChain/Element/LabeledCandidate.h"
32#include "DecayChain/Iterator/candidateitr.h" // distance
33// #include "DecayChain/List/IndexedLabeledCandidates.h"
34
35// forward declarations
36namespace dchain {
37
38 template <class CandidateClass> class IndexedLabeledCandidates;
39 template <class CandidateClass> class LabeledCandidate;
40 template <class CandidateClass> class LabeledCandidateList;
41
42 template <class CandidateClass> class MuteWholeCandidateItr {
43 // friend classses and functions
44 friend class LabeledCandidateList<CandidateClass>;
45
46 public:
47 // constants, enums and typedefs
52 typedef std::random_access_iterator_tag iterator_category;
55
56 // Constructors and destructor
59
60 // assignment operator(s)
63
64 // member functions
73
74 // const member functions
78 bool operator==( const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const;
79 bool operator!=( const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const;
80 bool operator<( const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const;
81 bool operator>( const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const;
82 bool operator>=( const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const;
83 bool operator<=( const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const;
84
85 // static member functions
86
87 protected:
88 // Constructors and destructor
90 const size_type aIndex );
91
92 // protected member functions
93
94 // protected const member functions
97
98 private:
99 // Constructors and destructor
100 MuteWholeCandidateItr(); // stop default
101
102 // private member functions
103
104 // private const member functions
105
106 // data members
107 IndexedLabeledCandidates<CandidateClass>* m_indexedCandidates;
108 size_type m_index;
109
110 // static data members
111 };
112
113 template <class CandidateClass>
115
116 // inline function definitions
117
118 // user include files
119
120 //
121 // forward definitions of inline functions
122 //
123
124 template <class CandidateClass>
127 return ( m_indexedCandidates );
128 }
129
130 template <class CandidateClass>
133 return ( m_index );
134 }
135
136 //
137 // constructors and destructor
138 //
139
140 template <class CandidateClass>
143 : m_indexedCandidates( aOtherItr.indexedCandidates() ), m_index( aOtherItr.index() ) {}
144
145 template <class CandidateClass>
148 : m_indexedCandidates( (IndexedLabeledCandidates<CandidateClass>*)aList )
149 , m_index( aIndex ) {}
150
151 //
152 // assignment operators
153 //
154
155 template <class CandidateClass>
158 const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) {
159 m_indexedCandidates = aOtherItr.indexedCandidates();
160 m_index = aOtherItr.index();
161 return ( *this );
162 }
163
164 //
165 // member functions
166 //
167
168 template <class CandidateClass>
171 ++m_index;
172 return ( *this );
173 }
174
175 template <class CandidateClass>
178 MuteWholeCandidateItr tmp( *this );
179 ++m_index;
180 return ( tmp );
181 }
182
183 template <class CandidateClass>
186 --m_index;
187 return ( *this );
188 }
189
190 template <class CandidateClass>
193 MuteWholeCandidateItr tmp( *this );
194 --m_index;
195 return ( tmp );
196 }
197
198 template <class CandidateClass>
201 m_index += n;
202 return ( *this );
203 }
204
205 template <class CandidateClass>
211
212 template <class CandidateClass>
215 m_index -= n;
216 return ( *this );
217 }
218
219 template <class CandidateClass>
225
226 //
227 // const member functions
228 //
229
230 template <class CandidateClass>
233 return ( ( *m_indexedCandidates ).labeledCandidateClass( m_index ) );
234 }
235
236 template <class CandidateClass>
239 return ( ( *m_indexedCandidates ).labeledCandidateClass( m_index + n ) );
240 }
241
242 template <class CandidateClass>
245 const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const {
246 return ( m_index - aOtherItr.index() );
247 }
248
249 template <class CandidateClass>
251 const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const {
252 return ( ( m_index == aOtherItr.index() ) &&
253 ( m_indexedCandidates == aOtherItr.indexedCandidates() ) );
254 }
255
256 template <class CandidateClass>
258 const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const {
259 return ( ( m_index != aOtherItr.index() ) ||
260 ( m_indexedCandidates != aOtherItr.indexedCandidates() ) );
261 }
262
263 template <class CandidateClass>
265 const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const {
266 return ( ( m_index < aOtherItr.index() ) &&
267 ( m_indexedCandidates == aOtherItr.indexedCandidates() ) );
268 }
269
270 template <class CandidateClass>
272 const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const {
273 return ( ( m_index > aOtherItr.index() ) &&
274 ( m_indexedCandidates == aOtherItr.indexedCandidates() ) );
275 }
276
277 template <class CandidateClass>
279 const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const {
280 return ( ( m_index >= aOtherItr.index() ) &&
281 ( m_indexedCandidates == aOtherItr.indexedCandidates() ) );
282 }
283
284 template <class CandidateClass>
286 const MuteWholeCandidateItr<CandidateClass>& aOtherItr ) const {
287 return ( ( m_index <= aOtherItr.index() ) &&
288 ( m_indexedCandidates == aOtherItr.indexedCandidates() ) );
289 }
290
291 template <class CandidateClass>
294 return ( (CandidateClass*)0 );
295 }
296
297} // namespace dchain
298
299#endif /* DCHAIN_MUTEWHOLECANDIDATEITR_H */
const Int_t n
bool operator==(const MuteWholeCandidateItr< CandidateClass > &aOtherItr) const
IndexedLabeledCandidates< CandidateClass > * indexedCandidates() const
MuteWholeCandidateItr< CandidateClass > & operator+=(difference_type n)
const MuteWholeCandidateItr< CandidateClass > & operator=(const MuteWholeCandidateItr< CandidateClass > &aOtherItr)
bool operator>(const MuteWholeCandidateItr< CandidateClass > &aOtherItr) const
MuteWholeCandidateItr< CandidateClass > operator+(difference_type n)
MuteWholeCandidateItr< CandidateClass > operator-(difference_type n)
bool operator>=(const MuteWholeCandidateItr< CandidateClass > &aOtherItr) const
MuteWholeCandidateItr(IndexedLabeledCandidates< CandidateClass > *aList, const size_type aIndex)
bool operator<(const MuteWholeCandidateItr< CandidateClass > &aOtherItr) const
bool operator!=(const MuteWholeCandidateItr< CandidateClass > &aOtherItr) const
LabeledCandidate< CandidateClass > & operator[](size_type n) const
MuteWholeCandidateItr< CandidateClass > & operator-=(difference_type n)
bool operator<=(const MuteWholeCandidateItr< CandidateClass > &aOtherItr) const
MuteWholeCandidateItr(const MuteWholeCandidateItr< CandidateClass > &aOtherItr)
difference_type operator-(const MuteWholeCandidateItr< CandidateClass > &aOtherItr) const
LabeledCandidate< CandidateClass > * value_type(const MuteWholeCandidateItr< CandidateClass > &)