Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Data Structures | Public Member Functions | Protected Member Functions | Protected Attributes
G4DNABrownianTransportation Class Reference

#include <G4DNABrownianTransportation.hh>

Inheritance diagram for G4DNABrownianTransportation:
G4ITTransportation G4VITProcess G4VProcess

Data Structures

struct  G4ITBrownianState
 

Public Member Functions

 G4DNABrownianTransportation (const G4String &aName="DNABrownianTransportation", G4int verbosityLevel=1)
 
virtual ~G4DNABrownianTransportation ()
 
 G4DNABrownianTransportation (const G4DNABrownianTransportation &other)
 
G4DNABrownianTransportationoperator= (const G4DNABrownianTransportation &other)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void StartTracking (G4Track *aTrack)
 
virtual void ComputeStep (const G4Track &, const G4Step &, const double, double &)
 
virtual G4double AlongStepGetPhysicalInteractionLength (const G4Track &, G4double, G4double, G4double &, G4GPILSelection *)
 
virtual G4VParticleChangePostStepDoIt (const G4Track &track, const G4Step &)
 
virtual G4VParticleChangeAlongStepDoIt (const G4Track &track, const G4Step &)
 
- Public Member Functions inherited from G4ITTransportation
 G4ITTransportation (const G4String &aName="ITTransportation", G4int verbosityLevel=1)
 
virtual ~G4ITTransportation ()
 
 G4ITTransportation (const G4ITTransportation &)
 
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &, G4ForceCondition *)
 
virtual G4VParticleChangeAtRestDoIt (const G4Track &, const G4Step &)
 
virtual G4double PostStepGetPhysicalInteractionLength (const G4Track &, G4double, G4ForceCondition *pForceCond)
 
G4PropagatorInFieldGetPropagatorInField ()
 
void SetPropagatorInField (G4PropagatorInField *pFieldPropagator)
 
void SetVerboseLevel (G4int verboseLevel)
 
G4int GetVerboseLevel () const
 
G4double GetThresholdWarningEnergy () const
 
G4double GetThresholdImportantEnergy () const
 
G4int GetThresholdTrials () const
 
void SetThresholdWarningEnergy (G4double newEnWarn)
 
void SetThresholdImportantEnergy (G4double newEnImp)
 
void SetThresholdTrials (G4int newMaxTrials)
 
G4double GetMaxEnergyKilled () const
 
G4double GetSumEnergyKilled () const
 
void ResetKilledStatistics (G4int report=1)
 
void EnableShortStepOptimisation (G4bool optimise=true)
 
- Public Member Functions inherited from G4VITProcess
 G4VITProcess (const G4String &name, G4ProcessType type=fNotDefined)
 
virtual ~G4VITProcess ()
 
 G4VITProcess (const G4VITProcess &other)
 
G4VITProcessoperator= (const G4VITProcess &other)
 
G4int operator== (const G4VITProcess &right) const
 
G4int operator!= (const G4VITProcess &right) const
 
size_t GetProcessID () const
 
G4ProcessState_LockGetProcessState ()
 
void SetProcessState (G4ProcessState_Lock *aProcInfo)
 
G4double GetInteractionTimeLeft ()
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
G4bool ProposesTimeStep () const
 
- Public Member Functions inherited from G4VProcess
 G4VProcess (const G4String &aName="NoName", G4ProcessType aType=fNotDefined)
 
 G4VProcess (const G4VProcess &right)
 
virtual ~G4VProcess ()
 
G4int operator== (const G4VProcess &right) const
 
G4int operator!= (const G4VProcess &right) const
 
G4double GetCurrentInteractionLength () const
 
void SetPILfactor (G4double value)
 
G4double GetPILfactor () const
 
