00001 #include "BDSOutputFactory.hh"
00002
00003 #include "BDSOutputFormat.hh"
00004 #include "BDSOutputBase.hh"
00005 #include "BDSOutputASCII.hh"
00006 #include "BDSOutputNone.hh"
00007 #include "BDSOutputROOT.hh"
00008 #include "BDSOutputVector.hh"
00009
00010 BDSOutputBase* BDSOutputFactory::createOutput(BDSOutputFormat format) {
00011 if (format == BDSOutputFormat::_NONE) {
00012 return new BDSOutputNone();
00013 }
00014 else if (format == BDSOutputFormat::_ASCII) {
00015 return new BDSOutputASCII();
00016 }
00017 else if (format == BDSOutputFormat::_ROOT) {
00018 #ifdef USE_ROOT
00019 return new BDSOutputROOT();
00020 #endif
00021 }
00022 else if (format == BDSOutputFormat::_COMBINED) {
00023 BDSOutputVector* combinedOutput = new BDSOutputVector();
00024 combinedOutput->Add(new BDSOutputASCII());
00025 #ifdef USE_ROOT
00026 combinedOutput->Add(new BDSOutputROOT());
00027 #endif
00028 bdsOutput = combinedOutput;
00029 }
00030
00031 return new BDSOutputASCII();
00032 }