Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ParallelWorldProcess Class Reference

#include <G4ParallelWorldProcess.hh>

+ Inheritance diagram for G4ParallelWorldProcess:

Public Member Functions

 G4ParallelWorldProcess (const G4String &processName="ParaWorld", G4ProcessType theType=fParallel)
 
virtual ~G4ParallelWorldProcess ()
 
void SetParallelWorld (G4String parallelWorldName)
 
void SetParallelWorld (G4VPhysicalVolume *parallelWorld)
 
void StartTracking (G4Track *)
 
G4double AtRestGetPhysicalInteractionLength (const G4Track &, G4ForceCondition *)
 
G4VParticleChangeAtRestDoIt (const G4Track &, const G4Step &)
 
G4double AlongStepGetPhysicalInteractionLength (const G4Track &, G4double, G4double, G4double &, G4GPILSelection *)
 
G4VParticleChangeAlongStepDoIt (const G4Track &, const G4Step &)
 
G4double PostStepGetPhysicalInteractionLength (const G4Track &, G4double, G4ForceCondition *)
 
G4VParticleChangePostStepDoIt (const G4Track &, const G4Step &)
 
void SetLayeredMaterialFlag (G4bool flg=true)
 
G4bool GetLayeredMaterialFlag () const
 
G4bool IsAtRestRequired (G4ParticleDefinition *)
 
- Public Member Functions inherited from G4VProcess
 G4VProcess (const G4String &aName="NoName", G4ProcessType aType=fNotDefined)
 
 G4VProcess (const G4VProcess &right)
 
virtual ~G4VProcess ()
 
G4VProcessoperator= (const G4VProcess &)=delete
 
G4bool operator== (const G4VProcess &right) const
 
G4bool operator!= (const G4VProcess &right) const
 
virtual G4VParticleChangePostStepDoIt (const G4Track &track, const G4Step &stepData)=0
 
virtual G4VParticleChangeAlongStepDoIt (const G4Track &track, const G4Step &stepData)=0
 
virtual G4VParticleChangeAtRestDoIt (const G4Track &track, const G4Step &stepData)=0
 
virtual G4double AlongStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)=0
 
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &track, G4ForceCondition *condition)=0
 
virtual G4double PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)=0
 
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 BuildPhysicsTable (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 StartTracking (G4Track *)
 
virtual void EndTracking ()
 
virtual void SetProcessManager (const G4ProcessManager *)
 
virtual const G4ProcessManagerGetProcessManager ()
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
G4double GetNumberOfInteractionLengthLeft () const
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isAlongStepDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
virtual void DumpInfo () const
 
virtual void ProcessDescription (std::ostream &outfile) 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 &)
 

Static Public Member Functions

static const G4StepGetHyperStep ()
 
static G4int GetHypNavigatorID ()
 
- Static Public Member Functions inherited from G4VProcess
static const G4StringGetProcessTypeName (G4ProcessType)
 

Protected Member Functions

void CopyStep (const G4Step &step)
 
void SwitchMaterial (G4StepPoint *)
 
- Protected Member Functions inherited from G4VProcess
void SubtractNumberOfInteractionLengthLeft (G4double prevStepSize)
 
void ClearNumberOfInteractionLengthLeft ()
 

Protected Attributes

G4StepfGhostStep
 
G4StepPointfGhostPreStepPoint
 
G4StepPointfGhostPostStepPoint
 
G4VParticleChange aDummyParticleChange
 
G4ParticleChange xParticleChange
 
G4TransportationManagerfTransportationManager
 
G4PathFinderfPathFinder
 
G4String fGhostWorldName
 
G4VPhysicalVolumefGhostWorld
 
G4NavigatorfGhostNavigator
 
G4int fNavigatorID
 
G4TouchableHandle fOldGhostTouchable
 
G4TouchableHandle fNewGhostTouchable
 
G4FieldTrack fFieldTrack
 
G4double fGhostSafety
 
G4bool fOnBoundary
 
G4bool layeredMaterialFlag
 
- Protected Attributes inherited from G4VProcess
const G4ProcessManageraProcessManager = nullptr
 
G4VParticleChangepParticleChange = nullptr
 
G4ParticleChange aParticleChange
 
G4double theNumberOfInteractionLengthLeft = -1.0
 
G4double currentInteractionLength = -1.0
 
G4double theInitialNumberOfInteractionLength = -1.0
 
G4String theProcessName
 
