Message: Re: Total internal reflection canceled by sensitive detector Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Feedback Re: Total internal reflection canceled by sensitive detector 

Forum: Processes Involving Optical Photons
Re: Question Total internal reflection canceled by sensitive detector (Mario)
Date: 03 Dec, 2010
From: Gumplinger Peter <Gumplinger Peter>

Hi Mario,

> The world volume (filled with air, n=1) is a sensitive detector with the
> 
> aStep->GetTrack()->SetTrackStatus(fStopAndKill);
> 
> When the sensitive detector is enabled, all in the scintillator produced
> optical photons which should do an internal reflection get stuck in die
> boundary scintillator / air. Photons which should not be internal
> reflected leave the scintillator without problems.

The ProcessHits method of a sensitive detector is called when the PreStepPoint is inside that detector's volume. (I am presuming your code snippet above is in ProcessHits method).

When an optical photon arrives first at the boundary, the PostStepPoint is already in the volume across the boundary (in your air). But that's not when your ProcessHits is called. However, if the photon is reflected (changes direction radically at the boundary) the G4 navigator needs to do, and does, a so called short 'reallocation step', which triggers your sensitive detector, because that step happens "inside" the volume across the border (PreStepPoint is in air). To flag such a 'reallocation step', you need to add:

if (aStep.GetStepLength()<=kCarTolerance/2){ } else { aStep->GetTrack()->SetTrackStatus(fStopAndKill); }

Now, the transmitted photons, on the other hand, are not killed by your code until they leave the world (assuming the photons don't interact in the air, they will travel in one single step), at which point your ProcessHits is first called for them. Now, of course, you didn't notice because they are killed anyway at that point.

Peter

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 Ok: Re: Total internal reflection canceled by sensitive detector   (Mario - 03 Dec, 2010)
2 Question: Re: Total internal reflection canceled by sensitive detector   (Erik Dietz-Laursonn - 12 Apr, 2013)
1 Feedback: Re: Total internal reflection canceled by sensitive detector   (Gumplinger Peter - 12 Apr, 2013)
 Add Message Add Message
to: "Re: Total internal reflection canceled by sensitive detector"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews