Geant4  10.03.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
XWrapperContinuousDiscreteProcess Class Reference

#include <XWrapperContinuousDiscreteProcess.hh>

Inheritance diagram for XWrapperContinuousDiscreteProcess:
Collaboration diagram for XWrapperContinuousDiscreteProcess:

Public Member Functions

 XWrapperContinuousDiscreteProcess (const G4String &processName="XWrapperContinuousDiscreteProcess")
 
 XWrapperContinuousDiscreteProcess (const G4String &processName, G4VContinuousDiscreteProcess *)
 
 XWrapperContinuousDiscreteProcess (const G4String &processName, G4ProcessType)
 
G4int ItHasToWork (const G4Track &)
 
virtual ~XWrapperContinuousDiscreteProcess ()
 
void RegisterProcess (G4VContinuousDiscreteProcess *)
 
void RegisterProcess (G4VContinuousDiscreteProcess *, G4int, G4int aBool=0)
 
G4VContinuousDiscreteProcessGetRegisteredProcess ()
 
G4double GetDensity (const G4Track &)
 
G4double GetDensityPreviousStep (const G4Track &)
 
void SetNucleiOrElectronFlag (G4int)
 
G4int GetNucleiOrElectronFlag ()
 
virtual G4VParticleChangePostStepDoIt (const G4Track &, const G4Step &)
 
virtual G4VParticleChangeAlongStepDoIt (const G4Track &, const G4Step &)
 
virtual G4VParticleChangeAtRestDoIt (const G4Track &aTrack, const G4Step &aStep)
 
virtual G4double PostStepGetPhysicalInteractionLength (const G4Track &, G4double, G4ForceCondition *)
 
virtual G4double AlongStepGetPhysicalInteractionLength (const G4Track &, G4double, G4double, G4double &, G4GPILSelection *)
 
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &aTrack, G4ForceCondition *condition)
 
virtual void StartTracking (G4Track *aTrack)
 
virtual void EndTracking ()
 
virtual void SetProcessManager (const G4ProcessManager *aPM)
 
virtual const G4ProcessManagerGetProcessManager ()
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
virtual void DumpInfo () const
 
virtual void SetMasterProcess (G4VProcess *masterP)
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &aPD)
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &aPD)
 
virtual G4bool IsApplicable (const G4ParticleDefinition &aPD)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &aPD)
 
virtual void PreparePhysicsTable (const G4ParticleDefinition &aPD)
 
virtual G4bool StorePhysicsTable (const G4ParticleDefinition *aPD, const G4String &aString, G4bool aBool)
 
virtual G4bool RetrievePhysicsTable (const G4ParticleDefinition *aPD, const G4String &aString, G4bool aBool)
 
- Public Member Functions inherited from G4VContinuousDiscreteProcess
 G4VContinuousDiscreteProcess (const G4String &, G4ProcessType aType=fNotDefined)
 
 G4VContinuousDiscreteProcess (G4VContinuousDiscreteProcess &)
 
virtual ~G4VContinuousDiscreteProcess ()
 
- 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)
 
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)
 
G4double GetNumberOfInteractionLengthLeft () const
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isAlongStepDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
const G4VProcessGetMasterProcess () const
 

Protected Member Functions

virtual G4double GetMeanFreePath (const G4Track &, G4double, G4ForceCondition *)
 
virtual G4double GetContinuousStepLimit (const G4Track &, G4double, G4double, G4double &)
 
- Protected Member Functions inherited from G4VContinuousDiscreteProcess
void SetGPILSelection (G4GPILSelection selection)
 
G4GPILSelection GetGPILSelection () const
 
- Protected Member Functions inherited from G4VProcess
void SubtractNumberOfInteractionLengthLeft (G4double previousStepSize)
 
void ClearNumberOfInteractionLengthLeft ()
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VProcess
static const G4StringGetProcessTypeName (G4ProcessType)
 
- 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
 

Detailed Description

Definition at line 41 of file XWrapperContinuousDiscreteProcess.hh.

Constructor & Destructor Documentation

XWrapperContinuousDiscreteProcess::XWrapperContinuousDiscreteProcess ( const G4String processName = "XWrapperContinuousDiscreteProcess")

