001 #include "AtlfastAlgs/PrimaryReconstructor.h"
002 #include "AtlfastUtils/DeleteObject.h"
003 #include "AtlfastUtils/AcceptanceChecker.h"
004
005 namespace Atlfast{
006 PrimaryReconstructor::PrimaryReconstructor(IReconstructor *defaultReconstructor):m_default(defaultReconstructor){}
007 PrimaryReconstructor::PrimaryReconstructor(const PrimaryReconstructor &other):IReconstructor(other),
008 m_default(other.m_default),
009 m_replacements(other.m_replacements){}
010
011 PrimaryReconstructor::~PrimaryReconstructor(){
012 std::for_each(m_replacements.begin(),m_replacements.end(),DeleteObject());
013 delete m_default;
014 m_default=0;
015 }
016
017 PrimaryReconstructor& PrimaryReconstructor::operator=(const PrimaryReconstructor &other){
018 if(this!=&other){
019 m_default = other.m_default;
020 m_replacements = other.m_replacements;
021 }
022 return *this;
023 }
024
025 ReconstructedParticle PrimaryReconstructor::reconstruct( const ReconstructedParticle &particle )const{
026 std::vector<const IAcceptingReconstructor*>::const_iterator itr, start, end;
027 start = m_replacements.begin();
028 end = m_replacements.end();
029 itr = std::find_if(start,end,AcceptanceChecker<IAcceptingReconstructor>(particle));
030
031 if(itr!=end){return (*itr)->reconstruct(particle);}
032 return m_default->reconstruct(particle);
033 }
034
035 void PrimaryReconstructor::addReplacement(const IAcceptingReconstructor *replacement){
036 m_replacements.push_back(replacement);
037 }
038
039 }
040
| Due to the LXR bug, the updates fail sometimes to remove references to deleted files. The Saturday's full rebuilds fix these problems |
|
This page was automatically generated by the
LXR engine.
|
|