G4double AlongStepGPIL (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
 
G4double AtRestGPIL (const G4Track &track, G4ForceCondition *condition)
 
G4double PostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
virtual G4bool IsApplicable (const G4ParticleDefinition &)
 
virtual void PreparePhysicsTable (const G4ParticleDefinition &)
 
virtual G4bool StorePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
virtual G4bool RetrievePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
const G4StringGetPhysicsTableFileName (const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
 
const G4StringGetProcessName () const
 
G4ProcessType GetProcessType () const
 
void SetProcessType (G4ProcessType)
 
G4int GetProcessSubType () const
 
void SetProcessSubType (G4int)
 
virtual void EndTracking ()
 
virtual void SetProcessManager (const G4ProcessManager *)
 
virtual const G4ProcessManagerGetProcessManager ()
 
G4double GetNumberOfInteractionLengthLeft () const
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isAlongStepDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
virtual void DumpInfo () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
virtual void SetMasterProcess (G4VProcess *masterP)
 
const G4VProcessGetMasterProcess () const
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &part)
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &)
 

Protected Member Functions

void Diffusion (const G4Track &track)
 
- Protected Member Functions inherited from G4ITTransportation
G4bool DoesGlobalFieldExist ()
 
void SetInstantiateProcessState (G4bool flag)
 
G4bool InstantiateProcessState ()
 
- Protected Member Functions inherited from G4VITProcess
void RetrieveProcessInfo ()
 
void CreateInfo ()
 
virtual void ClearInteractionTimeLeft ()
 
virtual void ClearNumberOfInteractionLengthLeft ()
 
void SetInstantiateProcessState (G4bool flag)
 
G4bool InstantiateProcessState ()
 
- Protected Member Functions inherited from G4VProcess
void SubtractNumberOfInteractionLengthLeft (G4double previousStepSize)
 
void ClearNumberOfInteractionLengthLeft ()
 

Protected Attributes

G4ITBrownianState *const & fpBrownianState
 
G4bool fUseMaximumTimeBeforeReachingBoundary
 
G4MaterialfNistWater
 
const std::vector< G4double > * fpWaterDensity
 
- Protected Attributes inherited from G4ITTransportation
G4ITTransportationState *const & fTransportationState
 
G4ITNavigatorfLinearNavigator
 
G4PropagatorInFieldfFieldPropagator
 
G4ParticleChangeForTransport fParticleChange
 
G4double fThreshold_Warning_Energy
 
G4double fThreshold_Important_Energy
 
G4int fThresholdTrials
 
G4double fUnimportant_Energy
 
G4double fSumEnergyKilled
 
G4double fMaxEnergyKilled
 
G4bool fShortStepOptimisation
 
G4SafetyHelperfpSafetyHelper
 
G4int fVerboseLevel
 
- Protected Attributes inherited from G4VITProcess
G4ProcessStatefpState
 
G4bool fProposesTimeStep
 
- Protected Attributes inherited from G4VProcess
const G4ProcessManageraProcessManager
 
G4VParticleChangepParticleChange
 
G4ParticleChange aParticleChange
 
G4double theNumberOfInteractionLengthLeft
 
G4double currentInteractionLength
 
G4double theInitialNumberOfInteractionLength
 
G4String theProcessName
 
G4String thePhysicsTableFileName
 
G4ProcessType theProcessType
 
G4int theProcessSubType
 
G4double thePILfactor
 
G4bool enableAtRestDoIt
 
G4bool enableAlongStepDoIt
 
G4bool enablePostStepDoIt
 
G4int verboseLevel
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VITProcess
static const size_t & GetMaxProcessIndex ()
 
- Static Public Member Functions inherited from G4VProcess
static const G4StringGetProcessTypeName (G4ProcessType)
 

Detailed Description

Definition at line 50 of file G4DNABrownianTransportation.hh.

Constructor & Destructor Documentation

G4DNABrownianTransportation::G4DNABrownianTransportation ( const G4String aName = "DNABrownianTransportation",
G4int  verbosityLevel = 1 
)

Definition at line 83 of file G4DNABrownianTransportation.cc.

References G4NistManager::FindOrBuildMaterial(), fNistWater, fpWaterDensity, fUseMaximumTimeBeforeReachingBoundary, G4NistManager::Instance(), G4VProcess::SetProcessSubType(), and G4VProcess::verboseLevel.

