|Message: Re: Scintillation Process invoked in Non Scintillators||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
> I have a simulation involving various components and materials, > including an empty hall of air, a tank of water, and some scintillating > paddles. I've found that the Scintillation process appears to being > invoked in regions where the material is not a scintillator - that is, > code in UserSteppingAction identifies steps with > PostStepPoint->GetProcessDefinedStep()->GetProcessName() = > "Scintillation", even when the > PostStepPoint->GetPhysicalVolume->GetName() indicates a physical volume > "tank" - i.e., my water tank, which should not be scintillating. (my > tank is in no direct contact with scintillator, so boundary events > shouldn't matter). I see the same in the "Hall" volume, which I have > defined as being full of Air, and for which I don't even define an index > of refraction.
The G4Scintillation process sets *condition = StronglyForced in GetMeanFreePath and *condition = Forced in GetMeanLifeTime and return DBL_MAX i. e. the process does not limit the step, but sets the condition for the DoIt to be invoked at every step. G4Scintillation::IsApplicable returns false only for "opticalphoton" and short-lived particles. So, what this means is that the G4Scintillation process is invoked at every step in the simulation of all particles (except - see IsApplicable) and no matter where the step is taken in the geometry. It is the G4Scintillation::PostStepDoIt that checks whether or not the step is taken inside a G4Material with scintillation properties defined in its G4MaterialPropertyTable.
> But other investigations make it appear that in these steps no > scintillation is really occurring: I tried printing out the energy > deposited for these steps from theStep->GetTotalEnergyDeposit(), and it > returns 0eV. I found comments that indicated it should be possible to > find the number of secondaries produced in a step too, which would allow > me to count photons generated, but I couldn't find the relevant > method/property.
> Finally, in my PostUserTrackingAction I record the ProcessDefinedStep() > for the last step in the track - which should be the step that stopped > Geant4 tracking it. Again i see scintillation in non-scintillators; > plotting the distribution of particles for which the final step process > was scintillation shows points throughout my detector system. On the > other hand, plotting the start position of photons generated by > scintillation indicates they are indeed only generated in the > scintillators.
ProcessDefinedStep is not a good indicator - for some processes - of whether they actually did anything. G4Scintillation is a 'parasitic' process (forced) that may define the step in the absence of any other process defining it even though the step length returned is DBL_MAX.
Why don't you set /tracking/verbose 1 together with your ProcessDefinedStep to find out which particle at what point triggers this.
> So, what's going on here? Should scintillation be being invoked as a > process, even when the material isn't a scintillator?
Yes, in Geant4 the tracking knows nothing about the physics processes. So, some processes need to be always invoked!
|Inline Depth:||Outline Depth:||Add message:|