Message: Re: resetting counter for optical photons | Not Logged In (login) |
|
|
Hi Yusuf,
>> if (aPreStepPoint->GetPhysicalVolume()->GetName() == "aVolume" >> && aPostStepPoint->GetPhysicalVolume()->GetName() == >>"anotherVolume"){ >> counter++; >> } I say it here as I have said it in many replies to posts on this forum. The above logic is not enough to count photos that have actually refracted into "anotherVolume". Your counter will also increment for every reflection on the surface of "aVolume" with "anotherVolume". > To reset counter there is a reset > function, which is called either in constructor of SteppingAction or in > EventAction::BeginOfEventAction without success. The constructor of SteppingAction is only every called once from your main. To resent your counter there is a rather mute excercise. My guess is that the pointer to your SteppingAction is not actually available in EventAction. Please, see the novice examples of how to communicate UserAction pointers between the various UserActions. Yes, you want to count in SteppingAction. You can only count in EventAction - after stepping has finished - if you kept a G4Trajectory. You can obviously not count in StackingAction because stepping as not yet commenced. I suggest you reread carefully how the event loop actually works in G4. In another recent post I suggested defining an 'entranceWindow' with the same refractive index 2 as "anotherVolume" to be located between it and "aVolume". If a photon now sees the surface "entranceWindow" and "anotherVolume" you are sure the photon has actually refracted into "anotherVolume". Hope this helps, Peter
|
Inline Depth: |
|
|
Outline Depth: |
|
|
|
Add message: ![]() |
|
to: |
|