1#ifndef DCHAIN_CHARGEDVISIBLELIST_H
2#define DCHAIN_CHARGEDVISIBLELIST_H
107template <
class T >
class MuteWholeItr ;
112 return static_cast<int>(iCharged.charge());
117 return static_cast<int>(iCharged->charge());
122 return static_cast<int>(iCharged->charge());
127 return static_cast<int>(iCharged->charge());
130 template<
class TPtr,
class TRef>
136template <
class Charged ,
class Cand
idateClass =
typename Charged::Cand
idateClass >
137class ChargedVisibleList :
public CandidateList< CandidateClass >
157 template<
class TSelector>
159 const TSelector& aSel) :
164 fill(*(aOtherList.m_list),
169 template <
class WitnessIterator>
177 template<
class WitnessIterator,
class TSelector>
179 const TSelector& aFunctionalObject ) :
191 template<
class Witness>
194 fill(aWitnessList.begin(), aWitnessList.end(),
201 template<
class TSelector>
217 template<
class TAnalyze>
218 void iterate(
const TAnalyze& analyze)
const {
223 analyze( (*entry)() ) ;
227 template<
class TAnalyze>
233 analyze( (*entry)() ) ;
238 template<
class TSelect>
242 template <
class THolder,
class TSelect>
244 const TSelect& aSelect) {
246 bool returnValue = (aSelect)(*pPossible);
253 template <
class THolder>
270 template<
class TMaker,
class TSelector>
272 const TMaker& aMaker,
273 const TSelector& aSel) {
278 const Charged& from((*entry)());
285 template<
class Iterator,
class TMaker,
class TSelector>
286 void fill(Iterator first, Iterator last,
287 const TMaker& aMaker,
291 std::transform(first,last,
327 template<
class TIList,
class TSelector,
class T,
class U>
329 const TSelector& iSel,
331 oList.fill(iList.begin(), iList.end(),
ChargedVisibleList(const self_type &aOtherList, const TSelector &aSel)
PartialItr< Charged > const_partial_iterator
FillListWithSelection< self_type, TSelector > operator[](const TSelector &iSel)
ChargedVisibleList< Charged, CandidateClass > self_type
void fill(const LabeledParticleList< Charged, CandidateClass > &aList, const TMaker &aMaker, const TSelector &aSel)
virtual ~ChargedVisibleList()
const self_type & operator=(const Witness &aWitnessList)
void iterate(TAnalyze &analyze) const
ChosenChargeList< Charged, CandidateClass > & plus() const
void fill(Iterator first, Iterator last, const TMaker &aMaker, const TSelector &aSel=SelectAll< Charged >())
ChosenChargeList< Charged, CandidateClass > & minus() const
SelectiveInserter< self_type, TSelect > selectiveInserter(const TSelect &iSelect)
creates an insert iterator that filters based on iSelect
void insert(THolder &pPossible)
virtual LabeledParticleList< Charged, CandidateClass > & labeledCandidateList()
bool attempt_insert(THolder &pPossible, const TSelect &aSelect)
MuteWholeItr< Charged > iterator
iterator particle_begin()
void iterate(const TAnalyze &analyze) const
WholeItr< Charged > const_iterator
ChargedVisibleList(WitnessIterator first, WitnessIterator last, const TSelector &aFunctionalObject)
ChargedVisibleList(WitnessIterator first, WitnessIterator last)
const self_type & operator=(const self_type &aOtherList)
void fill_using_selector(const TIList &iList, const TSelector &iSel, ChargedVisibleList< T, U > &oList)
int charge_sign(const T &iCharged)