#  'Time', 'Date', 'Event_run', 'Event_evtnum', 'Event_nuclear',
#        'Event_nuclearRaw', 'GonioPos_x', 'GonioPos_y', 'GonioPos_z',
#        'MultiHits_thetaIn_x', 'MultiHits_thetaIn_y',
#        'MultiHits_thetaInErr_x', 'MultiHits_thetaInErr_y',
#        'MultiHits_d0_x', 'MultiHits_d0_y', 'MultiHits_d0Err_x',
#        'MultiHits_d0Err_y', 'Tracks_thetaIn_x', 'Tracks_thetaIn_y',
#        'Tracks_thetaOut_x', 'Tracks_thetaOut_y', 'Tracks_thetaInErr_x',
#        'Tracks_thetaInErr_y', 'Tracks_thetaOutErr_x',
#        'Tracks_thetaOutErr_y', 'Tracks_d0_x', 'Tracks_d0_y',
#        'Tracks_d0Err_x', 'Tracks_d0Err_y', 'Tracks_chi2_x',
#        'Tracks_chi2_y', 'SingleTrack', 'MultiHit'
chunksize = 2000000
interesting_columns = [
    "Tracks_d0_x", "Tracks_thetaOut_x", "Tracks_thetaIn_x", "SingleTrack"
]
cut_y_low, cut_y_high = my.get_from_csv(analysis_configuration_params_file,
                                        "cut_y_low", "cut_y_high")
evts = pd.read_hdf(file_name,
                   chunksize=chunksize,
                   columns=interesting_columns,
                   where=[
                       "SingleTrack == 1", "Tracks_d0_y > cut_y_low",
                       "Tracks_d0_y < cut_y_high"
                   ])

# events = evts.next() # python 2!
# events = next(islice(evts, 1))
loaded_rows = 0
events = pd.DataFrame(columns=interesting_columns)
print("[LOG]: Loading data...")
for df in evts:
    loaded_rows = loaded_rows + df.shape[0]
Exemplo n.º 2
0
################# FIT USING CRITICAL ANGLE AS CUT
# theta_bending = fit_results["mean_CH"]
# crystal_curvature_radius = crystal_lenght / (theta_bending*1e-6)
# theta_c = math.sqrt(2*pot_well/particle_energy)*1e6 * (1 - critical_radius/crystal_curvature_radius) # [murad]

#### How much to move the absolute position of the cuts
# Example, with cuts [-5,5] and offset +3, we have an actual cut of [-2,8]
# Useful if torsion correction is not employed, to center the cuts
# center_offset = float(my.get_from_csv(analysis_configuration_params_file,
#                                              "chan_center_offset"
#                                              ))

dtx_low, dtx_high = my.get_from_csv(
    analysis_configuration_params_file,
    "chan_hist_range_dtx_low",
    "chan_hist_range_dtx_high",
)
dtx_nbins = int(
    my.get_from_csv(analysis_configuration_params_file, "chan_hist_tx_nbins"))
x_histo = np.linspace(dtx_low, dtx_high, dtx_nbins + 1)  # [murad]

print("New Thetac: ", theta_c)

lowest_percentage, highest_percentage = my.get_from_csv(
    analysis_configuration_params_file, "chan_low_percentage",
    "chan_high_percentage")
dech_start, dech_end = my.get_from_csv(analysis_configuration_params_file,
                                       "dech_start", "dech_end")
# dech_start, dech_end = 1e6*dech_start, 1e6*dech_end # convert to mura
chan_fit_tolerance = my.get_from_csv(analysis_configuration_params_file,
#     print("\nCut: +-",low_cut)
#     print(pd.Series(fit_results))
#################


################# FIT USING CRITICAL ANGLE AS CUT
# theta_bending = fit_results["mean_CH"]
# crystal_curvature_radius = crystal_lenght / (theta_bending*1e-6)
# theta_c = math.sqrt(2*pot_well/particle_energy)*1e6 * (1 - critical_radius/crystal_curvature_radius) # [murad]


ang_cut_low = [-theta_c / 2, -theta_c]
ang_cut_high = [theta_c / 2, theta_c]

dtx_low, dtx_high = my.get_from_csv(analysis_configuration_params_file,
                                             "chan_hist_range_dtx_low",
                                             "chan_hist_range_dtx_high",
                                             )
dtx_nbins = int(my.get_from_csv(analysis_configuration_params_file,
                                             "chan_hist_tx_nbins"))
x_histo = np.linspace(dtx_low,dtx_high,dtx_nbins + 1) # [murad]



print("New Thetac: ", theta_c)

lowest_percentage, highest_percentage = my.get_from_csv(analysis_configuration_params_file,
                                     "chan_low_percentage",
                                     "chan_high_percentage")
chan_fit_tolerance = my.get_from_csv(analysis_configuration_params_file,
                                 "chan_fit_tolerance")
max_iterations = int(my.get_from_csv(analysis_configuration_params_file,
Exemplo n.º 4
0
# Read the parameters from the .csv
# .csv example:
#
# parameter_name	value
# init_scan	1570674.0
# xmin	0.0
# xmax	0.475

# if os.path.isfile(crystal_name + '_crystal_analysis_parameters.csv'):
#
#     crystal_analysis_parameters_file = crystal_name + '_crystal_analysis_parameters.csv'
# else if os.path.isfile(run_number + '_crystal_analysis_parameters.csv'):
#     crystal_analysis_parameters_file = run_number + '_crystal_analysis_parameters.csv'
# print("[LOG]: Reading crystal analysis parameters from ", crystal_analysis_parameters_file)
cut_left, cut_right = my.get_from_csv("crystal_analysis_parameters.csv",
                                      "xmin", "xmax")
cut_y_low, cut_y_high = my.get_from_csv(analysis_configuration_params_file,
                                        "cut_y_low", "cut_y_high")
#################

################# READ THE DATA
# Read the data $chunksize lines at a time. evts=iterator on the groups of lines
# DATAFRAME COLUMNS:
#  'Time', 'Date', 'Event_run', 'Event_evtnum', 'Event_nuclear',
#        'Event_nuclearRaw', 'GonioPos_x', 'GonioPos_y', 'GonioPos_z',
#        'MultiHits_thetaIn_x', 'MultiHits_thetaIn_y',
#        'MultiHits_thetaInErr_x', 'MultiHits_thetaInErr_y',
#        'MultiHits_d0_x', 'MultiHits_d0_y', 'MultiHits_d0Err_x',
#        'MultiHits_d0Err_y', 'Tracks_thetaIn_x', 'Tracks_thetaIn_y',
#        'Tracks_thetaOut_x', 'Tracks_thetaOut_y', 'Tracks_thetaInErr_x',
#        'Tracks_thetaInErr_y', 'Tracks_thetaOutErr_x',