#include "TrackFitterFactory.h" #include "TrackFitterBase.h" #include "TrackFitterSimpleChiSquare.h" #include "TrackFitterSimpleMinimizer.h" #include "TrackFitterSimpleChiSquarePads.h" #include "TrackFitterKalman.h" #include #include namespace marlintpc { TrackFitterFactory::FitterTypeException::FitterTypeException(std::string const & initString) : EVENT::Exception(initString) {} TrackFitterBase * TrackFitterFactory::getTrackFitter(unsigned char fitterType, EVENT::LCParameters const * collectionParameters, EVENT::LCEvent const * event ) { switch( fitterType ) { case TrackFitterBase::FitterTypes::SIMPLECHISQUARE : return TrackFitterSimpleChiSquare::getInstance( collectionParameters ); case TrackFitterBase::FitterTypes::SIMPLECHISQUAREPADS : return TrackFitterSimpleChiSquarePads::getInstance( collectionParameters ); case TrackFitterBase::FitterTypes::SIMPLEMINIMIZER : return TrackFitterSimpleMinimizer::getInstance( collectionParameters ); case TrackFitterBase::FitterTypes::LIKELIHOOD : case TrackFitterBase::FitterTypes::LINEARREGRESSION : case TrackFitterBase::FitterTypes::KALMAN : return TrackFitterKalman::getInstance( collectionParameters ); default: { std::stringstream errorText; errorText << "TrackFitterFactory: Fitter type " << fitterType << " unknown!" ; throw FitterTypeException(errorText.str()); } } } } // namespace marlintpc