53 fieldShape(MedicalBeam::SQUARE),
75 dr= std::sqrt(
sqr(fieldXY[0]/2.)+
sqr(fieldXY[1]/2.));
88 xmax= fieldXY[0]/2./SSD;
89 ymax= fieldXY[1]/2./SSD;
98 while(! (std::abs(x)< xmax && std::abs(y)< ymax) ) {
100 dsin= std::sqrt(1.-
sqr(dcos));
103 x= std::cos(dphi)*dsin*dcos;
104 y= std::sin(dphi)*dsin*dcos;
117 if(particle==0)
return;
123 G4double mass= particle-> GetPDGMass();
131 vertex-> SetPrimary(primary);
134 anEvent-> AddPrimaryVertex(vertex);
static constexpr double m
static constexpr double twopi
static constexpr double MeV
static constexpr double cm
CLHEP::Hep3Vector G4ThreeVector
virtual void GeneratePrimaries(G4Event *anEvent)
G4ThreeVector GenerateBeamDirection() const
ThreeVector shoot(const G4int Ap, const G4int Af)