Definition at line 47 of file XWrapperContinousDiscreteProcess.cc.

49  if (verboseLevel>1) {
50  G4cout << GetProcessName() << " is created "<< G4endl;
51  }
52  bNucleiOrElectronFlag = +0;
53  bBothOrCrystalOrDetectorPhysics = +0;
54  fParticleChangeForNothing = new G4ParticleChangeForNothing();
55 }
G4int verboseLevel
Definition: G4VProcess.hh:368
G4GLOB_DLL std::ostream G4cout
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

XWrapperContinuousDiscreteProcess::XWrapperContinuousDiscreteProcess ( const G4String processName,
G4VContinuousDiscreteProcess toRegister 
)

Definition at line 60 of file XWrapperContinousDiscreteProcess.cc.

63  fRegisteredProcess = toRegister;
64  if (verboseLevel>1) {
65  G4cout << GetProcessName() << " is created "<< G4endl;
66  }
67  theProcessType = fRegisteredProcess->GetProcessType();
68  theProcessSubType = fRegisteredProcess->GetProcessSubType();
69  enableAtRestDoIt = fRegisteredProcess->isAtRestDoItIsEnabled();
70  enableAlongStepDoIt = fRegisteredProcess->isAlongStepDoItIsEnabled();
71  enablePostStepDoIt = fRegisteredProcess->isPostStepDoItIsEnabled();
72  bNucleiOrElectronFlag = +0;
73  bBothOrCrystalOrDetectorPhysics = +0;
74  fParticleChangeForNothing = new G4ParticleChangeForNothing();
75 }
G4ProcessType theProcessType
Definition: G4VProcess.hh:340
G4int verboseLevel
Definition: G4VProcess.hh:368
G4bool isAlongStepDoItIsEnabled() const
Definition: G4VProcess.hh:526
G4bool isPostStepDoItIsEnabled() const
Definition: G4VProcess.hh:532
G4bool isAtRestDoItIsEnabled() const
Definition: G4VProcess.hh:520
G4int theProcessSubType
Definition: G4VProcess.hh:343
G4ProcessType GetProcessType() const
Definition: G4VProcess.hh:414
G4bool enableAtRestDoIt
Definition: G4VProcess.hh:350
G4GLOB_DLL std::ostream G4cout
G4bool enablePostStepDoIt
Definition: G4VProcess.hh:352
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
#define G4endl
Definition: G4ios.hh:61
G4bool enableAlongStepDoIt
Definition: G4VProcess.hh:351
G4int GetProcessSubType() const
Definition: G4VProcess.hh:426

Here is the call graph for this function:

XWrapperContinuousDiscreteProcess::XWrapperContinuousDiscreteProcess ( const G4String processName,
G4ProcessType  aProcessType 
)

Definition at line 80 of file XWrapperContinousDiscreteProcess.cc.

82 :G4VContinuousDiscreteProcess(aName,aProcessType){
83  if (verboseLevel>1) {
84  G4cout << GetProcessName() << " is created "<< G4endl;
85  }
86  theProcessType = aProcessType;
87  bNucleiOrElectronFlag = +0;
88  bBothOrCrystalOrDetectorPhysics = +0;
89  fParticleChangeForNothing = new G4ParticleChangeForNothing();
90 }
G4ProcessType theProcessType
Definition: G4VProcess.hh:340
G4int verboseLevel
Definition: G4VProcess.hh:368
G4GLOB_DLL std::ostream G4cout
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

XWrapperContinuousDiscreteProcess::~XWrapperContinuousDiscreteProcess ( )
virtual

Definition at line 94 of file XWrapperContinousDiscreteProcess.cc.

94  {
95  ;
96 }

Member Function Documentation

G4VParticleChange * XWrapperContinuousDiscreteProcess::AlongStepDoIt ( const G4Track aTrack,
const G4Step aStep 
)
virtual

Reimplemented from G4VContinuousDiscreteProcess.

Definition at line 376 of file XWrapperContinousDiscreteProcess.cc.

