67 G4cout <<
"G4MolecularDissociationProcess constructor " <<
" Name:"
117 G4cout <<
"G4MolecularDissociation::IsApplicable(";
136 return (output > 0 ? output : 0);
159 const vector<const G4MolecularDissociationChannel*>* DecayVector =
166 exceptionDescription <<
"No decay channel was found for the molecule : "
169 "G4DNAMolecularDissociation::NoDecayChannel",
171 exceptionDescription);
175 G4int DecayVectorSize = DecayVector->size();
184 decayChannel = (*DecayVector)[i];
185 if(RdmValue < decayChannel->GetProbability())
break;
189 while(i < DecayVectorSize);
213 vector<G4ThreeVector> ProductsDisplacement(nbProducts);
216 DisplacementMap::iterator it =
223 theMotherMoleculeDisplacement =
229 errMsg <<
"No G4MolecularDecayProcess::theDecayDisplacementMap["
230 << theMotherMolecule->
GetName() +
"]";
232 "DNAMolecularDecay001",
246 <<
" (trackID :" << track.
GetTrackID() <<
") "
251 G4ITNavigator* navigator =
255 for(
G4int j = 0; j < nbProducts; j++)
260 + ProductsDisplacement[j];
261 double mag_displacement = displacement.
mag();
263 displacement/(mag_displacement+1
e-30);
269 displacement_direction,
274 mag_displacement =
min(prNewSafety*0.8, mag_displacement);
277 + displacement_direction * mag_displacement;
280 ->GetGlobalToLocalTransform();
288 G4cout <<
"Mother volume: "
292 "OUTSIDE_OF_MOTHER_VOLUME",
294 "Product has been placed outside of the volume "
295 "containing the mother molecule");
static G4ITTransportationManager * GetTransportationManager()
std::ostringstream G4ExceptionDescription
void SetDecayDisplacer(const G4ParticleDefinition *, G4VMolecularDecayDisplacer *)
G4DNAMolecularDissociation()
const G4String & GetName() const
const G4String & GetParticleName() const
virtual G4ThreeVector GetMotherMoleculeDisplacement(const G4MolecularDissociationChannel *) const =0
const G4String & GetParticleType() const
G4bool enablePostStepDoIt
virtual G4VPhysicalVolume * GetVolume(G4int depth=0) const
G4double GetProperTime() const
virtual EInside Inside(const G4ThreeVector &p) const =0
G4ParticleChange aParticleChange
G4double GetProbability() const
virtual G4VSolid * GetSolid(G4int depth=0) const
G4VMolecularDecayDisplacer * GetDecayDisplacer(const G4ParticleDefinition *)
const G4VTouchable * GetTouchable() const
G4VParticleChange * pParticleChange
G4double GetDecayTime() const
virtual void Initialize(const G4Track &)
void SetDisplacer(const G4ParticleDefinition *, G4VMolecularDecayDisplacer *)
G4MolecularConfiguration * GetProduct(int) const
virtual G4bool IsApplicable(const G4ParticleDefinition &)
G4double GetGlobalTime() const
const G4MoleculeDefinition * GetDefinition() const
const G4ThreeVector & GetPosition() const
virtual std::vector< G4ThreeVector > GetProductsDisplacement(const G4MolecularDissociationChannel *) const =0
const G4MolecularDissociationTable * GetDecayTable() const
G4ITNavigator * GetNavigatorForTracking() const
G4Molecule * GetMolecule(const G4Track &track)
G4double GetEnergy() const
const G4String & GetName() const
virtual G4VParticleChange * DecayIt(const G4Track &, const G4Step &)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
const std::vector< const G4MolecularDissociationChannel * > * GetDecayChannel() const
G4VMolecularDecayDisplacer * GetDisplacer(const G4ParticleDefinition *)
virtual G4double GetMeanLifeTime(const G4Track &, G4ForceCondition *)
Identical to G4VRestDiscreteProcess with dependency from G4VITProcess.
void SetProcessSubType(G4int)
G4GLOB_DLL std::ostream G4cout
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
virtual ~G4DNAMolecularDissociation()
void SetTrackStatus(const G4TrackStatus aTrackStatus)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
G4bool enableAlongStepDoIt
G4Track * BuildTrack(G4double globalTime, const G4ThreeVector &Position)
DisplacementMap fDisplacementMap
void ProposeTrackStatus(G4TrackStatus status)
const G4String & GetName() const
G4int GetNbProducts() const
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
void SetNumberOfSecondaries(G4int totSecondaries)