G4String thePhysicsTableFileName
 
G4ProcessType theProcessType = fNotDefined
 
G4int theProcessSubType = -1
 
G4double thePILfactor = 1.0
 
G4int verboseLevel = 0
 
G4bool enableAtRestDoIt = true
 
G4bool enableAlongStepDoIt = true
 
G4bool enablePostStepDoIt = true
 

Detailed Description

Definition at line 71 of file G4ParallelWorldProcess.hh.

Constructor & Destructor Documentation

◆ G4ParallelWorldProcess()

G4ParallelWorldProcess::G4ParallelWorldProcess ( const G4String processName = "ParaWorld",
G4ProcessType  theType = fParallel 
)

Definition at line 59 of file G4ParallelWorldProcess.cc.

61:G4VProcess(processName,theType),fGhostWorld(nullptr),fGhostNavigator(nullptr),
64{
66 if(!fpHyperStep) fpHyperStep = new G4Step();
67 iParallelWorld = ++nParallelWorlds;
68
70
71 fGhostStep = new G4Step();
74
78
79 fGhostWorldName = "** NotDefined **";
81
82 if (verboseLevel>0)
83 {
84 G4cout << GetProcessName() << " is created " << G4endl;
85 }
86}
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
void SetPushVerbosity(G4bool mode)
static G4ParallelWorldProcessStore * GetInstance()
void SetParallelWorld(G4ParallelWorldProcess *proc, G4String parallelWorldName)
G4VParticleChange aDummyParticleChange
G4TransportationManager * fTransportationManager
G4VPhysicalVolume * fGhostWorld
static G4PathFinder * GetInstance()
Definition: G4PathFinder.cc:52
Definition: G4Step.hh:62
G4StepPoint * GetPreStepPoint() const
G4StepPoint * GetPostStepPoint() const
static G4TransportationManager * GetTransportationManager()
G4Navigator * GetNavigatorForTracking() const
G4int verboseLevel
Definition: G4VProcess.hh:356
void SetProcessSubType(G4int)
Definition: G4VProcess.hh:406
G4VParticleChange * pParticleChange
Definition: G4VProcess.hh:321
const G4String & GetProcessName() const
Definition: G4VProcess.hh:382

◆ ~G4ParallelWorldProcess()

G4ParallelWorldProcess::~G4ParallelWorldProcess ( )
virtual

Definition at line 88 of file G4ParallelWorldProcess.cc.

89{
90 delete fGhostStep;
91 nParallelWorlds--;
92 if(nParallelWorlds==0)
93 {
94 delete fpHyperStep;
95 fpHyperStep = 0;
96 }
97}

Member Function Documentation

◆ AlongStepDoIt()

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

Implements G4VProcess.

Definition at line 342 of file G4ParallelWorldProcess.cc.

344{
346 return pParticleChange;
347}
virtual void Initialize(const G4Track &)

◆ AlongStepGetPhysicalInteractionLength()

G4double G4ParallelWorldProcess::AlongStepGetPhysicalInteractionLength ( const G4Track track,
G4double  previousStepSize,
G4double  currentMinimumStep,
G4double proposedSafety,
G4GPILSelection selection 
)
virtual

Implements G4VProcess.

Definition at line 269 of file G4ParallelWorldProcess.cc.

272{
273 static G4ThreadLocal G4FieldTrack *endTrack_G4MT_TLS_ = 0 ; if (!endTrack_G4MT_TLS_) endTrack_G4MT_TLS_ = new G4FieldTrack ('0') ; G4FieldTrack &endTrack = *endTrack_G4MT_TLS_;
274 //static ELimited eLimited;
275 ELimited eLimited;
276 ELimited eLim = kUndefLimited;
277
278 *selection = NotCandidateForSelection;
279 G4double returnedStep = DBL_MAX;
280
281 if (previousStepSize > 0.)
282 { fGhostSafety -= previousStepSize; }
283 if (fGhostSafety < 0.) fGhostSafety = 0.0;
284
285 if (currentMinimumStep <= fGhostSafety && currentMinimumStep > 0.)
286 {
287 // I have no chance to limit
288 returnedStep = currentMinimumStep;
289 fOnBoundary = false;
290 proposedSafety = fGhostSafety - currentMinimumStep;
291 eLim = kDoNot;
292 }
293 else
294 {
296
297#ifdef G4DEBUG_PARALLEL_WORLD_PROCESS
298 if( verboseLevel > 0 ){
299 int localVerb = verboseLevel-1;
300
301 if( localVerb == 1 ) {
302 G4cout << " Pll Wrl proc::AlongStepGPIL " << this->GetProcessName() << G4endl;
303 }else if( localVerb > 1 ) {
304 G4cout << "----------------------------------------------" << G4endl;
305 G4cout << " ParallelWorldProcess: field Track set to : " << G4endl;
306 G4cout << "----------------------------------------------" << G4endl;
308 G4cout << "----------------------------------------------" << G4endl;
309 }
310 }
311#endif
312
313 returnedStep
314 = fPathFinder->ComputeStep(fFieldTrack,currentMinimumStep,fNavigatorID,
315 track.GetCurrentStepNumber(),fGhostSafety,eLimited,
316 endTrack,track.GetVolume());
317 if(eLimited == kDoNot)
318 {
319 fOnBoundary = false;
321 }
322 else
323 {
324 fOnBoundary = true;
325 // fGhostSafetyEnd = 0.0; // At end-point of expected step only
326 }
327 proposedSafety = fGhostSafety;
328 if(eLimited == kUnique || eLimited == kSharedOther) {
329 *selection = CandidateForSelection;
330 }
331 else if (eLimited == kSharedTransport) {
332 returnedStep *= (1.0 + 1.0e-9);
333 }
334 eLim = eLimited;
335 }
336
337 if(iParallelWorld==nParallelWorlds) fNavIDHyp = 0;
338 if(eLim == kUnique || eLim == kSharedOther) fNavIDHyp = fNavigatorID;
339 return returnedStep;
340}
@ CandidateForSelection
@ NotCandidateForSelection
ELimited
@ kDoNot
@ kUndefLimited
@ kUnique
@ kSharedOther
@ kSharedTransport
double G4double
Definition: G4Types.hh:83
static void Update(G4FieldTrack *, const G4Track *)
G4ThreeVector GetPosition() const
virtual G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=true)
G4double ComputeStep(const G4FieldTrack &pFieldTrack, G4double pCurrentProposedStepLength, G4int navigatorId, G4int stepNo, G4double &pNewSafety, ELimited &limitedStep, G4FieldTrack &EndState, G4VPhysicalVolume *currentVolume)
G4VPhysicalVolume * GetVolume() const
G4int GetCurrentStepNumber() const
#define DBL_MAX
Definition: templates.hh:62
#define G4ThreadLocal
Definition: tls.hh:77

◆ AtRestDoIt()

G4VParticleChange * G4ParallelWorldProcess::AtRestDoIt ( const G4Track track,
const G4Step step 
)
virtual

Implements G4VProcess.

Definition at line 175 of file G4ParallelWorldProcess.cc.

178{
179//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
180// At Rest must be registered ONLY for the particle which has other At Rest
181// process(es).
182//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
184 G4VSensitiveDetector* aSD = 0;
187 fOnBoundary = false;
188 if(aSD)
189 {
190 CopyStep(step);
192
194
198 {
201 }
202 else
204
205 aSD->Hit(fGhostStep);
206 }
207
209 return pParticleChange;
210}
G4VSensitiveDetector * GetSensitiveDetector() const
G4TouchableHandle fNewGhostTouchable
void CopyStep(const G4Step &step)
G4TouchableHandle fOldGhostTouchable
void SetSensitiveDetector(G4VSensitiveDetector *)
void SetTouchableHandle(const G4TouchableHandle &apValue)
const G4TouchableHandle & GetTouchableHandle() const
G4LogicalVolume * GetLogicalVolume() const
G4bool Hit(G4Step *aStep)
virtual G4VPhysicalVolume * GetVolume(G4int depth=0) const
Definition: G4VTouchable.cc:41

◆ AtRestGetPhysicalInteractionLength()

G4double G4ParallelWorldProcess::AtRestGetPhysicalInteractionLength ( const G4Track ,
G4ForceCondition condition 
)
virtual

Implements G4VProcess.

Definition at line 163 of file G4ParallelWorldProcess.cc.

166{
167//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
168// At Rest must be registered ONLY for the particle which has other At Rest
169// process(es).
170//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
171 *condition = Forced;
172 return DBL_MAX;
173}
G4double condition(const G4ErrorSymMatrix &m)
@ Forced

◆ CopyStep()

void G4ParallelWorldProcess::CopyStep ( const G4Step step)
protected

Definition at line 349 of file G4ParallelWorldProcess.cc.