377  {
378 
379  if(ItHasToWork(aTrack) == 1){
380  G4double vDensity = GetDensity(aTrack);
381  G4double vStepLengthSaved = aStep.GetStepLength();
382  const_cast<G4Step&>(aStep).SetStepLength(
383  aStep.GetStepLength() * vDensity);
384  pParticleChange = fRegisteredProcess->AlongStepDoIt(aTrack, aStep);
385  const_cast<G4Step&>(aStep).SetStepLength(vStepLengthSaved);
386  return pParticleChange;
387  }
388  else if(ItHasToWork(aTrack) == 2){
389  return fRegisteredProcess->AlongStepDoIt(aTrack, aStep);
390  }
391  pParticleChange = fParticleChangeForNothing;
392  return pParticleChange;
393 }
G4double GetStepLength() const
virtual G4VParticleChange * AlongStepDoIt(const G4Track &, const G4Step &)
Definition: G4Step.hh:76
G4VParticleChange * pParticleChange
Definition: G4VProcess.hh:283
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

G4double XWrapperContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength ( const G4Track aTrack,
G4double  previousStepSize,
G4double  currentMinimumStep,
G4double currentSafety,
G4GPILSelection selection 
)
virtual

Reimplemented from G4VContinuousDiscreteProcess.

Definition at line 324 of file XWrapperContinousDiscreteProcess.cc.

328  {
329 
330  if(ItHasToWork(aTrack) == 1){
331  G4double vDensityPreviousStep = GetDensityPreviousStep(aTrack);
332 
333  return fRegisteredProcess->AlongStepGetPhysicalInteractionLength(aTrack,
334  previousStepSize * vDensityPreviousStep,
335  currentMinimumStep,
336  currentSafety,
337  selection);
338  }
339  else if(ItHasToWork(aTrack) == 2){
340  return fRegisteredProcess->AlongStepGetPhysicalInteractionLength(aTrack,
341  previousStepSize,
342  currentMinimumStep,
343  currentSafety,
344  selection);
345  }
346  else{
347  return DBL_MAX;
348  }
349 }
virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track &, G4double previousStepSize, G4double currentMinimumStep, G4double &currentSafety, G4GPILSelection *selection)
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83

Here is the call graph for this function:

virtual G4VParticleChange* XWrapperContinuousDiscreteProcess::AtRestDoIt ( const G4Track aTrack,
const G4Step aStep 
)
inlinevirtual

Reimplemented from G4VContinuousDiscreteProcess.

Definition at line 91 of file XWrapperContinuousDiscreteProcess.hh.

92  {
93  return fRegisteredProcess->AtRestDoIt(aTrack,aStep);
94  }
virtual G4VParticleChange * AtRestDoIt(const G4Track &, const G4Step &)

Here is the call graph for this function:

virtual G4double XWrapperContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength ( const G4Track aTrack,
G4ForceCondition condition 
)
inlinevirtual

Reimplemented from G4VContinuousDiscreteProcess.

Definition at line 107 of file XWrapperContinuousDiscreteProcess.hh.

108  {
109  return fRegisteredProcess->AtRestGetPhysicalInteractionLength(aTrack,
110  condition);
111  };
G4double condition(const G4ErrorSymMatrix &m)
virtual G4double AtRestGetPhysicalInteractionLength(const G4Track &, G4ForceCondition *)

Here is the call graph for this function:

virtual void XWrapperContinuousDiscreteProcess::BuildPhysicsTable ( const G4ParticleDefinition aPD)
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 140 of file XWrapperContinuousDiscreteProcess.hh.

141  {fRegisteredProcess->BuildPhysicsTable(aPD);};
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:210

Here is the call graph for this function:

virtual void XWrapperContinuousDiscreteProcess::BuildWorkerPhysicsTable ( const G4ParticleDefinition aPD)
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 131 of file XWrapperContinuousDiscreteProcess.hh.

132  {fRegisteredProcess->BuildWorkerPhysicsTable(aPD);};
virtual void BuildWorkerPhysicsTable(const G4ParticleDefinition &part)
Definition: G4VProcess.cc:202

Here is the call graph for this function:

virtual void XWrapperContinuousDiscreteProcess::DumpInfo ( ) const
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 122 of file XWrapperContinuousDiscreteProcess.hh.

122 {fRegisteredProcess->DumpInfo();};
virtual void DumpInfo() const
Definition: G4VProcess.cc:178

