-
Notifications
You must be signed in to change notification settings - Fork 58
Argon #257
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
base: master
Are you sure you want to change the base?
Argon #257
Conversation
|
The optical material properties of some materials, such as the sapphire windows or the PMT windows, are not defined for energies greater than 10.3 eV and 10.7 eV, respectively, because the formulas we're using are not valid beyond that point. This could be a problem because we are simulating argon scintillation light up to 11.2 eV; if a photon at the end of the spectrum hits a material without optical properties for its energy, it will have an unexpected behaviour. |
I will see if I can find any references for relevant materials. |
@paolafer I couldn't find much, it might be because the transmittance of 128nm light through sapphire and UV FS tanks very significantly at these wavelengths. The plot below is from the crab paper: How is it best to deal with this? |
|
If the CRAB plot is the only piece of information we have at high energies, maybe we can add a few points more to those properties to match that transmittance values. We would need to do a small simulation and vary the refraction index and the absorption length to match the desired transmittance. What do people think? |
I also found this paper which has the transmission and reflectance for quartz and sapphire for a few more thicknesses and angles of incidence. https://link.springer.com/article/10.1134/S0020441206030195 Transmittance is small (e.g. from CRAB measurements) or basically zero in these plots for FS and Sapphire. Reflectance ranges from 20-30% for FS, and 2-20% for Sapphire. I need to brush up on my optics, can we calculate the refractive index from these numbers or does it need to be done anlytically? |
|
I'm not sure about how to do it. |
|
I think you should be able to calculate the refractive index starting from the reflectance at a specific angle using the Fresnel equations no? |
|
In this last update I have udpated the refractive index for the out of range value used in the Semellier Eq for FS and Sapphire. Currently we use the last recorded value in the Semellier equation. I have bumped this up to value of 10 to make sure the transmission goes to zero. This is based on the paper cited in the comment/cited above. I have also rebased the branch to master. |
gonzaponte
left a comment
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.
Looks good. Just a couple of questions.
| el_field->SetLightYield(XenonELLightYield(ELelectric_field_, pressure_)); | ||
|
|
||
| // Decide whether to use argon or xenon LY | ||
| if (gas_->GetName() == "GAr"){ | ||
| el_field->SetLightYield(ArgonELLightYield(ELelectric_field_, pressure_)); | ||
| } | ||
| else { | ||
| el_field->SetLightYield(XenonELLightYield(ELelectric_field_, pressure_)); | ||
| } | ||
|
|
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.
Should we protect against invalid names like everywhere else?
| // Gas Properties | ||
| if (gas_ == "GAr"){ | ||
| vessel_gas_mat->SetMaterialPropertiesTable(opticalprops::GAr(sc_yield_, e_lifetime_)); | ||
| } | ||
| else { | ||
| vessel_gas_mat->SetMaterialPropertiesTable(opticalprops::GXe(pressure_, | ||
| temperature_, | ||
| sc_yield_, | ||
| e_lifetime_)); | ||
| } |
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.
This is an issue for a different PR, but it seems that we are defining the same gas in different places, perhaps we should revisit this and propagate the gas material from the top down.
| { 15.0 * bar, 24.843 * kg/m3}, | ||
| { 20.0 * bar, 33.231 * kg/m3}, | ||
| { 30.0 * bar, 50.155 * kg/m3}}; | ||
| G4bool found = false; |
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.
you could initialize density to 0 and then check if it's still 0 later so you don't need to keep track of a separate variable
| // The rindex is not defined for sapphire beyond optPhotFusedSilicaMaxE_ = 10.7 eV | ||
| // Measurements https://link.springer.com/article/10.1134/S0020441206030195 imply | ||
| // that the transmission goes to zero for energies higher than this (>120 nm) | ||
| // We set n to be an arbitarily high value of 10 so the value is | ||
| // implemented in the simulation (transmission goes to zero) | ||
| ri_energy.push_back(optPhotMaxE_); | ||
| rIndex.push_back(10); |
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.
If I recall correctly, G4 interpolates between values, so the refractive index between optPhotFusedSilicaMaxE_ and optPhotMaxE_ will grow linearly. Is this what we want or do we want it to be high immediately after optPhotFusedSilicaMaxE_ ?
| // This sets the refractive index between optPhotSapphireMaxE_ and | ||
| // optPhotMaxE_ to the value obtained at optPhotSapphireMaxE_ | ||
|
|
||
| // The rindex is not defined for sapphire beyond optPhotSapphireMaxE_ = 10.3 eV | ||
| // Measurements https://link.springer.com/article/10.1134/S0020441206030195 imply | ||
| // that the transmission goes to zero for energies higher than this (>120 nm) | ||
| // We set n to be an arbitarily high value of 10 so the value is | ||
| // implemented in the simulation (transmission goes to zero) | ||
| ri_energy.push_back(optPhotMaxE_); | ||
| rIndex.push_back(rIndex[rIndex.size()-1]); | ||
| rIndex.push_back(10); | ||
|
|
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.
same comment as above.
| ## eventType options: bb0nu, bb2nu, background | ||
| /nexus/persistency/event_type background | ||
|
|
||
| /process/optical/processActivation Cerenkov false No newline at end of file |
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.
Missing a newline at the end of file.


This PR includes some updates to the NEXT100 geometry and argon properties relevant for the LPR argon run. I have also included some example configuration files with baseline parameters for running in the LPR mode.
Since the NEXT100 geometry had the drift velocities hard-coded. I have added a configurable parameter for this now.