350{
352
358 fGhostStep->SetSecondary((const_cast<G4Step&>(step)).GetfSecondary());
359
362
364 if(fOnBoundary)
368
369 if(iParallelWorld==1)
370 {
371 G4StepStatus prevStatHyp = fpHyperStep->GetPostStepPoint()->GetStepStatus();
372
373 fpHyperStep->SetTrack(step.GetTrack());
374 fpHyperStep->SetStepLength(step.GetStepLength());
375 fpHyperStep->SetTotalEnergyDeposit(step.GetTotalEnergyDeposit());
377 fpHyperStep->SetControlFlag(step.GetControlFlag());
378
379 *(fpHyperStep->GetPreStepPoint()) = *(fpHyperStep->GetPostStepPoint());
380 *(fpHyperStep->GetPostStepPoint()) = *(step.GetPostStepPoint());
381
382 fpHyperStep->GetPreStepPoint()->SetStepStatus(prevStatHyp);
383 }
384
385 if(fOnBoundary)
386 { fpHyperStep->GetPostStepPoint()->SetStepStatus(fGeomBoundary); }
387}
G4StepStatus
Definition: G4StepStatus.hh:40
@ fGeomBoundary
Definition: G4StepStatus.hh:43
@ fPostStepDoItProc
Definition: G4StepStatus.hh:49
G4StepStatus GetStepStatus() const
void SetStepStatus(const G4StepStatus aValue)
G4SteppingControl GetControlFlag() const
G4Track * GetTrack() const
void SetStepLength(G4double value)
void SetNonIonizingEnergyDeposit(G4double value)
G4double GetNonIonizingEnergyDeposit() const
G4double GetStepLength() const
G4double GetTotalEnergyDeposit() const
void SetSecondary(G4TrackVector *value)
void SetControlFlag(G4SteppingControl StepControlFlag)
void SetTotalEnergyDeposit(G4double value)
void SetTrack(G4Track *value)

Referenced by AtRestDoIt(), and PostStepDoIt().

◆ GetHyperStep()

const G4Step * G4ParallelWorldProcess::GetHyperStep ( )
static

◆ GetHypNavigatorID()

G4int G4ParallelWorldProcess::GetHypNavigatorID ( )
static

◆ GetLayeredMaterialFlag()

G4bool G4ParallelWorldProcess::GetLayeredMaterialFlag ( ) const
inline

Definition at line 125 of file G4ParallelWorldProcess.hh.

126 { return layeredMaterialFlag; }

◆ IsAtRestRequired()

G4bool G4ParallelWorldProcess::IsAtRestRequired ( G4ParticleDefinition partDef)

Definition at line 429 of file G4ParallelWorldProcess.cc.

430{
431 G4int pdgCode = partDef->GetPDGEncoding();
432 if(pdgCode==0)
433 {
434 G4String partName = partDef->GetParticleName();
435 if(partName=="geantino") return false;
436 if(partName=="chargedgeantino") return false;
437 }
438 else
439 {
440 if(pdgCode==11 || pdgCode==2212) return false; // electrons and proton
441 pdgCode = std::abs(pdgCode);
442 if(pdgCode==22) return false; // gamma and optical photons
443 if(pdgCode==12 || pdgCode==14 || pdgCode==16) return false; // all neutronos
444 }
445 return true;
446}
int G4int
Definition: G4Types.hh:85
const G4String & GetParticleName() const

Referenced by G4ParallelWorldPhysics::ConstructProcess(), G4RunManager::ConstructScoringWorlds(), and G4WorkerRunManager::ConstructScoringWorlds().

◆ PostStepDoIt()

G4VParticleChange * G4ParallelWorldProcess::PostStepDoIt ( const G4Track track,
const G4Step step 
)
virtual

Implements G4VProcess.

Definition at line 222 of file G4ParallelWorldProcess.cc.

225{
227 G4VSensitiveDetector* aSD = 0;
230 CopyStep(step);
232
233 if(fOnBoundary)
234 {
236 }
237 else
238 {
240 }
241
244
246 {
249 }
250 else
252
254 if(sd)
255 {
256 sd->Hit(fGhostStep);
257 }
258
261 {
262 G4StepPoint* realWorldPostStepPoint =
263 ((G4Step*)(track.GetStep()))->GetPostStepPoint();
264 SwitchMaterial(realWorldPostStepPoint);
265 }
266 return pParticleChange;
267}
void SwitchMaterial(G4StepPoint *)
G4TouchableHandle CreateTouchableHandle(G4int navId) const
G4VSensitiveDetector * GetSensitiveDetector() const
const G4Step * GetStep() const

