Skip to content
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

Including a basic numerical radiopropa tracer #271

Merged
merged 119 commits into from
May 19, 2021
Merged

Conversation

boboeyen
Copy link
Collaborator

A new numerical ray tracer is implemented in NuRadioMC to enable the investigation of non-exponential ice models. This basic tracer relies on radiopropa which will soon have a new release adapted to work with this tracer. The ray tracer works in a iterative way for now, a new minimiser will come later to speed up the process for certain ice models

To facilitate radiopropa, the medium implementation has also changed at the back and, but can be used in the front end as before. Implementing new ice models will have to be done in a new way and preferably in both NuRadioMC and radiopropa if you want to use this ray tracer.

boboeyen and others added 30 commits September 8, 2020 15:42
return reflection angles from all possible paths in a numpy array
shower direction in NuRadioMC is stored as radians
addition due the the sphere around the channel had wrong unit.
Copy link
Collaborator

@cg-laser cg-laser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @boboeyen I went through all requested code changes. Looks pretty good. I added a few comments in-line.

NuRadioMC/SignalProp/analyticraytracing.py Outdated Show resolved Hide resolved
NuRadioMC/simulation/simulation.py Outdated Show resolved Hide resolved
NuRadioMC/simulation/simulation.py Outdated Show resolved Hide resolved
NuRadioMC/utilities/medium.py Outdated Show resolved Hide resolved
radiopropa ice model, so it can be used in NuRadioMC. For example

def get_ice_model_radiopropa(self):
scalar field = radiopropa.New_IceModel(*args)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in this example args is not defined.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did this because depending on which icemodel you use or module you add the arguments are different and I didn't wanted it to be to specific but I don't know how to make this make clear that these things are placeholders for the real arguments

NuRadioMC/utilities/medium.py Outdated Show resolved Hide resolved
NuRadioMC/utilities/medium.py Show resolved Hide resolved
NuRadioMC/utilities/medium_base.py Outdated Show resolved Hide resolved
NuRadioReco/utilities/geometryUtilities.py Outdated Show resolved Hide resolved
changelog.txt Show resolved Hide resolved
Copy link
Collaborator

@cg-laser cg-laser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey Bob, a few more comments inline.

@@ -1629,6 +1630,31 @@ def set_start_and_end_point(self, x1, x2):
self.__x2 = np.array([X2r[0], X2r[2]])
self.__logger.debug("2D points {} {}".format(self.__x1, self.__x2))

def use_optional_function(self, function_name, *args, **kwargs):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice implementation! But I'm wondering, can't we put this function into the base_class and then make all other ray tracer inherit from this class?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes indeed, Christoph also mentioned it and I had the same idea. I suggested to make a issue for this to keep thing a bit seperate. I'll work on it after this is merged :)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, why not do it directly here? It it works it should be just a few more lines of code change.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, if we want to inherit from the base_class I would like to check it and make sure that everything is done right, also for set_start_end_end_point and other function inheritance could be an option I think. So I think working with a clean slate would be more clear and unclutter things. But we can discuss it tomorrow.

NuRadioMC/SignalProp/analyticraytracing.py Outdated Show resolved Hide resolved
NuRadioMC/SignalProp/directRayTracing.py Outdated Show resolved Hide resolved
NuRadioMC/simulation/simulation.py Outdated Show resolved Hide resolved
@christophwelling
Copy link
Collaborator

Looks like all my complaints were addressed :-)

@boboeyen boboeyen merged commit 18f20a0 into develop May 19, 2021
cg-laser pushed a commit that referenced this pull request May 20, 2021
Makes channelSignalReconstructor store nosie RMS in channel parameters
@boboeyen boboeyen deleted the radiopropa_tracer branch December 20, 2021 08:54
@boboeyen boboeyen restored the radiopropa_tracer branch December 20, 2021 09:02
@anelles anelles deleted the radiopropa_tracer branch February 14, 2024 07:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants