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 }