◆ PostStepGetPhysicalInteractionLength()

G4double G4ParallelWorldProcess::PostStepGetPhysicalInteractionLength ( const G4Track ,
G4double  ,
G4ForceCondition condition 
)
virtual

Implements G4VProcess.

Definition at line 213 of file G4ParallelWorldProcess.cc.

217{
219 return DBL_MAX;
220}
@ StronglyForced

◆ SetLayeredMaterialFlag()

void G4ParallelWorldProcess::SetLayeredMaterialFlag ( G4bool  flg = true)
inline

◆ SetParallelWorld() [1/2]

void G4ParallelWorldProcess::SetParallelWorld ( G4String  parallelWorldName)

◆ SetParallelWorld() [2/2]

void G4ParallelWorldProcess::SetParallelWorld ( G4VPhysicalVolume parallelWorld)

Definition at line 108 of file G4ParallelWorldProcess.cc.

110{
111 fGhostWorldName = parallelWorld->GetName();
112 fGhostWorld = parallelWorld;
115}
const G4String & GetName() const

◆ StartTracking()

void G4ParallelWorldProcess::StartTracking ( G4Track trk)
virtual

Reimplemented from G4VProcess.

Definition at line 117 of file G4ParallelWorldProcess.cc.

118{
121 else
122 {
123 G4Exception("G4ParallelWorldProcess::StartTracking",
124 "ProcParaWorld000",FatalException,
125 "G4ParallelWorldProcess is used for tracking without having a parallel world assigned");
126 }
128
133
134 fGhostSafety = -1.;
135 fOnBoundary = false;
138
139// G4VPhysicalVolume* thePhys = fNewGhostTouchable->GetVolume();
140// if(thePhys)
141// {
142// G4Material* ghostMaterial = thePhys->GetLogicalVolume()->GetMaterial();
143// if(ghostMaterial)
144// { G4cout << " --- Material : " << ghostMaterial->GetName() << G4endl; }
145// }
146
147 *(fpHyperStep->GetPostStepPoint()) = *(trk->GetStep()->GetPostStepPoint());
149 {
150 G4StepPoint* realWorldPostStepPoint = trk->GetStep()->GetPostStepPoint();
151 SwitchMaterial(realWorldPostStepPoint);
152 G4StepPoint *realWorldPreStepPoint = trk->GetStep()->GetPreStepPoint();
153 SwitchMaterial(realWorldPreStepPoint);
154 G4double velocity = trk->CalculateVelocity();
155 realWorldPostStepPoint->SetVelocity(velocity);
156 realWorldPreStepPoint->SetVelocity(velocity);
157 trk->SetVelocity(velocity);
158 }
159 *(fpHyperStep->GetPreStepPoint()) = *(fpHyperStep->GetPostStepPoint());
160}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
@ fUndefined
Definition: G4StepStatus.hh:55
void PrepareNewTrack(const G4ThreeVector &position, const G4ThreeVector &direction, G4VPhysicalVolume *massStartVol=nullptr)
void SetVelocity(G4double v)
void SetVelocity(G4double val)
const G4ThreeVector & GetPosition() const
const G4ThreeVector & GetMomentumDirection() const
G4double CalculateVelocity() const
G4int ActivateNavigator(G4Navigator *aNavigator)

◆ SwitchMaterial()

void G4ParallelWorldProcess::SwitchMaterial ( G4StepPoint realWorldStepPoint)
protected

Definition at line 389 of file G4ParallelWorldProcess.cc.

