// ESAF : Euso Simulation and Analysis Framework
// $Id: LightSourceFactory.cc,v 1.7 2004/09/13 13:23:19 stutz Exp $
// Anne Stutz created Mar, 23 2004
#include <string>
#include "LightSourceFactory.hh"
#include "KakimotoFluoCalculator.hh"
#include "NaganoFluoCalculator.hh"
#include "SimpleCrkCalculator.hh"
ClassImp(LightSourceFactory)
LightSourceFactory *LightSourceFactory::fMe = NULL;
// ctor
LightSourceFactory::LightSourceFactory() {
}
// dtor
LightSourceFactory::~LightSourceFactory() {
}
// instance
LightSourceFactory* LightSourceFactory::Get() {
if ( fMe == NULL )
fMe = new LightSourceFactory();
return fMe;
}
// call ctor of appropriate Fluorescence Calculator
FluoCalculator* LightSourceFactory::GetFluoCalculator( const string& name ) {
if ( name == "kakimoto" )
return new KakimotoFluoCalculator();
else if ( name == "nagano" )
return new NaganoFluoCalculator();
else throw invalid_argument("invalid FluoCalculator object : " + name);
return NULL;
}
// call ctor of appropriate Cerenkov Calculator
CrkCalculator* LightSourceFactory::GetCrkCalculator( const string& name ) {
if ( name == "simple" )
return new SimpleCrkCalculator();
else throw invalid_argument("invalid CrkCalculator object : " + name);
return NULL;
}