Here is the call graph for this function:

virtual void XWrapperContinuousDiscreteProcess::EndTracking ( )
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 115 of file XWrapperContinuousDiscreteProcess.hh.

115 {fRegisteredProcess->EndTracking();};
virtual void EndTracking()
Definition: G4VProcess.cc:113

Here is the call graph for this function:

G4double XWrapperContinuousDiscreteProcess::GetContinuousStepLimit ( const G4Track ,
G4double  ,
G4double  ,
G4double  
)
protectedvirtual

Implements G4VContinuousDiscreteProcess.

Definition at line 398 of file XWrapperContinousDiscreteProcess.cc.

401  {
402  return DBL_MAX;
403 }
#define DBL_MAX
Definition: templates.hh:83
G4double XWrapperContinuousDiscreteProcess::GetDensity ( const G4Track aTrack)

Definition at line 174 of file XWrapperContinousDiscreteProcess.cc.

174  {
175  //Retrieve nuclei and electron density
176  //from ExExChParticleUserInfo object
177  G4double vDensity = 1.;
178 
179  if(ItHasToWork(aTrack) == 1){
180  ExExChParticleUserInfo* chanInfo =
182 
183  if(chanInfo){
184  if(bNucleiOrElectronFlag == +1){
185  vDensity = chanInfo->GetNucleiDensity();
186  }
187  else if(bNucleiOrElectronFlag == -1){
188  vDensity = chanInfo->GetElectronDensity();
189  }
190  else{
191  vDensity = (chanInfo->GetNucleiDensity()
192  + chanInfo->GetElectronDensity())/2.;
193  }
194  }
195  }
196 
197  return vDensity;
198 }
G4VUserTrackInformation * GetUserInformation() const
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

Here is the caller graph for this function:

G4double XWrapperContinuousDiscreteProcess::GetDensityPreviousStep ( const G4Track aTrack)

Definition at line 203 of file XWrapperContinousDiscreteProcess.cc.

203  {
204  //Retrieve nuclei and electron density
205  //from ExExChParticleUserInfo object
206 
207  G4double vDensityPreviousStep = 1.;
208 
209  if(ItHasToWork(aTrack) == 1){
210  ExExChParticleUserInfo* chanInfo =
212 
213  if(bNucleiOrElectronFlag == +1){
214  vDensityPreviousStep = chanInfo->GetNucleiDensityPreviousStep();
215  }
216  else if(bNucleiOrElectronFlag == -1){
217  vDensityPreviousStep = chanInfo->GetElectronDensityPreviousStep();
218  }
219  else{
220  vDensityPreviousStep =
221  (chanInfo->GetNucleiDensityPreviousStep()
222  + chanInfo->GetElectronDensityPreviousStep())/2.;
223  }
224  }
225 
226  return vDensityPreviousStep;
227 }
G4VUserTrackInformation * GetUserInformation() const
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

Here is the caller graph for this function:

G4double XWrapperContinuousDiscreteProcess::GetMeanFreePath ( const G4Track aTrack,
G4double  previousStepSize,
G4ForceCondition condition 
)
protectedvirtual

Implements G4VContinuousDiscreteProcess.

Definition at line 257 of file XWrapperContinousDiscreteProcess.cc.

259  {
260  if(ItHasToWork(aTrack) == 2){
261  return fRegisteredProcess->PostStepGetPhysicalInteractionLength(aTrack,
262  previousStepSize,
263  condition);
264  }
265  return DBL_MAX;
266 }
G4double condition(const G4ErrorSymMatrix &m)
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
#define DBL_MAX
Definition: templates.hh:83

Here is the call graph for this function:

G4int XWrapperContinuousDiscreteProcess::GetNucleiOrElectronFlag ( )

Definition at line 142 of file XWrapperContinousDiscreteProcess.cc.

142  {
143  return bNucleiOrElectronFlag;
144 }
virtual const G4ProcessManager* XWrapperContinuousDiscreteProcess::GetProcessManager ( )
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 118 of file XWrapperContinuousDiscreteProcess.hh.

119  {return fRegisteredProcess->GetProcessManager();};
virtual const G4ProcessManager * GetProcessManager()
Definition: G4VProcess.hh:514

