-
Notifications
You must be signed in to change notification settings - Fork 35
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
Enable modifications of the RNO-G detector description #686
base: develop
Are you sure you want to change the base?
Conversation
…f the RNO-G detector
Hi @fschlueter thanks for starting the discussion on this topic! Below are a few quick comments and questions from my side. If I can think of anything else, I will post another comment. Station geometry storage and bookkeeping
On-the-fly updates of station geometry
Visualization
|
Hey @philippwindischhofer some quick answers: |
Hi @fschlueter, thanks for your rapid answer!
|
Do you plan to perform calibrations "on-the-fly". I thought the idea is to run a calibration analysis and put the results of this in the DB |
Yes, the calibration would be run once, recorded in the DB, and a particular calibration retrieved via the As part of the calibration we will get uncertainties on the station geometry. If we want to propagate the geometry uncertainties into a simulation / reconstruction (especially at the beginning, where the uncertainties will be large), we need a mechanism to sample the space of allowed station geometries. That part, I think, would profit from being done "on the fly" (since it is fast), instead of storing many explicit variations of the geometry in the DB. |
@philippwindischhofer Re 4) - there's a nice interactive 3D visualization of NuRadio detectors (see the documentation for some more information on how to use it). It probably needs an update in order to also support the RNO-G detector, though; right now it only works with jsons, and the interface is slightly outdated. |
I see. Probably we should think of a smart way to allow shifting of positions and orientations. |
Thanks for starting this, Felix!
|
Tangentially to Steffen's comment and as was suggested by Christian in #616, I think it's important to be able to distinguish a modified detector from an unmodified detector. If we don't introduce a separate 'ModifiedDetector' class I think it would be good to at least have a (one-time) warning issued when a user first modifies the detector, and maybe an |
Hey @fschlueter and @shallmann,
For at least some cases (calibration being one of them) a proper treatment of the uncertainties will be a bit more complicated than simply "randomly wiggle antennas around independently". Rather, each uncertainty component will move around a set of antennas in a particular way. This is what I called "eigenmodes" earlier.
I don't think there currently are---but @fschlueter or @jakobhenrichs would know for sure. Given the above, I think an important aspect will be to decide on the format we choose to store the "modifications" in. If we want this to go into the DB, it should be sufficiently general to cover all our future use cases. Hey @sjoerd-bouma,
I would even go one step further and, instead of just tagging a detector geometry as "unmodified" and "modified", give them more informative "tags". There would be a single "nominal" detector geometry that represents the best-estimate of the actual as-deployed instrument, and then there would be several named variations around that nominal case.
I don't have any opinion on whether a |
I didn't fully appreciate the meaning of 'eigenmodes' earlier, yes you are right. We need to agree on which uncertainties and correlations / eigenmodes we need in the database. Independent per-channel uncertainties would have been a no-brainer to add to the database, eigenmodes may need a bit more thought.
No strong opinion either, but if we opt for a separate |
Yep! Although, if we find a good way of keeping the eigenmodes in the DB, then independent per-antenna uncertainties are just a special case :-) I fully agree with your points 1-4!
Indeed! I think this is a good argument in favor of a |
Added as much as possible given the current state of the RNO-G detector in this PR: #690 |
Hi again, I wanted to come back to this and open up another topic for discussion. If we are going to have the detector class support alternative geometries, it might be useful to be able to read those in from a file, similar to how detector descriptions may currently be specified in a I had a go at a possible schema here. I can provide an example calibration output if interested. As you can see, this follows the current NuRadioMC schema quite closely (is this formally specified somewhere?). Sticking with What do you think? |
Hi @philippwindischhofer, |
Hi all, I will need to go through that entire thread at some point (sorry for not having done so already and coming back to this). However, I wanted to let you know that I started an implementation of a |
…ns_to_RNOG_detector
…ons to add responses / time delays
I started taking the |
|
||
# modify the signal chain | ||
signal_chain_dict["total_response"] = orig_response * component_response | ||
signal_chain_dict["response_chain"][component['name']] = component |
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.
To me the way the response_chain
and total_response
are stored do not look ideal, it seems that things are stored twice and it is obscure which functions internally use which, and not straightforward to keep them in sync.
In an ideal world, a function like the add_response
above should be enough, but det.get_time_delay()
does not look at the total response, so the modifications seem necessary at two places.
Maybe I am missing something obvious how this was supposed to work?
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.
I all,
with this PR I want to start a discussion on how we will support the feature to modify the RNO-G detector description "on-the-fly". The feature is useful for systematic studies and in our efforts to improve the detector description. On example: We want to rotate the antenna orientations to see the effect of this rotation to the simulation of the galactic emission. In the future it will come in handy to allow to replace the response function of a channel with something different.
This PR adds a very simple function to the detector class which should (untested!) allow you to replace a certain value in the detector description. It is not very user friendly in the sense that you really need to know what you have to do. We could think of more specific user friendly interfaces. It could be a good possibility to create an inherent class which hosts all these modification interfaces we envision.
Any suggestions / comments / opinions?