194 vector<G4ThreeVector> theProductDisplacementVector(nbProducts);
196 typedef map<const G4MoleculeDefinition*, G4double> RMSmap;
202 case Ionisation_DissociationDecay:
223 for(
int i = 0; i < nbProducts; i++){
227 if(theRMSDisplacement==0.){
232 theProductDisplacementVector[i] = RandDirection;
237 case A1B1_DissociationDecay:
247 for(
G4int i =0; i < nbProducts; i++){
252 theProductDisplacementVector[i] = -1./18.*RandDirection;
256 theProductDisplacementVector[i] = +17./18.*RandDirection;
261 case B1A1_DissociationDecay:
273 for(
G4int i =0; i < nbProducts; ++i)
278 theProductDisplacementVector[i] = -2./18.*RandDirection;
285 auto OHDisplacement =
289 OHDisplacement = 0.5*OHDisplacement;
292 OHDisplacement = -0.5*OHDisplacement;
295 theProductDisplacementVector[i] =
296 OHDisplacement + OxygenDisplacement;
325 for(
G4int i =0; i < nbProducts; i++){
327 auto theRMSDisplacement = theRMSmap[product->
GetDefinition()];
329 if(theRMSDisplacement==0){
335 theProductDisplacementVector[i] = RandDirection;
343 case DissociativeAttachment:
354 for(
G4int i =0; i < nbProducts; ++i){
357 theProductDisplacementVector[i] = -2./18.*RandDirection;
363 auto OHDisplacement =
367 OHDisplacement = 0.5*OHDisplacement;
370 OHDisplacement = -0.5*OHDisplacement;
372 theProductDisplacementVector[i] = OHDisplacement +
380 return theProductDisplacementVector;
static G4Electron_aq * Definition()
CLHEP::Hep3Vector G4ThreeVector
G4ThreeVector radialDistributionOfElectron() const
static constexpr double nanometer
G4int GetNbProducts() const
G4GLOB_DLL std::ostream G4cout
DisplacementType GetDisplacementType() const
G4MolecularConfiguration * GetProduct(int) const
static G4H3O * Definition()
const G4String & GetName() const
const G4MoleculeDefinition * GetDefinition() const
static G4OH * Definition()
static G4H2 * Definition()
G4ThreeVector radialDistributionOfProducts(G4double r_rms) const
static G4Hydrogen * Definition()