Here is the call graph for this function:

G4VContinuousDiscreteProcess* XWrapperContinuousDiscreteProcess::GetRegisteredProcess ( )
inline

Definition at line 60 of file XWrapperContinuousDiscreteProcess.hh.

61  {return fRegisteredProcess;};
virtual G4bool XWrapperContinuousDiscreteProcess::IsApplicable ( const G4ParticleDefinition aPD)
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 138 of file XWrapperContinuousDiscreteProcess.hh.

139  {return fRegisteredProcess->IsApplicable(aPD);};
virtual G4bool IsApplicable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:205

Here is the call graph for this function:

G4int XWrapperContinuousDiscreteProcess::ItHasToWork ( const G4Track aTrack)

Definition at line 148 of file XWrapperContinousDiscreteProcess.cc.

148  {
149  ExExChParticleUserInfo* chanInfo =
151 
152  if(chanInfo){
153  if((chanInfo->GetInTheCrystal() == true) &&
154  (bBothOrCrystalOrDetectorPhysics == 1 ||
155  bBothOrCrystalOrDetectorPhysics == 0)){
156  return 1;
157  }
158  if((chanInfo->GetInTheCrystal() == false) &&
159  (bBothOrCrystalOrDetectorPhysics == 2 ||
160  bBothOrCrystalOrDetectorPhysics == 0)){
161  return 2;
162  }
163  }
164  else {
165  G4cout << G4endl << "XWrapperDiscreteProcess::";
166  G4cout << "ERROR - no ExExChParticleUserInfo object Detected";
167  G4cout << G4endl;
168  }
169 
170  return 0;
171 }
G4VUserTrackInformation * GetUserInformation() const
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

Here is the caller graph for this function:

G4VParticleChange * XWrapperContinuousDiscreteProcess::PostStepDoIt ( const G4Track aTrack,
const G4Step aStep 
)
virtual

Reimplemented from G4VContinuousDiscreteProcess.

Definition at line 354 of file XWrapperContinousDiscreteProcess.cc.

355  {
356 
357  if(ItHasToWork(aTrack) == 1){
358  G4double vDensity = GetDensity(aTrack);
359  G4double vStepLengthSaved = aStep.GetStepLength();
360  const_cast<G4Step&>(aStep).SetStepLength(
361  aStep.GetStepLength() * vDensity);
362  pParticleChange = fRegisteredProcess->PostStepDoIt(aTrack, aStep);
363  const_cast<G4Step&>(aStep).SetStepLength(vStepLengthSaved);
364  return pParticleChange;
365  }
366  else if(ItHasToWork(aTrack) == 2){
367  return fRegisteredProcess->PostStepDoIt(aTrack, aStep);
368  }
369  pParticleChange = fParticleChangeForNothing;
370  return pParticleChange;
371 }
G4double GetStepLength() const
Definition: G4Step.hh:76
G4VParticleChange * pParticleChange
Definition: G4VProcess.hh:283
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

G4double XWrapperContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength ( const G4Track aTrack,
G4double  previousStepSize,
G4ForceCondition condition 
)
virtual

Reimplemented from G4VContinuousDiscreteProcess.

Definition at line 271 of file XWrapperContinousDiscreteProcess.cc.

