/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/src/BDSBunchComposite.cc

00001 #include "BDSBunchComposite.hh"
00002 #include "BDSBunchFactory.hh"
00003 #include "BDSDebug.hh"
00004 
00005 BDSBunchComposite::BDSBunchComposite() {
00006 #ifdef BDSDEBUG 
00007   G4cout << __METHOD_NAME__ << G4endl;
00008 #endif
00009   xBunch = NULL;
00010   yBunch = NULL;
00011   zBunch = NULL;
00012 }
00013 
00014 BDSBunchComposite::~BDSBunchComposite() {
00015 #ifdef BDSDEBUG 
00016   G4cout << __METHOD_NAME__ << G4endl;
00017 #endif
00018   delete xBunch;
00019   delete yBunch;
00020   delete zBunch;
00021 }
00022 
00023 void BDSBunchComposite::SetOptions(struct Options& opt) {
00024 #ifdef BDSDEBUG 
00025   G4cout << __METHOD_NAME__ << G4endl;
00026 #endif
00027 
00028   BDSBunchInterface::SetOptions(opt);
00029   
00030   delete xBunch;
00031   delete yBunch;
00032   delete zBunch;
00033 
00034   xBunch = BDSBunchFactory::createBunch(opt.xDistribType);
00035   yBunch = BDSBunchFactory::createBunch(opt.yDistribType);
00036   zBunch = BDSBunchFactory::createBunch(opt.zDistribType);
00037 
00038   xBunch->SetOptions(opt);
00039   yBunch->SetOptions(opt);
00040   zBunch->SetOptions(opt);
00041 }
00042 
00043 void BDSBunchComposite::GetNextParticle(G4double& x0, G4double& y0, G4double& z0, 
00044                                         G4double& xp, G4double& yp, G4double& zp,
00045                                         G4double& t , G4double&  E, G4double& weight) { 
00046 #ifdef BDSDEBUG 
00047   G4cout << __METHOD_NAME__ << G4endl;
00048 #endif
00049 
00050   G4double xx0, xy0, xz0, xxp, xyp, xzp, xt, xE, xWeight;
00051   G4double yx0, yy0, yz0, yxp, yyp, yzp, yt, yE, yWeight;
00052   G4double zx0, zy0, zz0, zxp, zyp, zzp, zt, zE, zWeight;
00053   
00054   xBunch->GetNextParticle(xx0, xy0, xz0, xxp, xyp, xzp, xt, xE, xWeight);
00055   yBunch->GetNextParticle(yx0, yy0, yz0, yxp, yyp, yzp, yt, yE, yWeight);
00056   zBunch->GetNextParticle(zx0, zy0, zz0, zxp, zyp, zzp, zt, zE, zWeight);
00057 
00058   x0 = xx0;
00059   xp = xxp;
00060   y0 = yy0;
00061   yp = yyp;
00062   z0 = zz0;
00063   zp = zzp; 
00064   t  = zt;
00065   E  = zE; 
00066   weight = xWeight;
00067 
00068   return;
00069 }

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7