Universita' di GenovaINFN Sezione di Genova  
AIRWATCH / EUSO Genova

LightSourceFactory - source file

// ESAF : Euso Simulation and Analysis Framework
// $Id: LightSourceFactory.cc,v 1.8 2005/07/13 10:59:06 berat Exp $
// Anne Stutz created Mar, 23 2004

#include <string>
#include "LightSourceFactory.hh"
#include "KakimotoFluoCalculator.hh"
#include "NaganoFluoCalculator.hh"
#include "N2dataFluoCalculator.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 if ( name == "N2data" )
       return new N2dataFluoCalculator();
    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;
}
About Us | EUSO Official Website | Web pages created by Roberto Pesce and Alessandro Thea - Last Update Wed Nov 16 16:57:39 2005 Wed Nov 16 16:29:22 2005