#include <DCChargedVisibleList.h>
Inheritance diagram for DCChargedVisibleList< Charged, CandidateClass >:
Public Types | |
typedef dchain::MuteWholeItr< Charged > | iterator |
typedef dchain::WholeItr< Charged > | const_iterator |
typedef dchain::PartialItr< Charged > | const_partial_iterator |
typedef Charged | value_type |
typedef ChargedVisibleList< Charged, CandidateClass > | self_type |
Public Member Functions | |
DCChargedVisibleList (bool(*pFunction)(Charged &)=0) | |
DCChargedVisibleList (const DCChargedVisibleList< Charged, CandidateClass > &aOtherList, bool(*pFunction)(Charged &)=0) | |
DCChargedVisibleList (DCSelectionFunction< Charged > &aFunctionalObject) | |
DCChargedVisibleList (const DCChargedVisibleList< Charged, CandidateClass > &aOtherList, DCSelectionFunction< Charged > &aFunctionalObject) | |
virtual | ~DCChargedVisibleList () |
const DCChargedVisibleList< Charged, CandidateClass > & | operator= (const DCChargedVisibleList< Charged, CandidateClass > &aOtherList) |
template<class TSelector> | |
FillListWithSelection< self_type, TSelector > | operator[] (const TSelector &iSel) |
iterator | particle_begin () |
const_iterator | particle_begin () const |
iterator | particle_end () |
const_iterator | particle_end () const |
ChosenChargeList< Charged, CandidateClass > & | plus () const |
ChosenChargeList< Charged, CandidateClass > & | minus () const |
template<class TAnalyze> | |
void | iterate (const TAnalyze &analyze) const |
template<class TAnalyze> | |
void | iterate (TAnalyze &analyze) const |
template<class TAnalyzer> | |
void | iterate (const TAnalyzer &analyze) const |
template<class TSelect> | |
SelectiveInserter< self_type, TSelect > | selectiveInserter (const TSelect &iSelect) |
creates an insert iterator that filters based on iSelect | |
template<class THolder, class TSelect> | |
bool | attempt_insert (THolder &pPossible, const TSelect &aSelect) |
template<class THolder> | |
void | insert (THolder &pPossible) |
void | eraseContents () |
void | erase () |
template<class TMaker, class TSelector> | |
void | fill (const LabeledParticleList< Charged, CandidateClass > &aList, const TMaker &aMaker, const TSelector &aSel) |
template<class Iterator, class TMaker, class TSelector> | |
void | fill (Iterator first, Iterator last, const TMaker &aMaker, const TSelector &aSel=SelectAll< Charged >()) |
virtual iterator | begin () |
virtual const_iterator | begin () const |
virtual iterator | end () |
virtual const_iterator | end () const |
virtual bool | empty () const |
virtual int | size () const |
Protected Member Functions | |
void | fill (const dchain::LabeledParticleList< Charged, CandidateClass > &aList) |
template<class Iterator> | |
void | fill (Iterator first, Iterator last) |
virtual LabeledParticleList< Charged, CandidateClass > & | labeledCandidateList () |
virtual const LabeledParticleList< Charged, CandidateClass > & | labeledCandidateList () const |
Private Attributes | |
bool(* | m_function )(Charged &) |
dchain::DCUnaryAdapter< DCSelectionFunction< Charged > > | m_functionalObject |
Definition at line 97 of file DCChargedVisibleList.h.
typedef dchain::WholeItr< Charged > DCChargedVisibleList< Charged, CandidateClass >::const_iterator |
Reimplemented from dchain::ChargedVisibleList< Charged, CandidateClass >.
Definition at line 104 of file DCChargedVisibleList.h.
typedef dchain::PartialItr< Charged > DCChargedVisibleList< Charged, CandidateClass >::const_partial_iterator |
Reimplemented from dchain::ChargedVisibleList< Charged, CandidateClass >.
Definition at line 105 of file DCChargedVisibleList.h.
typedef dchain::MuteWholeItr< Charged > DCChargedVisibleList< Charged, CandidateClass >::iterator |
Reimplemented from dchain::ChargedVisibleList< Charged, CandidateClass >.
Definition at line 103 of file DCChargedVisibleList.h.
typedef ChargedVisibleList<Charged,CandidateClass> dchain::ChargedVisibleList< Charged, CandidateClass >::self_type [inherited] |
Definition at line 149 of file ChargedVisibleList.h.
typedef Charged DCChargedVisibleList< Charged, CandidateClass >::value_type |
Reimplemented from dchain::ChargedVisibleList< Charged, CandidateClass >.
Definition at line 107 of file DCChargedVisibleList.h.
DCChargedVisibleList< Charged, CandidateClass >::DCChargedVisibleList | ( | bool(*)(Charged &) | pFunction = 0 |
) |
Definition at line 120 of file DCChargedVisibleList.cc.
00120 : 00121 m_function( pFunction ) , 00122 m_functionalObject( 0 ) 00123 { 00124 }
DCChargedVisibleList< Charged, CandidateClass >::DCChargedVisibleList | ( | const DCChargedVisibleList< Charged, CandidateClass > & | aOtherList, | |
bool(*)(Charged &) | pFunction = 0 | |||
) |
Definition at line 128 of file DCChargedVisibleList.cc.
00129 : 00130 dchain::ChargedVisibleList<Charged, CandidateClass>(aOtherList, pFunction), 00131 m_function( pFunction ) , 00132 m_functionalObject( 0 ) 00133 { 00134 }
DCChargedVisibleList< Charged, CandidateClass >::DCChargedVisibleList | ( | DCSelectionFunction< Charged > & | aFunctionalObject | ) |
Definition at line 138 of file DCChargedVisibleList.cc.
00138 : 00139 m_function( 0 ) , 00140 m_functionalObject( &aFunctionalObject ) 00141 { 00142 }
DCChargedVisibleList< Charged, CandidateClass >::DCChargedVisibleList | ( | const DCChargedVisibleList< Charged, CandidateClass > & | aOtherList, | |
DCSelectionFunction< Charged > & | aFunctionalObject | |||
) |
Definition at line 146 of file DCChargedVisibleList.cc.
00147 : 00148 dchain::ChargedVisibleList<Charged,CandidateClass>(aOtherList,aFunctionalObject), 00149 m_function( 0 ) , 00150 m_functionalObject( &aFunctionalObject ) 00151 { 00152 }
DCChargedVisibleList< Charged, CandidateClass >::~DCChargedVisibleList | ( | ) | [virtual] |
bool dchain::ChargedVisibleList< Charged, CandidateClass >::attempt_insert | ( | THolder & | pPossible, | |
const TSelect & | aSelect | |||
) | [inline, inherited] |
Definition at line 243 of file ChargedVisibleList.h.
Referenced by dchain::ChargedVisibleList< Charged, Charged::CandidateClass >::fill().
00244 { 00245 //std::cout << " @ ChargedVisibleList::attempt_insert() " << __LINE__ << std::endl; 00246 bool returnValue = (aSelect)(*pPossible); 00247 if (returnValue) { 00248 this->insert(pPossible); 00249 } 00250 return returnValue; 00251 }
CandidateList< CandidateClass >::const_iterator dchain::CandidateList< CandidateClass >::begin | ( | ) | const [virtual, inherited] |
Reimplemented in dchain::CombinatoricList< CandidateClass >.
Definition at line 151 of file CandidateList.cc.
References dchain::CandidateList< CandidateClass >::begin(), and dchain::CandidateList< CandidateClass >::labeledCandidateList().
00152 { 00153 // do this casting to make sure const 'begin' function is called 00154 return ( static_cast<const dchain::LabeledCandidateList< CandidateClass >*>(&labeledCandidateList())->begin() ); 00155 }
CandidateList< CandidateClass >::iterator dchain::CandidateList< CandidateClass >::begin | ( | ) | [virtual, inherited] |
Reimplemented in dchain::CombinatoricList< CandidateClass >.
Definition at line 115 of file CandidateList.cc.
References dchain::CandidateList< CandidateClass >::labeledCandidateList().
Referenced by dchain::CandidateList< CandidateClass >::begin(), and dchain::CandidateList< NeutralNC::CandidateClass >::iterate().
00116 { 00117 return ( labeledCandidateList().begin() ) ; 00118 }
bool dchain::CandidateList< CandidateClass >::empty | ( | ) | const [virtual, inherited] |
Definition at line 135 of file CandidateList.cc.
References dchain::CandidateList< CandidateClass >::labeledCandidateList().
00136 { 00137 return ( labeledCandidateList().empty() ) ; 00138 }
CandidateList< CandidateClass >::const_iterator dchain::CandidateList< CandidateClass >::end | ( | ) | const [virtual, inherited] |
Reimplemented in dchain::CombinatoricList< CandidateClass >.
Definition at line 160 of file CandidateList.cc.
References dchain::CandidateList< CandidateClass >::end(), and dchain::CandidateList< CandidateClass >::labeledCandidateList().
00161 { 00162 // do this casting to make sure const 'end' function is called 00163 return ( static_cast<const dchain::LabeledCandidateList< CandidateClass >*>(&labeledCandidateList())->end() ); 00164 }
CandidateList< CandidateClass >::iterator dchain::CandidateList< CandidateClass >::end | ( | ) | [virtual, inherited] |
Reimplemented in dchain::CombinatoricList< CandidateClass >.
Definition at line 123 of file CandidateList.cc.
References dchain::CandidateList< CandidateClass >::labeledCandidateList().
Referenced by dchain::CandidateList< CandidateClass >::end(), and dchain::CandidateList< NeutralNC::CandidateClass >::iterate().
00124 { 00125 return ( labeledCandidateList().end() ) ; 00126 }
void dchain::ChargedVisibleList< Charged, CandidateClass >::erase | ( | ) | [inline, inherited] |
void dchain::ChargedVisibleList< Charged, CandidateClass >::eraseContents | ( | ) | [inherited] |
Definition at line 203 of file ChargedVisibleList.cc.
References dchain::ChargedVisibleList< Charged, CandidateClass >::m_list.
Referenced by dchain::ChargedVisibleList< Charged, Charged::CandidateClass >::erase(), DCChargedVisibleList< Charged, CandidateClass >::operator=(), dchain::ChargedVisibleList< Charged, CandidateClass >::operator=(), and dchain::ChargedVisibleList< Charged, Charged::CandidateClass >::operator=().
void dchain::ChargedVisibleList< Charged, CandidateClass >::fill | ( | Iterator | first, | |
Iterator | last, | |||
const TMaker & | aMaker, | |||
const TSelector & | aSel = SelectAll<Charged>() | |||
) | [inline, inherited] |
Definition at line 286 of file ChargedVisibleList.h.
00288 { 00289 //std::cout << " @ ChargedVisibleList::fill() " << __LINE__ << std::endl; 00290 //std::cout << "size before transform: " << m_list->size() << std::endl; 00291 std::transform(first,last, 00292 selectiveInserter(aSel), 00293 aMaker); 00294 //std::cout << "size after transform: " << m_list->size() << std::endl; 00295 }
void dchain::ChargedVisibleList< Charged, CandidateClass >::fill | ( | const LabeledParticleList< Charged, CandidateClass > & | aList, | |
const TMaker & | aMaker, | |||
const TSelector & | aSel | |||
) | [inline, inherited] |
Definition at line 271 of file ChargedVisibleList.h.
Referenced by dchain::ChargedVisibleList< Charged, CandidateClass >::ChargedVisibleList(), dchain::ChargedVisibleList< Charged, Charged::CandidateClass >::ChargedVisibleList(), dchain::fill_using_selector(), dchain::ChargedVisibleList< Charged, CandidateClass >::operator=(), and dchain::ChargedVisibleList< Charged, Charged::CandidateClass >::operator=().
00273 { 00274 00275 for( const_iterator entry(aList.begin()); entry != aList.end(); ++entry){ 00276 //NOTE: even though this is really just calling the copy constructor 00277 //it is best to use the maker since it allows further control 00278 const Charged& from((*entry)()); 00279 typename ResultTypeTrait<TMaker>::type localCopy( aMaker(from) ); 00280 00281 attempt_insert(localCopy,aSel); 00282 } 00283 00284 }
void DCChargedVisibleList< Charged, CandidateClass >::fill | ( | Iterator | first, | |
Iterator | last | |||
) | [inline, protected] |
Definition at line 130 of file DCChargedVisibleList.h.
00130 { 00131 if ( 0 != m_function ) { 00132 fill(first,last, dchain::NewMaker<Charged>(), m_function); 00133 } else if (m_functionalObject) { 00134 fill(first,last,dchain::NewMaker<Charged>(),m_functionalObject); 00135 } else { 00136 fill(first,last, dchain::NewMaker<Charged>(), dchain::SelectAll<Charged>()); 00137 } 00138 }
void DCChargedVisibleList< Charged, CandidateClass >::fill | ( | const dchain::LabeledParticleList< Charged, CandidateClass > & | aList | ) | [protected] |
Reimplemented in DCFillableChargedList< Charged >.
Definition at line 176 of file DCChargedVisibleList.cc.
References DCChargedVisibleList< Charged, CandidateClass >::m_function, and DCChargedVisibleList< Charged, CandidateClass >::m_functionalObject.
Referenced by DCFillableChargedList< Charged >::fill(), DCChargedVisibleList< Charged, Charged::CandidateClass >::fill(), and DCChargedVisibleList< Charged, CandidateClass >::operator=().
00177 { 00178 if ( 0 != m_function ) { 00179 fill(aList, dchain::NewMaker<Charged>(), m_function); 00180 } else if (m_functionalObject) { 00181 fill(aList,dchain::NewMaker<Charged>(), m_functionalObject); 00182 } else { 00183 fill(aList, dchain::NewMaker<Charged>(), dchain::SelectAll<Charged>()); 00184 } 00185 }
void dchain::ChargedVisibleList< Charged, CandidateClass >::insert | ( | THolder & | pPossible | ) | [inline, inherited] |
Definition at line 254 of file ChargedVisibleList.h.
Referenced by dchain::ChargedVisibleList< Charged, Charged::CandidateClass >::attempt_insert().
00254 { 00255 if (0 < charge_sign(pPossible)) { 00256 m_list->push_back( LabeledParticle< Charged >( pPossible , 00257 kPlus ) ) ; 00258 } 00259 else { 00260 m_list->push_back( LabeledParticle< Charged >( pPossible , 00261 kMinus ) ) ; 00262 } 00263 }
void dchain::CandidateList< CandidateClass >::iterate | ( | const TAnalyzer & | analyze | ) | const [inline, inherited] |
Reimplemented in dchain::ChosenChargeList< Charged, CandidateClass >, dchain::ChosenConjugateList< Conjugate, CandidateClass >, dchain::ChosenChargeList< Charged, Charged::CandidateClass >, dchain::ChosenConjugateList< NeutralNC, NeutralNC::CandidateClass >, and dchain::ChosenConjugateList< NeutralNC, CandidateClass >.
Definition at line 102 of file CandidateList.h.
00102 { 00103 const_iterator finished ( end() ); 00104 for ( const_iterator entry ( begin() ) ; 00105 entry != finished ; 00106 ++entry ) { 00107 analyze( (*entry)() ) ; 00108 } 00109 }
void dchain::ChargedVisibleList< Charged, CandidateClass >::iterate | ( | TAnalyze & | analyze | ) | const [inline, inherited] |
Definition at line 228 of file ChargedVisibleList.h.
00228 { 00229 const_iterator finished ( particle_end() ) ; 00230 for ( const_iterator entry ( particle_begin() ) ; 00231 entry != finished ; 00232 ++entry ) { 00233 analyze( (*entry)() ) ; 00234 } 00235 }
void dchain::ChargedVisibleList< Charged, CandidateClass >::iterate | ( | const TAnalyze & | analyze | ) | const [inline, inherited] |
Definition at line 218 of file ChargedVisibleList.h.
00218 { 00219 const_iterator finished ( particle_end() ) ; 00220 for ( const_iterator entry ( particle_begin() ) ; 00221 entry != finished ; 00222 ++entry ) { 00223 analyze( (*entry)() ) ; 00224 } 00225 }
const LabeledParticleList< Charged, CandidateClass > & dchain::ChargedVisibleList< Charged, CandidateClass >::labeledCandidateList | ( | ) | const [protected, virtual, inherited] |
Implements dchain::CandidateList< CandidateClass >.
Definition at line 230 of file ChargedVisibleList.cc.
References dchain::ChargedVisibleList< Charged, CandidateClass >::m_list.
00231 { 00232 return ( *m_list ) ; 00233 }
LabeledParticleList< Charged, CandidateClass > & dchain::ChargedVisibleList< Charged, CandidateClass >::labeledCandidateList | ( | ) | [protected, virtual, inherited] |
Implements dchain::CandidateList< CandidateClass >.
Definition at line 196 of file ChargedVisibleList.cc.
References dchain::ChargedVisibleList< Charged, CandidateClass >::m_list.
Referenced by DCChargedVisibleList< Charged, CandidateClass >::operator=().
00197 { 00198 return ( *m_list ) ; 00199 }
ChosenChargeList< Charged, CandidateClass > & dchain::ChargedVisibleList< Charged, CandidateClass >::minus | ( | ) | const [inherited] |
Definition at line 186 of file ChargedVisibleList.cc.
References dchain::ChargedVisibleList< Charged, CandidateClass >::kMinus, dchain::ChargedVisibleList< Charged, CandidateClass >::m_list, and dchain::ChargedVisibleList< Charged, CandidateClass >::m_minusList.
Referenced by NeutralDReconstruction::execute(), DsReconstruction::execute(), and ChargedDReconstruction::execute().
00187 { 00188 if ( m_minusList == 0 ) { 00189 m_minusList = new ChosenChargeList< Charged , CandidateClass >( *m_list , kMinus ); 00190 } 00191 return (*m_minusList); 00192 }
const DCChargedVisibleList< Charged, CandidateClass > & DCChargedVisibleList< Charged, CandidateClass >::operator= | ( | const DCChargedVisibleList< Charged, CandidateClass > & | aOtherList | ) |
Definition at line 164 of file DCChargedVisibleList.cc.
References dchain::ChargedVisibleList< Charged, CandidateClass >::eraseContents(), DCChargedVisibleList< Charged, CandidateClass >::fill(), and dchain::ChargedVisibleList< Charged, CandidateClass >::labeledCandidateList().
Referenced by DCFillableChargedList< Charged >::operator=().
00165 { 00166 this->eraseContents() ; 00167 fill(aOtherList.labeledCandidateList()) ; 00168 return ( *this ) ; 00169 }
FillListWithSelection<self_type, TSelector> dchain::ChargedVisibleList< Charged, CandidateClass >::operator[] | ( | const TSelector & | iSel | ) | [inline, inherited] |
Definition at line 202 of file ChargedVisibleList.h.
00202 { 00203 return FillListWithSelection<self_type,TSelector>(*this, iSel); 00204 }
ChargedVisibleList< Charged, CandidateClass >::const_iterator dchain::ChargedVisibleList< Charged, CandidateClass >::particle_begin | ( | ) | const [inherited] |
Definition at line 214 of file ChargedVisibleList.cc.
References dchain::ChargedVisibleList< Charged, CandidateClass >::m_list.
00215 { 00216 // Need to cast to 'const' to get the right function call 00217 return ( (*(const LabeledParticleList< Charged , CandidateClass >*)(m_list.pointer())).begin() ) ; 00218 }
ChargedVisibleList< Charged, CandidateClass >::iterator dchain::ChargedVisibleList< Charged, CandidateClass >::particle_begin | ( | ) | [inherited] |
Definition at line 162 of file ChargedVisibleList.cc.
References dchain::ChargedVisibleList< Charged, CandidateClass >::m_list.
Referenced by dchain::ChargedVisibleList< Charged, Charged::CandidateClass >::iterate(), NeutralDReconstruction::pidtag(), DsReconstruction::pidtag(), and ChargedDReconstruction::pidtag().
00163 { 00164 return ( m_list->begin() ) ; 00165 }
ChargedVisibleList< Charged, CandidateClass >::const_iterator dchain::ChargedVisibleList< Charged, CandidateClass >::particle_end | ( | ) | const [inherited] |
Definition at line 221 of file ChargedVisibleList.cc.
References dchain::ChargedVisibleList< Charged, CandidateClass >::m_list.
00222 { 00223 // Need to cast to 'const' to get the right function call 00224 return ( (*(const LabeledParticleList< Charged , CandidateClass >*)(m_list.pointer())).end() ) ; 00225 }
ChargedVisibleList< Charged, CandidateClass >::iterator dchain::ChargedVisibleList< Charged, CandidateClass >::particle_end | ( | ) | [inherited] |
Definition at line 169 of file ChargedVisibleList.cc.
References dchain::ChargedVisibleList< Charged, CandidateClass >::m_list.
Referenced by dchain::ChargedVisibleList< Charged, Charged::CandidateClass >::iterate(), NeutralDReconstruction::pidtag(), DsReconstruction::pidtag(), and ChargedDReconstruction::pidtag().
00170 { 00171 return ( m_list->end() ) ; 00172 }
ChosenChargeList< Charged, CandidateClass > & dchain::ChargedVisibleList< Charged, CandidateClass >::plus | ( | ) | const [inherited] |
Definition at line 176 of file ChargedVisibleList.cc.
References dchain::ChargedVisibleList< Charged, CandidateClass >::kPlus, dchain::ChargedVisibleList< Charged, CandidateClass >::m_list, and dchain::ChargedVisibleList< Charged, CandidateClass >::m_plusList.
Referenced by NeutralDReconstruction::execute(), DsReconstruction::execute(), and ChargedDReconstruction::execute().
00177 { 00178 if ( m_plusList == 0 ) { 00179 m_plusList = new ChosenChargeList< Charged, CandidateClass >( *m_list, kPlus ); 00180 } 00181 return (*m_plusList); 00182 }
SelectiveInserter<self_type,TSelect> dchain::ChargedVisibleList< Charged, CandidateClass >::selectiveInserter | ( | const TSelect & | iSelect | ) | [inline, inherited] |
creates an insert iterator that filters based on iSelect
Definition at line 239 of file ChargedVisibleList.h.
Referenced by dchain::ChargedVisibleList< Charged, Charged::CandidateClass >::fill().
00239 { 00240 return SelectiveInserter<self_type,TSelect>(*this,iSelect); }
int dchain::CandidateList< CandidateClass >::size | ( | ) | const [virtual, inherited] |
Definition at line 143 of file CandidateList.cc.
References dchain::CandidateList< CandidateClass >::labeledCandidateList().
Referenced by NeutralDReconstruction::execute(), DsReconstruction::execute(), and ChargedDReconstruction::execute().
00144 { 00145 return ( labeledCandidateList().size() ) ; 00146 }
bool( * DCChargedVisibleList< Charged, CandidateClass >::m_function)(Charged &) [private] |
dchain::DCUnaryAdapter<DCSelectionFunction< Charged > > DCChargedVisibleList< Charged, CandidateClass >::m_functionalObject [private] |
Definition at line 152 of file DCChargedVisibleList.h.
Referenced by DCChargedVisibleList< Charged, CandidateClass >::fill(), and DCChargedVisibleList< Charged, Charged::CandidateClass >::fill().