diff --git a/src/A2PrimaryGeneratorAction.cc b/src/A2PrimaryGeneratorAction.cc index 6e775cd..e68bf7f 100644 --- a/src/A2PrimaryGeneratorAction.cc +++ b/src/A2PrimaryGeneratorAction.cc @@ -97,6 +97,7 @@ void A2PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) //This function is called at the begining of event Float_t Mass; Float_t P; + Float_t r_v,x_v,y_v,test_v; G4ThreeVector pvec; switch(fMode){ case EPGA_g4: @@ -134,7 +135,15 @@ void A2PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) G4cout<<"I have taken the liberty of choosing a new one inside!! see void A2PrimaryGeneratorAction::GeneratePrimaries"<GetTarget()->GetCenter().z()+fDetCon->GetTarget()->GetLength()/2*(2*G4UniformRand()-1)); - fThreeVector.setPerp(fDetCon->GetTarget()->GetRadius()*G4UniformRand()); + r_v=0.0; + while(r_v == 0.0 ) { + x_v = fDetCon->GetTarget()->GetRadius()*(2*G4UniformRand()-1); + y_v = fDetCon->GetTarget()->GetRadius()*(2*G4UniformRand()-1); + test_v = pow(x_v,2)+pow(y_v,2); + if (test_vGetTarget()->GetRadius(),2)) r_v = test_v; + } + fThreeVector.setX(x_v); + fThreeVector.setY(y_v); if(fTargetWarning==0){G4cout<