Previous status in monopole ppc branch #

  • 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 lumiescence light
  • not the most elegant solution but requires the smallest change to currenct 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. Video