83  :
84  G4ITTransportation(aName, verbosity),
86 {
87  //ctor
89  verboseLevel = 1;
92  fpWaterDensity = 0;
93 }
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
G4int verboseLevel
Definition: G4VProcess.hh:368
G4ITTransportation(const G4String &aName="ITTransportation", G4int verbosityLevel=1)
static G4NistManager * Instance()
void SetProcessSubType(G4int)
Definition: G4VProcess.hh:432
#define InitProcessState(destination, source)
Definition: G4VITProcess.hh:53
G4ITBrownianState *const & fpBrownianState
const std::vector< G4double > * fpWaterDensity
G4ITTransportationState *const & fTransportationState
G4DNABrownianTransportation::~G4DNABrownianTransportation ( )
virtual

Definition at line 95 of file G4DNABrownianTransportation.cc.

96 {;}
G4DNABrownianTransportation::G4DNABrownianTransportation ( const G4DNABrownianTransportation other)

Definition at line 98 of file G4DNABrownianTransportation.cc.

References fNistWater, fpWaterDensity, fUseMaximumTimeBeforeReachingBoundary, G4VProcess::SetProcessSubType(), and G4VProcess::verboseLevel.

98  :
101 {
102  //copy ctor
103  SetProcessSubType(61);
104  verboseLevel = right.verboseLevel;
105  fUseMaximumTimeBeforeReachingBoundary = right.fUseMaximumTimeBeforeReachingBoundary;
106  fNistWater = right.fNistWater;
107  fpWaterDensity = right.fpWaterDensity ;
108 }
G4int verboseLevel
Definition: G4VProcess.hh:368
G4ITTransportation(const G4String &aName="ITTransportation", G4int verbosityLevel=1)
void SetProcessSubType(G4int)
Definition: G4VProcess.hh:432
#define InitProcessState(destination, source)
Definition: G4VITProcess.hh:53
G4ITBrownianState *const & fpBrownianState
const std::vector< G4double > * fpWaterDensity
G4ITTransportationState *const & fTransportationState

Member Function Documentation

G4VParticleChange * G4DNABrownianTransportation::AlongStepDoIt ( const G4Track track,
const G4Step step 
)
virtual

Reimplemented from G4ITTransportation.

Definition at line 362 of file G4DNABrownianTransportation.cc.

References G4ITTransportation::AlongStepDoIt(), Diffusion(), and G4ITTransportation::fParticleChange.

364 {
366  Diffusion(track);
367  return &fParticleChange;
368 }
G4ParticleChangeForTransport fParticleChange
virtual G4VParticleChange * AlongStepDoIt(const G4Track &track, const G4Step &stepData)
void Diffusion(const G4Track &track)
G4double G4DNABrownianTransportation::AlongStepGetPhysicalInteractionLength ( const G4Track track,
G4double  previousStepSize,
G4double  currentMinimumStep,
G4double currentSafety,
G4GPILSelection selection 
)
virtual

Reimplemented from G4ITTransportation.

Definition at line 314 of file G4DNABrownianTransportation.cc.

References G4ITTransportation::AlongStepGetPhysicalInteractionLength(), fUseMaximumTimeBeforeReachingBoundary, G4UniformRand, G4Molecule::GetDiffusionCoefficient(), G4Track::GetGlobalTime(), GetMolecule(), and State.

