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

Adding SNO+ and proton scattering to sntools #41

Merged
merged 18 commits into from
Oct 6, 2022

Conversation

svalder
Copy link

@svalder svalder commented Mar 10, 2022

I have added SNO+ as a detector into sntools in the form of two different geometries: inner AV filled with liquid scintillator, and external water inside the PMT support structure. This has added two new geometries to sntools called 'sphere' and hollowSphere'. The latter is two concentric spheres with the inner being empty and the outer being filled.

SNO+ also needed the addition of Liquid Alkyl-benzene (LAB) as a detector material. This has been added with the averaged chemical composition calculated through the carbon chain lengths.

Proton elastic scattering has also been implemented as an interaction channel. This is the second largest interaction channel for SNO+ and is available to liquid scintillators. This has been based off John F Beacom et al., 2002: 10.1103/PhysRevD.66.033001.

The results have been cross-checked with SNO+ preliminary event rates, as well as other an analytical event rate calculator, EstrellaNueva.

I've not yet added to the documentation, but I'm happy to do so in the same style as already written.

Please let me know if you have any comments/questions. Cheers, Sammy

sntools/genevts.py Outdated Show resolved Hide resolved
@JostMigenda
Copy link
Member

JostMigenda commented Mar 10, 2022

Thanks @svalder, this is looking good!

Don’t worry about the failing tests for now—the unit tests still pass as expected, and the integration tests only fail because the new output files are being compared to a hard-coded output file which doesn’t include proton scattering events.
(Actually, we should check with @yschnellbach: I don’t think you’ve studied proton scattering for WATCHMAN-LS thus far, right? Are you happy with it being added as part of this PR or should we remove this channel from the ls material for the time being?)

A couple things before we can merge this:

  • Please go ahead and update the documentation, yes!
  • Why ep as the short name for proton scattering? (Is this some SNO+ convention?) To me, ps for proton scattering would be more intuitive (and consistent with es for electron scattering, too).
  • What cross checks have you done on the proton scattering implementation, beyond comparing event counts with other software? (That by itself is a good sign, but cross section code is notoriously tricky and can have more subtle bugs. I can take a look at the code & paper side by side in the next few days, but additional checks would be good.)
  • Can you add a few unit tests for the proton scattering channel? (See /tests/test_*.py for examples for other channels.)
  • Regarding tests, let’s wait for Yan-Jie’s response.

@yschnellbach
Copy link
Contributor

Hi, we haven't studied proton scattering for WATCHMAN-LS so far, but looking over the PR, I see no reason to omit it from the ls material. Looks good and useful to me.

@svalder
Copy link
Author

svalder commented Mar 14, 2022

Hi both, thank you for the comments!

  • I'll start adding to the documentation :)
  • Ahh ok so yes this originated from SNO+ (Elastic Proton scattering), but I see now that this is a little confusing with es. I'll change it to ps.
  • The cross checks I've done have been comparing to (1) additional approved event generators (SNUGen), and (2) analytical simulations such as EstrellaNueva. I'm open to further suggestions if you have any.
  • Sure thing, I'll have a look into adding some tests in asap

RE: adding it as a ls interaction channel. Yes I wasn't 100% sure on this, but I assumed it would be available even for lighter liquid scintillators as you're still open to the NC channel and don't need to worry about the cherenkov threshold.

@JostMigenda
Copy link
Member

Okay, I’ve just pushed a commit to update the integration test. With that, this PR is complete. 🎉 Thank you so much @svalder for all your work on this!

@JostMigenda JostMigenda merged commit 133ebe7 into SNEWS2:main Oct 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants