direct and indirect Cherenkov light can be calculated
luminescence light can be calculated
but not both, enabling luminescence disables Cherenkov calculations
Goal
enable both at the same time at minimal code change
Idea
introduce a new parameter p_l (probability of luminescence light) for each photon
once the photon is processed, decide via dice roll if it was Cherenkov or luminescence light
not the most elegant solution but requires the smallest change to concurrent code
for future, maybe introduce a photon type enum with "direct Cherenkov, indirect Cherenkov, luminescence" and pass that to the particle. This way, we can either load specialised code for each case as the cann process all luminnescence/cherenkov photons in one go instead of branching for every photon
Implementaton
add p_l parameter to photon structure (ini.cxx)
calculate the ratio of luminescence photons to all photons in the yield function (f2k.cxx)
remove the code which switches between Cherenkov and luminescence (f2k.cxx)
introduce a new parameter x_l (random probability) in pro.cu. This parameter is compared to p_l to define if we have a luminescence or a Cherenkov photon. As the position and the angle of radiation are calculated at two different locations, we need to store the parameter so both subroutines are run in sync (position Cherenkov => angle Cherenkov, position luminescence => angle luminescence)
Current Status
the changes are merged into the svn
checkout the same event with Cherenkov light on the left and Cherenkov + luminescence light on the right. For the luminescence part a time decay of 2000ns and an efficency of 2 photons/MeV was chosen.