273  {
274 
275  if(ItHasToWork(aTrack) == 1){
276  G4double vDensity = GetDensity(aTrack);
277  G4double vDensityPreviousStep = GetDensityPreviousStep(aTrack);
278 
279  if ( (previousStepSize < 0.0) ||
281  // beginning of tracking (or just after DoIt of this process)
283  } else if ( previousStepSize > 0.0) {
284  // subtract NumberOfInteractionLengthLeft
286  * vDensityPreviousStep);
287  } else {
288  // zero step DO NOTHING
289  }
290 
291  G4double regIntLength =
292  fRegisteredProcess->PostStepGetPhysicalInteractionLength(aTrack,
293  previousStepSize * vDensityPreviousStep,
294  condition);
295  G4double regIntNumber =
296  fRegisteredProcess->GetNumberOfInteractionLengthLeft();
297  if(regIntNumber!=0){
298  currentInteractionLength = regIntLength / regIntNumber;
299  }
300  else{
301  return DBL_MAX;
302  }
303  theNumberOfInteractionLengthLeft = regIntNumber;
304 
307  if ( vDensity == 0. ) return DBL_MAX;
308  currentInteractionLength /= vDensity;
310  }
311  else if(ItHasToWork(aTrack) == 2){
312  return fRegisteredProcess->PostStepGetPhysicalInteractionLength(aTrack,
313  previousStepSize,
314  condition);
315  }
316  else{
317  return DBL_MAX;
318  }
319 }
G4double condition(const G4ErrorSymMatrix &m)
G4double theNumberOfInteractionLengthLeft
Definition: G4VProcess.hh:293
G4double GetNumberOfInteractionLengthLeft() const
Definition: G4VProcess.hh:453
G4double currentInteractionLength
Definition: G4VProcess.hh:297
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
void SubtractNumberOfInteractionLengthLeft(G4double previousStepSize)
Definition: G4VProcess.hh:544
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83

Here is the call graph for this function:

virtual void XWrapperContinuousDiscreteProcess::PreparePhysicsTable ( const G4ParticleDefinition aPD)
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 142 of file XWrapperContinuousDiscreteProcess.hh.

143  {fRegisteredProcess->PreparePhysicsTable(aPD);};
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:217

Here is the call graph for this function:

virtual void XWrapperContinuousDiscreteProcess::PrepareWorkerPhysicsTable ( const G4ParticleDefinition aPD)
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 133 of file XWrapperContinuousDiscreteProcess.hh.

134  {fRegisteredProcess->PrepareWorkerPhysicsTable(aPD);};
virtual void PrepareWorkerPhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.cc:207

Here is the call graph for this function:

void XWrapperContinuousDiscreteProcess::RegisterProcess ( G4VContinuousDiscreteProcess toRegister)

Definition at line 109 of file XWrapperContinousDiscreteProcess.cc.

109  {
110  fRegisteredProcess = toRegister;
111  theProcessType = fRegisteredProcess->GetProcessType();
112  theProcessSubType = fRegisteredProcess->GetProcessSubType();
113  enableAtRestDoIt = fRegisteredProcess->isAtRestDoItIsEnabled();
114  enableAlongStepDoIt = fRegisteredProcess->isAlongStepDoItIsEnabled();
115  enablePostStepDoIt = fRegisteredProcess->isPostStepDoItIsEnabled();
116 }
G4ProcessType theProcessType
Definition: G4VProcess.hh:340
G4bool isAlongStepDoItIsEnabled() const
Definition: G4VProcess.hh:526
G4bool isPostStepDoItIsEnabled() const
Definition: G4VProcess.hh:532
G4bool isAtRestDoItIsEnabled() const
Definition: G4VProcess.hh:520
G4int theProcessSubType
Definition: G4VProcess.hh:343
G4ProcessType GetProcessType() const
Definition: G4VProcess.hh:414
G4bool enableAtRestDoIt
Definition: G4VProcess.hh:350
G4bool enablePostStepDoIt
Definition: G4VProcess.hh:352
G4bool enableAlongStepDoIt
Definition: G4VProcess.hh:351
G4int GetProcessSubType() const
Definition: G4VProcess.hh:426

Here is the call graph for this function:

Here is the caller graph for this function:

void XWrapperContinuousDiscreteProcess::RegisterProcess ( G4VContinuousDiscreteProcess toRegister,
G4int  flag,
G4int  aBool = 0 
)

Definition at line 121 of file XWrapperContinousDiscreteProcess.cc.

