-
Notifications
You must be signed in to change notification settings - Fork 267
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add application of DL1 charge calibration to CameraCalibrator #1160
Conversation
"Coefficients for the relative correction between pixels to achieve a " | ||
"uniform charge response (post absolute calibration) from a " | ||
"uniform illumination." | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For "relative" and "absolute", it may be better to name them "X_gain" or similar to be clear these are multiplicative calibration factors, unlike "pedestal" which is additive (well subtractive, really).
I've added "_factor" to multiplicative coefficients, and "_offset" to additive coefficients |
- Fix typo - Add test for coefficients default
Codecov Report
@@ Coverage Diff @@
## master #1160 +/- ##
==========================================
+ Coverage 85.9% 85.97% +0.07%
==========================================
Files 182 182
Lines 11305 11390 +85
==========================================
+ Hits 9711 9792 +81
- Misses 1594 1598 +4
Continue to review full report at Codecov.
|
what happens currently with monte-carlo data? Are these calibration monitoring containers filled with the values from the MC file? Also, be clear that "monitoring" is not event-wise, it's time-wise, so if these are intended to be interpolated to an event time (in the case that things like the pedestals), then i'm not sure the monitoring value is the one you want to use. |
No. The calibration coefficients depend on the charge extraction technique, and the calibration approach (e.g. converting to photons)
The values used here are intended to be the ones that you apply for an event. It may be that these are loaded once per observation, and don't change. Or it may be that they are interpolated from a table depending on the event time (and could be basically the same for multiple events). Or they may be continuously updated from an on-the-fly calibration. Let me know if this is not the correct place for such coefficients... |
These values are intended to be filled by a |
If these are the instantaneous values for the event, not the "monitored values" once per second or more, then they really should be in the event, not monitoring container (I know we currently mix the two, but that will be separated at some point). Instantaneous values should be in the "DL1/Event/Telescope" data model (or R1 depending on when they are computed) and are derived generally from monitoring data. Perhaps for now, we just put them in Really, it's only pedestals I'm worried about confusing. Maybe also flatfield, but anything that doesn't change during an observation (DC/PE, etc) ,should eventually leave the event container completely. |
I think I need to write down a complete proposal for the full internal and external data model at some point, but that will require some time (should be done and updated before a 1.0 release though!). For now, let's try to put things somewhere that makes it less painful to move them around later. Probably just not calling anything "Monitoring" now is best, since we so far do not really compute any true monitoring quantities (except perhaps the outputs from Franca's pedestal tool, if they are not per-event) |
@kosack Does it make sense that it leaves the event container completely? It's important to know the correct value for the current event. As you have said in #1165:
|
The dl1 calibration coefficients that are applicable for the current event (and should be used in the CameraCalibrator) are now located at |
Yep done |
This PR adds the ability to apply the DL1 charge calibration that has been attached to the event in the DL1CameraCalibrationContainer (
event.mon.tel[telid].calibration.dl1
)