320 {
322  previousStepSize,
323  currentMinimumStep,
324  currentSafety,
325  selection);
326 
327  G4double diffusionCoefficient = GetMolecule(track)->GetDiffusionCoefficient();
328  // G4double diffusionCoefficient = GetITBrownianObject(track)->GetDiffusionCoefficient(track.GetMaterial());
329 
330  if(State(fGeometryLimitedStep))
331  {
332  // 99 % of the space step distribution is lower than
333  // d_99 = 8 * sqrt(D*t)
334  // where t is the corresponding time step
335  // so by inversion :
337  {
338  State(theInteractionTimeLeft) = (geometryStepLength*geometryStepLength)/(64 * diffusionCoefficient);
339  }
340  else // Will use a random time
341  {
342  State(theInteractionTimeLeft) = 1/(4*diffusionCoefficient) * pow(geometryStepLength/InvErfc(G4UniformRand()),2);
343  }
344 
345  State(fCandidateEndGlobalTime) = track.GetGlobalTime() + State(theInteractionTimeLeft);
346  State(fPathLengthWasCorrected) = false;
347  }
348  else
349  {
350  geometryStepLength = 2*sqrt(diffusionCoefficient*State(theInteractionTimeLeft) ) *InvErf(G4UniformRand());
351  State(fPathLengthWasCorrected) = true;
352  State(endpointDistance) = geometryStepLength;
353  }
354 
355  return geometryStepLength ;
356 }
G4double GetDiffusionCoefficient() const
Definition: G4Molecule.cc:389
virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track &track, G4double, G4double currentMinimumStep, G4double &currentSafety, G4GPILSelection *selection)
#define State(theXInfo)
#define G4UniformRand()
Definition: Randomize.hh:87
G4double GetGlobalTime() const
G4Molecule * GetMolecule(const G4Track &track)
Definition: G4Molecule.cc:67
double G4double
Definition: G4Types.hh:76
void G4DNABrownianTransportation::BuildPhysicsTable ( const G4ParticleDefinition particle)
virtual

Reimplemented from G4ITTransportation.

Definition at line 129 of file G4DNABrownianTransportation.cc.

References fpWaterDensity, G4cout, G4endl, G4DNAMolecularMaterial::GetDensityTableFor(), G4Material::GetMaterial(), G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4VProcess::GetProcessSubType(), G4DNAMolecularMaterial::Instance(), and G4VProcess::verboseLevel.

130 {
131  if(verboseLevel > 0)
132  {
133  G4cout << G4endl << GetProcessName() << ": for "
134  << setw(24) << particle.GetParticleName()
135  << "\tSubType= " << GetProcessSubType() << G4endl;
136  }
137  // Initialize water density pointer
139 }
const std::vector< double > * GetDensityTableFor(const G4Material *) const
G4int verboseLevel
Definition: G4VProcess.hh:368
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
Definition: G4Material.cc:578
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
static G4DNAMolecularMaterial * Instance()
#define G4endl
Definition: G4ios.hh:61
G4int GetProcessSubType() const
Definition: G4VProcess.hh:426
const std::vector< G4double > * fpWaterDensity
void G4DNABrownianTransportation::ComputeStep ( const G4Track track,
const G4Step step,
const double  timeStep,
double &  spaceStep 
)
virtual

Reimplemented from G4ITTransportation.

Definition at line 141 of file G4DNABrownianTransportation.cc.

References DBL_MAX, FatalErrorInArgument, G4ITTransportation::fVerboseLevel, G4BestUnit, G4cout, G4endl, G4Exception(), G4Molecule::GetDiffusionCoefficient(), G4StepPoint::GetGlobalTime(), GetIT(), GetMolecule(), G4StepPoint::GetMomentumDirection(), G4Track::GetPosition(), G4Step::GetPostStepPoint(), G4Step::GetPreStepPoint(), G4StepPoint::GetProcessDefinedStep(), G4Track::GetTrackID(), GREEN_ON_BLUE, G4VITProcess::ProposesTimeStep(), RESET, G4INCL::DeJongSpin::shoot(), State, test::x, and z.

