Wrong position of reflective foil on OpFastScintillation in larsim
I came across this issue whilst refactoring the code on
fplane_depth is effectively used as the X coordinate of the foils in SBND. Given SBND's geometry this should be close to 0. However printing it out comes to 2.6. Hence, mistakingly, the position of the foils are 2.6 cm for TPC0 and -2.6 cm for TPC1.
I came across this issue because I made the assumption that the region inclosed in between the reflecting foils should yield no detectable hits at all, VUV or VIS. This might still be a sensible assumption for geometries where there's a volume of LAr inclosed between reflecting foils. Whilst keeping such condition wouldn't affect SBND, the fact is the volume should be ~0.2 cm wide.
This variable is assigned with:
My guess is that this issue points to a combination of problems with:
fcathode_centre = geo->TPC(0, 0).GetCathodeCenter(); fplane_depth = std::abs(fcathode_centre);
- SBND geometry
geo->TPC(0, 0).GetCathodeCenter()pointing to the wrong object
The outcome is that the amount of VISHits and their arrival times is slightly biased. Reckon about ~1 % for the later.
I would also like to bring to attention that in
larsim/PhotonPropagation/PDFastSimPAR_module.cc, where OpFastScintillation code was copied to, the variable
fplane_depth is not initialised.
I raise this issue here because it might be relevant to other experiments.
#2 Updated by Gianluca Petrillo 3 months ago
GetCathodeCenter() does not point to any object.
LArSoft has no protocol too describe the cathode, and the geometry calls "cathode" the far side of the TPC.
It works well enough most of the times, but it's not it.
An extension of the protocol can address this problem.
Even easier it would be if we adopted the more flexible initialisation scheme implemented to accommodate pixel geometries. Just saying.