123  {
124  fRegisteredProcess = toRegister;
125  theProcessType = fRegisteredProcess->GetProcessType();
126  theProcessSubType = fRegisteredProcess->GetProcessSubType();
127  enableAtRestDoIt = fRegisteredProcess->isAtRestDoItIsEnabled();
128  enableAlongStepDoIt = fRegisteredProcess->isAlongStepDoItIsEnabled();
129  enablePostStepDoIt = fRegisteredProcess->isPostStepDoItIsEnabled();
130  bNucleiOrElectronFlag = flag;
131  bBothOrCrystalOrDetectorPhysics = region;
132 }
G4ProcessType theProcessType
Definition: G4VProcess.hh:340
G4bool isAlongStepDoItIsEnabled() const
Definition: G4VProcess.hh:526
G4bool isPostStepDoItIsEnabled() const
Definition: G4VProcess.hh:532
G4bool isAtRestDoItIsEnabled() const
Definition: G4VProcess.hh:520
G4int theProcessSubType
Definition: G4VProcess.hh:343
G4ProcessType GetProcessType() const
Definition: G4VProcess.hh:414
G4bool enableAtRestDoIt
Definition: G4VProcess.hh:350
G4bool enablePostStepDoIt
Definition: G4VProcess.hh:352
G4bool enableAlongStepDoIt
Definition: G4VProcess.hh:351
G4int GetProcessSubType() const
Definition: G4VProcess.hh:426

Here is the call graph for this function:

virtual void XWrapperContinuousDiscreteProcess::ResetNumberOfInteractionLengthLeft ( )
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 120 of file XWrapperContinuousDiscreteProcess.hh.

121  {fRegisteredProcess->ResetNumberOfInteractionLengthLeft();};
virtual void ResetNumberOfInteractionLengthLeft()
Definition: G4VProcess.cc:95

Here is the call graph for this function:

Here is the caller graph for this function:

virtual G4bool XWrapperContinuousDiscreteProcess::RetrievePhysicsTable ( const G4ParticleDefinition aPD,
const G4String aString,
G4bool  aBool 
)
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 148 of file XWrapperContinuousDiscreteProcess.hh.

151  {return fRegisteredProcess->RetrievePhysicsTable(aPD,aString,aBool);};
virtual G4bool RetrievePhysicsTable(const G4ParticleDefinition *, const G4String &, G4bool)
Definition: G4VProcess.hh:236

Here is the call graph for this function:

virtual void XWrapperContinuousDiscreteProcess::SetMasterProcess ( G4VProcess masterP)
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 125 of file XWrapperContinuousDiscreteProcess.hh.

125  {
126  fRegisteredProcess->SetMasterProcess(
127  static_cast<XWrapperContinuousDiscreteProcess*>(masterP)
128  ->fRegisteredProcess);
129  };
virtual void SetMasterProcess(G4VProcess *masterP)
Definition: G4VProcess.cc:212

Here is the call graph for this function:

void XWrapperContinuousDiscreteProcess::SetNucleiOrElectronFlag ( G4int  flag)

Definition at line 136 of file XWrapperContinousDiscreteProcess.cc.

136  {
137  bNucleiOrElectronFlag = flag;
138 }
virtual void XWrapperContinuousDiscreteProcess::SetProcessManager ( const G4ProcessManager aPM)
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 116 of file XWrapperContinuousDiscreteProcess.hh.

117  {fRegisteredProcess->SetProcessManager(aPM);};
virtual void SetProcessManager(const G4ProcessManager *)
Definition: G4VProcess.hh:508

Here is the call graph for this function:

void XWrapperContinuousDiscreteProcess::StartTracking ( G4Track aTrack)
virtual

Reimplemented from G4VProcess.

Definition at line 247 of file XWrapperContinousDiscreteProcess.cc.

247  {
248  fRegisteredProcess->StartTracking(aTrack);
252 }
G4double theNumberOfInteractionLengthLeft
Definition: G4VProcess.hh:293
virtual void StartTracking(G4Track *)
Definition: G4VProcess.cc:101
G4double currentInteractionLength
Definition: G4VProcess.hh:297
G4double theInitialNumberOfInteractionLength
Definition: G4VProcess.hh:300

Here is the call graph for this function:

virtual G4bool XWrapperContinuousDiscreteProcess::StorePhysicsTable ( const G4ParticleDefinition aPD,
const G4String aString,
G4bool  aBool 
)
inlinevirtual

Reimplemented from G4VProcess.

Definition at line 144 of file XWrapperContinuousDiscreteProcess.hh.

147  {return fRegisteredProcess->StorePhysicsTable(aPD,aString,aBool);};
virtual G4bool StorePhysicsTable(const G4ParticleDefinition *, const G4String &, G4bool)
Definition: G4VProcess.hh:231

Here is the call graph for this function:


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