145 {
146  // G4cout << "G4ITBrownianTransportation::ComputeStep" << G4endl;
147 
148  /* If this method is called, this step
149  * cannot be geometry limited.
150  * In case the step is limited by the geometry,
151  * this method should not be called.
152  * The fTransportEndPosition calculated in
153  * the method AlongStepIL should be taken
154  * into account.
155  * In order to do so, the flag IsLeadingStep
156  * is on. Meaning : this track has the minimum
157  * interaction length over all others.
158  */
159  if(GetIT(track)->GetTrackingInfo()->IsLeadingStep())
160  {
161  const G4VITProcess* ITProc = ((const G4VITProcess*) step.GetPostStepPoint()->GetProcessDefinedStep());
162  bool makeException = true;
163 
164  if(ITProc && ITProc->ProposesTimeStep()) makeException = false;
165 
166  if(makeException)
167  {
168 
169  G4ExceptionDescription exceptionDescription ;
170  exceptionDescription << "ComputeStep is called while the track has the minimum interaction time";
171  exceptionDescription << " so it should not recompute a timeStep ";
172  G4Exception("G4DNABrownianTransportation::ComputeStep","G4DNABrownianTransportation001",
173  FatalErrorInArgument,exceptionDescription);
174  }
175  }
176 
177  State(fGeometryLimitedStep) = false;
178  // TODO : generalize this process to all kind of brownian objects
179  // G4ITBrownianObject* ITBrown = GetITBrownianObject(track) ;
180  // G4double diffCoeff = ITBrown->GetDiffusionCoefficient(track.GetMaterial());
181  G4Molecule* molecule = GetMolecule(track) ;
182  G4double diffCoeff = molecule->GetDiffusionCoefficient();
183 
184  if(timeStep > 0)
185  {
186  spaceStep = DBL_MAX;
187 
188  while(spaceStep > State(endpointDistance))
189  // Probably inefficient when the track is close close to boundaries
190  // it goes with fUserMaximumTimeBeforeReachingBoundary == false
191  // fUserMaximumTimeBeforeReachingBoundary == true, it should never loop
192  {
193  G4double x = G4RandGauss::shoot(0,sqrt(2*diffCoeff*timeStep));
194  G4double y = G4RandGauss::shoot(0,sqrt(2*diffCoeff*timeStep));
195  G4double z = G4RandGauss::shoot(0,sqrt(2*diffCoeff*timeStep));
196 
197  spaceStep = sqrt(x*x + y*y + z*z);
198  }
199  // State(fTransportEndPosition).set(x + track.GetPosition().x(),
200  // y + track.GetPosition().y(),
201  // z + track.GetPosition().z());
202 
203  State(fTransportEndPosition)= spaceStep*step.GetPostStepPoint()->GetMomentumDirection() + track.GetPosition();
204  }
205  else
206  {
207  spaceStep = 0. ;
208  State(fTransportEndPosition) = track.GetPosition() ;
209  }
210 
211  State(fCandidateEndGlobalTime) = step.GetPreStepPoint()->GetGlobalTime() + timeStep ;
212  State(fEndGlobalTimeComputed) = true ;
213 
214 #ifdef G4VERBOSE
215  // DEBUG
216  if(fVerboseLevel>1)
217  {
219  << "G4ITBrownianTransportation::ComputeStep() : "
220  << " trackID : " << track.GetTrackID()
221  << " : Molecule name: " << molecule-> GetName()
222  << G4endl
223  << "Diffusion length : " << G4BestUnit(spaceStep, "Length")
224  << " within time step : " << G4BestUnit(timeStep,"Time")
225  << RESET
226  << G4endl<< G4endl;
227  }
228 #endif
229 }
ThreeVector shoot(const G4int Ap, const G4int Af)
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
G4double z
Definition: TRTMaterials.hh:39
const G4ThreeVector & GetPosition() const
G4double GetDiffusionCoefficient() const
Definition: G4Molecule.cc:389
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4StepPoint * GetPreStepPoint() const
#define State(theXInfo)
const G4ThreeVector & GetMomentumDirection() const
G4IT * GetIT(const G4Track *track)
Definition: G4IT.cc:48
G4GLOB_DLL std::ostream G4cout
G4int GetTrackID() const
G4Molecule * GetMolecule(const G4Track &track)
Definition: G4Molecule.cc:67
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
const G4VProcess * GetProcessDefinedStep() const
G4StepPoint * GetPostStepPoint() const
#define G4endl
Definition: G4ios.hh:61
G4double GetGlobalTime() const
#define GREEN_ON_BLUE
double G4double
Definition: G4Types.hh:76
G4bool ProposesTimeStep() const
#define DBL_MAX
Definition: templates.hh:83
void G4DNABrownianTransportation::Diffusion ( const G4Track track)
protected

