pkgs/PhotonTransport (NOvA offline)¶
PhotonTransport simulates the production, propagation, and detection of photons in the detectors. At present there is exactly one runtime module, "
SimpleTransport". It is part of the main detector simulation chain.
PhotonTransport package provides the
SimpleTransport module. Default configuration(s) are provided in
There are many configuration parameters for this module, but unless you are doing targeted studies, the defaults are what you want. Note that the overall light level is set by the product
PhotonsPerMeV. If you wish to tune the light level, you only need to change one of these.
CollectionEff is preferred for now.
||string||"setrans"||location of output PhotonSignals on the DetSim() branch|
||float||1200000000||blue photons per MeV of deposition; value is historical, but see note above.|
||float||0.85||APD quantum efficiency|
||float||8.23e-08||fiber collection efficiency; tuned to give 25 PE/MIP at the far end of the FD.|
||float||1.59||index of refraction for core of fiber. (Cladding has n=1.49 and n=1.42.)|
||float||9||time constant of fluor de-excitation in ns|
||float||2||time spread due to light bouncing around the cell -- a made up number for now!|
||int||1||whether to apply time smearing due to non-direct photon travel down the fiber|
||float||0.3137 289.5 0.1669 852.3||fiber attenuation parameters; see XML for more|
||float||2||photons closer than this many nanoseconds are clumped into a single PhotonSignal object (for file size savings)|
||float||2||step size for walking along each track segment, in cm|
||float||0.09||k_B of Birks' Law, in g/cm^2/GeV. 0.09 is a placeholder value|
||int||0||toggle a special mode where there is no attenuation and no stochastic effects|
The task is to turn energy depositions (
FLSHits) into a collection of photoelectrons on the APDs (
PhotonSignals). The following is performed for each
The track segment represented by the
FLSHit has some length L. In steps of
Step (a parameter; default 2 cm), the track segment is walked along, with each step assigned a proportional fraction (
Step / L) of the deposited energy. The midpoint of the step (in particular, its z position in cell coordinates) is noted.
For each step's energy, the two fiber directions are treated independently, with half of the energy assigned to each direction. The distance to the APD is determined along each direction, and attenuation is applied (along with all the necessary scale factors, like photons/MeV, APD QE, etc.)
The result in a mean number of photoelectrons expected in each direction. A Poisson-distributed number (i.e., PEs) is chosen using these two means.Each PE is then assigned a time. The time is the sum of:
- particle time-of-flight to the location of the step in question
- photon time-of-flight down the fiber
- random shift for possible indirect paths down the fiber [NOvA doc-3445]
- small Gaussian jitter to simulate photon travel time from the point of energy deposition to collection in the fiber
- exponential delay for fluor de-excitation
When all PEs have been treated on a given cell, they are grouped into
TimeClustering-wide batches (default: 2 ns). This way, hundreds of PEs all occurring within a fraction of a nanosecond of each other (common) will be represented by a single
PhotonSignal object instead of by hundreds of
Although Birks' suppression is applied, dE/dX must be estimated as (total energy)/(length of track segment) for each
FLSHit. Since dE/dX can vary significantly over the length of a segment, the suppression factor calculated will be biased toward to unity (i.e., less suppression than desired). If this ends up being critical, it could be fixed by playing with the treatment of step sizes in