LUT Davis optical model

This post was flagged by the community and is temporarily hidden.

Running examples/extended/optical/OpNovice2 with the macro below shows 93% reflectance. How does this compare to what you see?

/control/verbose 2
/tracking/verbose 0
/control/cout/ignoreThreadsExcept 0

/opnovice2/boxProperty RINDEX 0.000002 1.3 0.000008 1.4
/opnovice2/worldProperty RINDEX 0.000002 1.01 0.000008 1.01

/opnovice2/surfaceModel DAVIS
/opnovice2/surfaceType dielectric_LUTDAVIS

/run/initialize

/gun/particle opticalphoton
/gun/energy 3 eV
/gun/position 0 0 0 cm
/gun/direction .99 0 0.1
/opnovice2/gun/optPhotonPolar

/analysis/h1/set 3 40 -1 39
/analysis/h1/set 4 100 -1.1 1.1
/analysis/h1/set 5 100 -1.1 1.1
/analysis/h1/set 6 100 -1.1 1.1
/analysis/h1/set 7 100 -1.1 1.1
/analysis/h1/set 8 100 -1.1 1.1
/analysis/h1/set 9 100 -1.1 1.1
/analysis/h1/set 10 100 -1.1 1.1
/analysis/h1/set 11 100 -1.1 1.1
/analysis/h1/set 12 100 -1.1 1.1

/opnovice2/surfaceFinish PolishedTeflon_LUT
/run/beamOn 10000

Thank you for your answer.
I checked as you suggested. Indeed, if I define all surfaces as reflectors I get a similar result (94% reflectivity), so this seems to be similar. I still see two problems though:

  1. All the photons seem to finally escape from the crystal and end with OutOfWorld Transportation, even when I define an extremely small value for ABSLENGHT

  2. Whenever I define a surface finish as Detector_LUT, optical photons get stuck there blocking the run. I don’t really understand how this surface finish should affect the destiny of a non-reflected photon, and if in order to detect it I should define an efficiency for the surface itself or for the adjacent volume. I try to use a volume as a “sensor”, giving it a certain EFFICIENCY and no RINDEX, so that the optical photons should be absorbed in it. But I cannot get any photon detected, meaning fBoundaryProcs[Detection].
    In general it is not clear to me in the Davis model what is the meaning of the MaterialPropertiesTable of a surface, since the complete information of the interface should be contained in the LUT itself.

I feel I am missing some basic understanding how this all should work together, but I could not find any simple example or documentation to learn from. I hope you can help.
Thanks in advance

Hi,

Absorption seems to work–try adding this to the OpNovice2 macro in the previous message:
/opnovice2/boxProperty ABSLENGTH 0.000002 100 0.000008 100

Detector_LUT gives me an infinite loop. It’s possible I’m doing something wrong. Nevertheless, it is supposed to be simulating a detector surface, not necessarily detecting the photon.

To get a photon interaction at the boundary, the next volume needs to have an RINDEX defined.

To get fBoundaryProcs[Detection], an EFFICIENCY for the surface needs to be set. This is true even with Davis LUT.

This post was flagged by the community and is temporarily hidden.

Hi,
I’m trying to get the DAVIS model to work in my simulation, but my code can’t find the DAVIS model and it’s components. Since you guys have the model working I hoped you could help me. This is the error I got:

DetectorConstructionG4.cpp:351:44: error: use of undeclared identifier ‘dielectric_LUTDAVIS’; did you mean ‘dielectric_LUT’?
OpScintHousingSurface->SetType(dielectric_LUTDAVIS);
^~~~~~~~~~~~~~~~~~~
dielectric_LUT
/cvmfs/sft.cern.ch/lcg/releases/Geant4/10.03.p01-8919f/x86_64-slc6-gcc62-opt/include/Geant4/G4SurfaceProperty.hh:69:4: note: ‘dielectric_LUT’ declared here
dielectric_LUT, // dielectric-Look-Up-Table interface
^
DetectorConstructionG4.cpp:352:45: error: use of undeclared identifier ‘DAVIS’
OpScintHousingSurface->SetModel(DAVIS);
^
DetectorConstructionG4.cpp:353:46: error: use of undeclared identifier ‘PolishedTeflon_LUT’; did you mean ‘polishedteflonair’?
OpScintHousingSurface->SetFinish(PolishedTeflon_LUT);
^~~~~~~~~~~~~~~~~~
polishedteflonair

Did you do anything special while installing/running your software to activate the DAVIS model?

Cheers,
Koen

This post was flagged by the community and is temporarily hidden.

Hi Luca,

According to the software I should be running Geant4 10.5 which should have the LUT Davis implemented, but I’ll check with the software developers if they can check what’s going on.

Thanks for the help.

Koen

I don’t know. Let’s do one thing at a time, say absorption. I would debug it like this.

  1. Is the process enabled? Use the command
    Idle> /process/list
    Do you see OpAbsorption?
  2. Run with visualisation. Are there opticalphotons in the CsI_MPT volume?
  3. Set
    /tracking/verbose 3
    and look for OpAbsorption in the output. Also energy deposit.

@Koen,

Davis LUT was added in Geant4 version 10.4. According to your error message you are using version 10.3.

You are right, I checked with the software developer and I’m indeed using Geant4 10.3.
I’ll look at the manual enabling!

This post was flagged by the community and is temporarily hidden.

Hi all.
I finally managed to fix some problems. I attach the output log and the DetectorConstruction file.
Please notice:

  1. The problem with absorption was due to the fact that I misspelled “ABSLENGTH”. I was really surprised to see that there is no error caused by that, which maybe it will be good to add in future versions of Geant, to avoid other people waisting so much time as I did.

  2. To get photon detection, the sensitive surface is defined as Detector_LUT, it has a non-0 efficiency and no defined refractive index

Thank you for the help.

Luca

Log_vis.txt (286.8 KB)
DetectorConstruction.cc (12.9 KB)

Glad to hear you’ve got it fixed. Thanks for your comments.

  1. It’s a valid use case for people to set their own material properties, so we can’t give an error for mis-spellings. Perhaps a warning would ber good.

  2. Thanks – it was the non-0 efficiency I was missing. A non-0 efficiency rules out transmission, but I suppose this is what is wanted for a detector. I’m not sure where this is documented.

1 Like