Definition at line 253 of file G4DNABrownianTransportation.cc.

References G4ITTransportation::fParticleChange, fStopButAlive, G4ITTransportation::fVerboseLevel, G4BestUnit, G4cout, G4endl, G4UniformRand, G4Track::GetCurrentStepNumber(), G4Track::GetGlobalTime(), G4Material::GetIndex(), GetIT(), G4Track::GetLocalTime(), G4Track::GetMaterial(), GetMolecule(), G4IT::GetName(), G4Molecule::GetName(), G4Track::GetTrackID(), GREEN_ON_BLUE, eplot::material, python.hepunit::pi, G4ParticleChange::ProposeEnergy(), G4ParticleChange::ProposeMomentumDirection(), G4VParticleChange::ProposeTrackStatus(), RESET, G4ParticleChangeForTransport::SetMomentumChanged(), and State.

Referenced by AlongStepDoIt().

255 {
256 
257 #ifdef G4VERBOSE
258  // DEBUG
259  if (fVerboseLevel>1)
260  {
262  << setw(18)<< "G4DNABrownianTransportation::Diffusion :"
263  << setw(8) << GetIT(track)->GetName()
264  << "\t trackID:" << track.GetTrackID() <<"\t"
265  << " Global Time = " << G4BestUnit(track.GetGlobalTime(),"Time")
266  << RESET
267  << G4endl<< G4endl;
268  }
269 #endif
270 
271  G4Material* material = track.GetMaterial();
272 // if (material != fNistWater && material->GetBaseMaterial() != fNistWater)
273 
274  G4double waterDensity = (*fpWaterDensity)[material->GetIndex()];
275 
276  if(waterDensity == 0.0)
277 // if (material == nistwater || material->GetBaseMaterial() == nistwater)
278  {
279  G4cout << "A track is outside water material : trackID"<< track.GetTrackID() << " (" << GetMolecule(track)->GetName() <<")" << G4endl;
280  G4cout << "Local Time : "<< (track.GetLocalTime()) /s<<G4endl;
281  G4cout<< "Step Number :" << track.GetCurrentStepNumber() <<G4endl;
282 
285 
286  // Got pb with :
287  // fParticleChange.ProposeTrackStatus(fStopAndKill);
288  // It makes the tracks going straight without killing them
289 
290  return ; // &fParticleChange is the final returned object
291  }
292 
293  G4double costheta = (2*G4UniformRand()-1);
294  G4double theta = acos (costheta);
295  G4double phi = 2*pi*G4UniformRand();
296 
297  G4double xMomentum = cos(phi)* sin(theta);
298  G4double yMomentum = sin(theta)*sin(phi);
299  G4double zMomentum = costheta;
300 
301  fParticleChange.ProposeMomentumDirection(xMomentum, yMomentum, zMomentum);
302  State(fMomentumChanged) = true;
304 
305  // G4cout << "BROWN : Propose new direction :" << G4ThreeVector(xMomentum, yMomentum, zMomentum) << G4endl;
306 
307  // Alternative
308  //fParticleChange.ProposeMomentumDirection(G4RandomDirection());
309 
310  return; // &fParticleChange is the final returned object
311 }
G4ParticleChangeForTransport fParticleChange
G4double GetLocalTime() const
const XML_Char * s
size_t GetIndex() const
Definition: G4Material.hh:260
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
virtual const G4String & GetName() const =0
string material
Definition: eplot.py:19
#define State(theXInfo)
const G4String & GetName() const
Definition: G4Molecule.cc:243
G4IT * GetIT(const G4Track *track)
Definition: G4IT.cc:48
#define G4UniformRand()
Definition: Randomize.hh:87
G4GLOB_DLL std::ostream G4cout
G4int GetCurrentStepNumber() const
G4int GetTrackID() const
G4double GetGlobalTime() const
G4Molecule * GetMolecule(const G4Track &track)
Definition: G4Molecule.cc:67
G4Material * GetMaterial() const
void ProposeEnergy(G4double finalEnergy)
#define G4endl
Definition: G4ios.hh:61
#define GREEN_ON_BLUE
void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz)
double G4double
Definition: G4Types.hh:76
void ProposeTrackStatus(G4TrackStatus status)
void SetMomentumChanged(G4bool b)
G4DNABrownianTransportation & G4DNABrownianTransportation::operator= ( const G4DNABrownianTransportation other)

