00001 #include "BDSBunchFactory.hh"
00002
00003 #include "BDSBunchCircle.hh"
00004 #include "BDSBunchComposite.hh"
00005 #include "BDSBunchEShell.hh"
00006 #include "BDSBunchGaussian.hh"
00007 #include "BDSBunchInterface.hh"
00008 #include "BDSBunchRing.hh"
00009 #include "BDSBunchSquare.hh"
00010 #include "BDSBunchUserFile.hh"
00011 #include "BDSBunchTwiss.hh"
00012 #include "BDSBunchPtc.hh"
00013 #include "BDSBunchHalo.hh"
00014
00015 BDSBunchInterface* BDSBunchFactory::createBunch(G4String distribType)
00016 {
00017 BDSBunchInterface* bdsBunch;
00018 if (distribType == "reference")
00019 bdsBunch = new BDSBunchInterface();
00020 else if(distribType == "gauss" || distribType == "gaussmatrix")
00021 bdsBunch = new BDSBunchGaussian();
00022 else if(distribType == "square")
00023 bdsBunch = new BDSBunchSquare();
00024 else if(distribType == "circle")
00025 bdsBunch = new BDSBunchCircle();
00026 else if(distribType == "ring")
00027 bdsBunch = new BDSBunchRing();
00028 else if(distribType == "eshell")
00029 bdsBunch = new BDSBunchEShell();
00030 else if(distribType == "gausstwiss")
00031 bdsBunch = new BDSBunchTwiss();
00032 else if(distribType == "halo")
00033 bdsBunch = new BDSBunchHalo();
00034 else if(distribType == "userfile")
00035 bdsBunch = new BDSBunchUserFile();
00036 else if(distribType == "composite")
00037 bdsBunch = new BDSBunchComposite();
00038 else if(distribType == "ptc")
00039 bdsBunch = new BDSBunchPtc();
00040 else {
00041 G4cerr << "distribType not found " << distribType << G4endl;
00042 exit(1);
00043 }
00044 return bdsBunch;
00045 }