71   return (2*r+1)*exp(-2*r);
    78     fFastElectronDistrib(0, 10, 0.001)
    83                 std::placeholders::_1);
    89   double eps = 1./((int)nBins);
    97   for(
size_t i = 1 ; i < nBins ; ++i)
   120   G4double RMSMotherMoleculeDisplacement = 0;
   124     RMSMotherMoleculeDisplacement = 2.0 * 
nanometer;
   128     RMSMotherMoleculeDisplacement = 0. * 
nanometer;
   132     RMSMotherMoleculeDisplacement = 0. * 
nanometer;
   136     RMSMotherMoleculeDisplacement = 2.0 * 
nanometer;
   140     RMSMotherMoleculeDisplacement = 0. * 
nanometer;
   143   if (RMSMotherMoleculeDisplacement == 0)
   148       RMSMotherMoleculeDisplacement);
   150   return RandDirection;
   155 vector<G4ThreeVector>
   160   vector<G4ThreeVector> theProductDisplacementVector(nbProducts);
   162   typedef map<const G4MoleculeDefinition*, G4double> RMSmap;
   187     for(
int i = 0; i < nbProducts; i++)
   193       if(theRMSDisplacement==0)
   200         theProductDisplacementVector[i] = RandDirection;
   212     for(
G4int i =0; i < nbProducts; i++)
   218         theProductDisplacementVector[i] = -1./18.*RandDirection;
   222         theProductDisplacementVector[i] = +17./18.*RandDirection;
   235     for(
G4int i =0; i < nbProducts; i++)
   240         theProductDisplacementVector[i] = -2./18.*RandDirection;
   247         auto OHDisplacement =
   252           OHDisplacement = 1./2.*OHDisplacement;
   256           OHDisplacement = -1./2.*OHDisplacement;
   259         theProductDisplacementVector[i] =
   260             OHDisplacement + OxygenDisplacement;
   287     for(
G4int i =0; i < nbProducts; i++)
   290       auto theRMSDisplacement = theRMSmap[product->
GetDefinition()];
   292       if(theRMSDisplacement==0)
   300         theProductDisplacementVector[i] = RandDirection;
   317     for(
G4int i =0; i < nbProducts; i++)
   322         theProductDisplacementVector[i] = -2./18.*RandDirection;
   329         auto OHDisplacement =
   334           OHDisplacement = 1./2.*OHDisplacement;
   338           OHDisplacement = -1./2.*OHDisplacement;
   341         theProductDisplacementVector[i] = OHDisplacement + OxygenDisplacement;
   348   return theProductDisplacementVector;
   357   static const double inverse_sqrt_3 = 1./sqrt(3.);
   358   double sigma = Rrms*inverse_sqrt_3;
   372   size_t bin = size_t(rand_value*nBins);
 
DisplacementType GetDisplacementType() const
 
virtual std::vector< G4ThreeVector > GetProductsDisplacement(const G4MolecularDissociationChannel *) const
 
ThreeVector shoot(const G4int Ap, const G4int Af)
 
static G4DLLIMPORT const DisplacementType AutoIonisation
 
static G4DLLIMPORT const DisplacementType B1A1_DissociationDecay
 
static G4Electron_aq * Definition()
 
static G4DLLIMPORT const DisplacementType A1B1_DissociationDecay
 
CLHEP::Hep3Vector G4ThreeVector
 
static G4DLLIMPORT const DisplacementType Ionisation_DissociationDecay
 
static const double nanometer
 
const G4MoleculeDefinition * GetDefinition() const
 
virtual ~G4DNAWaterDissociationDisplacer()
 
std::function< G4double(G4double)> fProba1DFunction
 
G4ThreeVector G4RandomDirection()
 
static const G4double eps
 
G4MolecularConfiguration * GetProduct(int) const
 
virtual G4ThreeVector GetMotherMoleculeDisplacement(const G4MolecularDissociationChannel *) const
 
G4DNARevertProbability fFastElectronDistrib
 
static G4DLLIMPORT const DisplacementType DissociativeAttachment
 
G4GLOB_DLL std::ostream G4cout
 
static G4double ElectronProbaDistribution(G4double r)
 
static G4H3O * Definition()
 
G4DNAWaterDissociationDisplacer()
 
std::vector< G4double > fElectronThermalization
 
static DisplacementType AddDisplacement()
 
double Revert(double probaForSearchedTime, std::function< double(double)> &funct)
 
static G4OH * Definition()
 
G4ThreeVector radialDistributionOfElectron() const
 
G4int GetNbProducts() const
 
G4ThreeVector radialDistributionOfProducts(G4double r_rms) const
 
static G4H2 * Definition()
 
static G4Hydrogen * Definition()