Definition at line 110 of file G4DNABrownianTransportation.cc.

111 {
112  if (this == &rhs) return *this; // handle self assignment
113  //assignment operator
114  return *this;
115 }
G4VParticleChange * G4DNABrownianTransportation::PostStepDoIt ( const G4Track track,
const G4Step step 
)
virtual

Reimplemented from G4ITTransportation.

Definition at line 231 of file G4DNABrownianTransportation.cc.

References G4ITTransportation::fParticleChange, G4ITTransportation::fVerboseLevel, G4BestUnit, G4cout, G4endl, G4Step::GetDeltaTime(), G4Track::GetGlobalTime(), GetMolecule(), G4Step::GetStepLength(), G4Track::GetTrackID(), GREEN_ON_BLUE, G4ITTransportation::PostStepDoIt(), and RESET.

232 {
234 
235 #ifdef G4VERBOSE
236  // DEBUG
237  if(fVerboseLevel>1)
238  {
240  << "G4ITBrownianTransportation::PostStepDoIt() :"
241  << " trackID : " << track.GetTrackID()
242  << " Molecule name: " << GetMolecule(track)-> GetName() << G4endl;
243  G4cout<< "Diffusion length : "<< G4BestUnit(step.GetStepLength(),"Length") <<" within time step : "
244  << G4BestUnit(step.GetDeltaTime(),"Time") << "\t"
245  << " Current global time : " << G4BestUnit(track.GetGlobalTime(),"Time")
246  << RESET
247  << G4endl<< G4endl;
248  }
249 #endif
250  return &fParticleChange ;
251 }
G4ParticleChangeForTransport fParticleChange
G4double GetStepLength() const
virtual G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &)
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4GLOB_DLL std::ostream G4cout
G4double GetDeltaTime() const
G4int GetTrackID() const
G4double GetGlobalTime() const
G4Molecule * GetMolecule(const G4Track &track)
Definition: G4Molecule.cc:67
#define G4endl
Definition: G4ios.hh:61
#define GREEN_ON_BLUE
void G4DNABrownianTransportation::StartTracking ( G4Track aTrack)
virtual

Reimplemented from G4ITTransportation.

Definition at line 122 of file G4DNABrownianTransportation.cc.

References G4VITProcess::fpState, G4ITTransportation::SetInstantiateProcessState(), and G4ITTransportation::StartTracking().

123 {
124  fpState = new G4ITBrownianState();
127 }
G4ProcessState * fpState
virtual void StartTracking(G4Track *aTrack)
void SetInstantiateProcessState(G4bool flag)

Field Documentation

G4Material* G4DNABrownianTransportation::fNistWater
protected

Definition at line 93 of file G4DNABrownianTransportation.hh.

Referenced by G4DNABrownianTransportation().

G4ITBrownianState* const& G4DNABrownianTransportation::fpBrownianState
protected

Definition at line 90 of file G4DNABrownianTransportation.hh.

const std::vector<G4double>* G4DNABrownianTransportation::fpWaterDensity
protected
G4bool G4DNABrownianTransportation::fUseMaximumTimeBeforeReachingBoundary
protected

The documentation for this class was generated from the following files: