Message: Re: Angle of Entry Optics Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Feedback Re: Angle of Entry Optics 

Keywords: Angle of Entry OpticalPhoton
Forum: Geometry
Re: Question Angle of Entry Optics (Ryan)
Date: 02 Aug, 2006
From: Gumplinger Peter <Gumplinger Peter>

Hi Ryan,

Sorry for the considerable delay in replying to your posting. I was away on vacation.

If your rods are metalic rods I suggest you follow the example of the 'metalic sphere' in /examples/extended/optical/LXe where a G4LogicalSkinSurface is defined for the metal object:

  //**Sphere surface properties
  G4double SphereReflectivity[num] = {...........};
  G4double SphereEfficiency[num] = {............};
  G4MaterialPropertiesTable* spherePT = new G4MaterialPropertiesTable();
  spherePT->AddProperty("REFLECTIVITY", Ephoton, SphereReflectivity, num);
  spherePT->AddProperty("EFFICIENCY", Ephoton, SphereEfficiency, num);
  G4OpticalSurface* OpSphereSurface =
    new G4OpticalSurface("SphereSurface",unified,polished,dielectric_metal);
  OpSphereSurface->SetMaterialPropertiesTable(spherePT);

NOTICE: the surface type is 'dielectric_metal' and the finish is
'polished'!

sphere = new G4Sphere("sphere",0.*mm,2.*cm,0.*deg,360.*deg,0.*deg,
                      360.*deg);

sphere_log = new G4LogicalVolume(sphere,G4Material::GetMaterial("Al"),
                                     "sphere_log");

new G4LogicalSkinSurface("sphere_surface",sphere_log,OpSphereSurface);

(We use 'SkinSurface' because the surface of the sphere, like your rods is the same on all "sides".)

HOWEVER, this does not really address your main concern:

> How do I make the rate (of reflection) increase as the angle of entry

> decreases?

This is not possible in G4 at the moment. The only way the reflectivity can vary is with photon energy (frequency). I assume your Reflection_Aluminium array specifies the reflectivity of your Al at perpendicular incidence and that's why you get the right result for perpendicular incidence (and only that result regardless of incident angle).

I can only suggest that you modify G4OpBoundary.cc in such a way that you interpolate the reflectivity (from the G4MaterialsPropertiesTable); not only between photon energies but also between angles of incidence. I am talking about the code around line:

              if (PropertyPointer) {
                      theReflectivity =
                      PropertyPointer->GetProperty(thePhotonMomentum);

I believe something like this has also been done for the X-ray telescope simulation but, off-hand, I don't remember where this is discussed.

If there is a functional dependence between the reflectivity at 0rad in the G4MaterialsPropertiesTable and at xrad, then just one line after the above will do:

G4double PdotN = OldMomentum * theGlobalNormal; G4double theta = std::acos(PdotN);

theReflectivity = function(theta) * theReflectivity;

(assuming OldMomentum and theGlobalNormal have already been assigned)

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

 Add Message Add Message
to: "Re: Angle of Entry Optics"

 Subscribe Subscribe

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


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]