-
Notifications
You must be signed in to change notification settings - Fork 7
Leo fits #72
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: main
Are you sure you want to change the base?
Leo fits #72
Conversation
…cattering only particles
…IncandScatNumEnsemble with core and shell diameters.
…ult is Flase. Set to True for leo fits.
Ah. I need to change the tests as well. Now beam_shape test removed for now. |
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.
Overall, this is really good. Some more documentation is needed, as well as unit tests for each of the LEO fit types. In addition, I request that commented out code be removed from the final version (comment notes are fine).
my_high_gain_scatterers['PkHt_ch0'].values))/ \ | ||
np.sum(my_high_gain_scatterers['PkHt_ch0'].values)) | ||
#high_gain_split_position = my_high_gain_scatterers['PkSplitPos_ch3'].values | ||
#low_gain_split_position = my_low_gain_scatterers['PkSplitPos_ch7'].values |
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.
Please remove commented out code.
#normalize the profile to range [~0,1] | ||
profile_ch4 = (data_ch4 - base_ch4) / peak_height_ch4 | ||
#insert the profile as it was recorded (no shifting due to PEAK POSITION or PSD POSITION) | ||
#my_high_gain_profiles_[i,:] = profile |
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.
More commented out code to remove at this line.
# moving_average_window, axis=0) | ||
#moving_median_high_gain_base = np.nanpercentile(moving_high_gain_base, 10,axis=1) | ||
#moving_median_low_gain_base = np.nanpercentile(moving_low_gain_base, 10,axis=1) | ||
|
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.
Past 4 lines here are commented out code that should not be in the final product if not used.
#leo_Base_ch0[iloc_high_gain[:-moving_average_window+1]] = moving_median_high_gain_base | ||
#leo_Base_ch4 = np.zeros(scatter_low_gain_accepted.shape)*np.nan | ||
#leo_Base_ch4[iloc_low_gain[:-moving_average_window+1]] = moving_median_low_gain_base | ||
|
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.
Please remove this block of commented code.
* LAST BIN TO USE FOR LEO FIT (from split detector) (DONE) | ||
* do also for LG. | ||
* TAKE BASELINE SCAT FROM ACTUAL TRACERS IN LEO_FIT | ||
""" |
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 would put this into the docstring section under a new "Notes" section to inform the user about what is done and what needs to be implemented.
#Low gain | ||
for i in range(my_binary.sizes['event_index']): | ||
#max_value = data_ch0[i,:].max() - data_ch0[i,:].min() | ||
#bins_ = bins[num_base_pts_2_avg:leo_fit_max_pos[i]] |
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.
Commented lines of code to remove.
from .DMTGlobals import DMTGlobals | ||
|
||
def calc_diams_masses(input_ds, debug=True, factor=1.0, Globals=None): | ||
def calc_diams_masses(input_ds, debug=True, factor=1.0, Globals=None, leo_fits=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.
Please add documentation for the leo_fits flag in the docstring below.
print("Number of incandescence particles rejected for min. peak height = %d" % rejectMinIncandTotal) | ||
print("Number of incandescence particles rejected for peak width = %d" % rejectIncandWidthTotal) | ||
#print("Number of incandescence particles rejected for fat peak = %d" % rejectFatPeakTotal) | ||
#print("Number of incandescence particles rejected for peak pos. = %d" % rejectFtPosTotal) |
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 would keep as much debug output as possible, so if these two new rejection criteria are recorded, I would keep them in.
leo_Scat_not_sat = 1e-18 * (Globals.c0Scat1 + Globals.c1Scat1*leo_PkHt_ch0 + Globals.c2Scat1*leo_PkHt_ch0**2) | ||
leo_Scat_sat = 1e-18 * (Globals.c0Scat2 + Globals.c1Scat2*leo_PkHt_ch4 + Globals.c2Scat2*leo_PkHt_ch4**2) | ||
leo_Scatter = np.where(PkHt_ch0 < Globals.ScatMaxPeakHt1, leo_Scat_not_sat, leo_Scat_sat) | ||
#leo_Scatter = np.where(accepted_incand, leo_Scatter, np.nan) |
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.
Please remove if not used.
#coeff, beam_profile = pysp2.util.beam_shape( | ||
# my_binary, beam_position_from='peak maximum', Globals=pysp2.util.DMTGlobals()) | ||
#np.testing.assert_almost_equal(coeff, [9.83851858e-01, 4.64317390e+01, | ||
# 1.14337852e+01, 4.46761788e-03]) |
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 would make unit tests for each of your beam_position_from flags.
First (beta) version of a working version of LEO fits for PySP2. Work is still needed on the details/tweaks, but the essentials should be there to expand on.