390{
391 if(realWorldStepPoint->GetStepStatus()==fWorldBoundary) return;
393 if(thePhys)
394 {
395 G4Material* ghostMaterial = thePhys->GetLogicalVolume()->GetMaterial();
396 if(ghostMaterial)
397 {
398 G4Region* ghostRegion = thePhys->GetLogicalVolume()->GetRegion();
399 G4ProductionCuts* prodCuts =
400 realWorldStepPoint->GetMaterialCutsCouple()->GetProductionCuts();
401 if(ghostRegion)
402 {
403 G4ProductionCuts* ghostProdCuts = ghostRegion->GetProductionCuts();
404 if(ghostProdCuts) prodCuts = ghostProdCuts;
405 }
406 const G4MaterialCutsCouple* ghostMCCouple =
408 ->GetMaterialCutsCouple(ghostMaterial,prodCuts);
409 if(ghostMCCouple)
410 {
411 realWorldStepPoint->SetMaterial(ghostMaterial);
412 realWorldStepPoint->SetMaterialCutsCouple(ghostMCCouple);
413 *(fpHyperStep->GetPostStepPoint()) = *(fGhostPostStepPoint);
414 fpHyperStep->GetPostStepPoint()->SetMaterial(ghostMaterial);
415 fpHyperStep->GetPostStepPoint()->SetMaterialCutsCouple(ghostMCCouple);
416 }
417 else
418 {
419 G4cout << "!!! MaterialCutsCouple is not found for "
420 << ghostMaterial->GetName() << "." << G4endl
421 << " Material in real world ("
422 << realWorldStepPoint->GetMaterial()->GetName()
423 << ") is used." << G4endl;
424 }
425 }
426 }
427}
@ fWorldBoundary
Definition: G4StepStatus.hh:41
G4Region * GetRegion() const
G4Material * GetMaterial() const
G4ProductionCuts * GetProductionCuts() const
const G4String & GetName() const
Definition: G4Material.hh:175
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
static G4ProductionCutsTable * GetProductionCutsTable()
G4ProductionCuts * GetProductionCuts() const
void SetMaterial(G4Material *)
G4Material * GetMaterial() const
void SetMaterialCutsCouple(const G4MaterialCutsCouple *)
const G4MaterialCutsCouple * GetMaterialCutsCouple() const

Referenced by PostStepDoIt(), and StartTracking().

Member Data Documentation

◆ aDummyParticleChange

G4VParticleChange G4ParallelWorldProcess::aDummyParticleChange
protected

Definition at line 143 of file G4ParallelWorldProcess.hh.

Referenced by G4ParallelWorldProcess().

◆ fFieldTrack

G4FieldTrack G4ParallelWorldProcess::fFieldTrack
protected

Definition at line 158 of file G4ParallelWorldProcess.hh.

Referenced by AlongStepGetPhysicalInteractionLength().

◆ fGhostNavigator

G4Navigator* G4ParallelWorldProcess::fGhostNavigator
protected

◆ fGhostPostStepPoint

G4StepPoint* G4ParallelWorldProcess::fGhostPostStepPoint
protected

◆ fGhostPreStepPoint

G4StepPoint* G4ParallelWorldProcess::fGhostPreStepPoint
protected

◆ fGhostSafety

G4double G4ParallelWorldProcess::fGhostSafety
protected

◆ fGhostStep

G4Step* G4ParallelWorldProcess::fGhostStep
protected

◆ fGhostWorld

G4VPhysicalVolume* G4ParallelWorldProcess::fGhostWorld
protected

Definition at line 153 of file G4ParallelWorldProcess.hh.

Referenced by SetParallelWorld().

◆ fGhostWorldName

G4String G4ParallelWorldProcess::fGhostWorldName
protected

Definition at line 152 of file G4ParallelWorldProcess.hh.

Referenced by G4ParallelWorldProcess(), and SetParallelWorld().

◆ fNavigatorID

G4int G4ParallelWorldProcess::fNavigatorID
protected

◆ fNewGhostTouchable

G4TouchableHandle G4ParallelWorldProcess::fNewGhostTouchable
protected

Definition at line 157 of file G4ParallelWorldProcess.hh.

Referenced by AtRestDoIt(), PostStepDoIt(), StartTracking(), and SwitchMaterial().

◆ fOldGhostTouchable

G4TouchableHandle G4ParallelWorldProcess::fOldGhostTouchable
protected

Definition at line 156 of file G4ParallelWorldProcess.hh.

Referenced by AtRestDoIt(), PostStepDoIt(), and StartTracking().

◆ fOnBoundary

G4bool G4ParallelWorldProcess::fOnBoundary
protected

◆ fPathFinder

G4PathFinder* G4ParallelWorldProcess::fPathFinder
protected

◆ fTransportationManager

G4TransportationManager* G4ParallelWorldProcess::fTransportationManager
protected

◆ layeredMaterialFlag

G4bool G4ParallelWorldProcess::layeredMaterialFlag
protected

◆ xParticleChange

G4ParticleChange G4ParallelWorldProcess::xParticleChange
protected

Definition at line 144 of file G4ParallelWorldProcess.hh.


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