Message: Re: Reflectivity of dielectric_metal border Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Feedback Re: Reflectivity of dielectric_metal border 

Forum: Processes Involving Optical Photons
Re: Question Reflectivity of dielectric_metal border (Thomas Bonnet)
Date: 25 Mar, 2015
From: Gumplinger Peter <Gumplinger Peter>

Hello Thomas,

These properties: RINDEX, ABSLENGTH, etc. are arrays! You must specify them at a minimum of TWO energies (nEntries = 2;). The two can be close together but they must have a finite width.

What version of Geant4 are you using?

> Next, I tried to build a reflective surface on the sphere. So I made an
> optical skin surface attached to the scintillator sphere with a
> reflectivity property and I built an outer detection sphere to count the
> number of optical photons going out of the scintillator.

This is an interesting situation. You define two SkinSurfaces that exist on the same boundary: scintillator - detector. The first is attached to the scintillator and the second to the detector. The logic in G4OpBoundaryProcess is as follows:

        G4LogicalSurface* Surface = NULL;

        Surface = G4LogicalBorderSurface::GetSurface(thePrePV, thePostPV);

        if (Surface == NULL){
          G4bool enteredDaughter= (thePostPV->GetMotherLogical() ==
                                   thePrePV ->GetLogicalVolume());
            Surface =
            if(Surface == NULL)
              Surface =
          else {
            Surface =
            if(Surface == NULL)
              Surface =

When the photon wants to exit, enteredDaughter should be false since you defined both volumes to be daughters of the world (and not the scintillator being a daughter of the detector). So, the program should correctly pick up "SurfaceScintillateur".

> Surprise : when
> I set the reflectivity to 1. all the photons can go through the sphere
> => no reflection at all on the surface.

I don't understand how this happens....

> Then I tried to set reflectivity
> to 0.5 : the number of detected photons is divided by 2. And with a
> reflectivity of 0. no photons go through the surface.


> So my question is : is reflectivity really represents reflectivity or
> transmission coefficient?

In G4.10.1 you can actually set both the "REFLECTIVITY" and the "TRANSMITTANCE" such that theReflectivity+theTransmittance<=1. What is neither reflected nor transmitted will be absorbed.

> Also, when I look at the /tracking/verbose 1 output for optical photons
> I only see transportation process, no reflections nor absorptions.

You should see only the transportation process. The process limiting the step is the only you see with /tracking/verbose and G4OpBoundaryProcess never limits the step. However, can you turn on verbosity for G4OpBoundaryProcess in your C++:

theBoundaryProcess -> SetVerboseLevel(1);

You should also set the reflectivity of your opSurfacePM to 0.

What do you see with both the stepping and boundary process verbosity for one photon and reflectivity either 0 or 1?


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

1 None: Re: Reflectivity of dielectric_metal border   (Thomas Bonnet - 26 Mar, 2015)
(_ Feedback: Re: Reflectivity of dielectric_metal border   (Gumplinger Peter - 26 Mar, 2015)
(_ None: Re: Reflectivity of dielectric_metal border   (Thomas Bonnet - 27 Mar, 2015)
(_ None: Re: Reflectivity of dielectric_metal border   (Gumplinger Peter - 27 Mar, 2015)
(_ None: Re: Reflectivity of dielectric_metal border   (Thomas Bonnet - 13 Apr, 2015)
 Add Message Add Message
to: "Re: Reflectivity of dielectric_metal border"

 Subscribe Subscribe

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