Browse Source

Add RHO2013 and fix combiner

compton 3 years ago
parent
commit
88e130f05a
2 changed files with 95 additions and 8 deletions
  1. 22 8
      src/compton_combiner.py
  2. 73 0
      tables/RHO2013.csv

+ 22 - 8
src/compton_combiner.py

@@ -4,6 +4,7 @@
 import argparse
 from configparser import ConfigParser
 from datetime import datetime, timedelta, timezone
+import logging
 import os
 import sqlite3
 from typing import Union, Tuple, Optional
@@ -18,8 +19,8 @@ import pandas as pd
 from tqdm import tqdm
 
 SEASONS = {
-    'name': ['HIGH2017', 'RHO2018', 'HIGH2019', 'LOW2020', 'HIGH2020', 'HIGH2021', 'NNBAR2021'],
-    'start_run': [36872, 48938, 70014, 85224, 89973, 98116, 107342, None],
+    'name': ['RHO2013', 'BRK2013/16', 'HIGH2017', 'RHO2018', 'HIGH2019', 'LOW2020', 'HIGH2020', 'HIGH2021', 'NNBAR2021'],
+    'start_run': [18809, 32076, 36872, 48938, 70014, 85224, 89973, 98116, 107342, None],
 }
 
 class RunsDBHandler():
@@ -278,6 +279,12 @@ def calculate_point(comb_df: pd.DataFrame, runs_df: pd.DataFrame, compton_df: pd
         min_run_time, max_run_time = min(min_Yruntime, runs_df_with_bads_df.starttime.min()), max(max_Yruntime, runs_df_with_bads_df.stoptime.max())
         
         compton_meas = compton_df.query('((begintime>=@min_run_time)&(begintime<=@max_run_time))|((endtime>=@min_run_time)&(endtime<=@max_run_time))').copy()
+        
+        if len(compton_meas) == 0:
+            # no compton measurements
+            raise Exception("No measurement in this point. Pass it.")
+            
+        
         res_df = pd.DataFrame(list(map(lambda x: {
             'compton_start': x[1]['begintime'],
             'compton_stop': x[1]['endtime'],
@@ -286,6 +293,7 @@ def calculate_point(comb_df: pd.DataFrame, runs_df: pd.DataFrame, compton_df: pd
             'spread_mean': float(x[1]['data'][2]),
             'spread_std': float(x[1]['data'][3]),
         }, compton_meas.iterrows())))
+        
         res_df = res_df.query(f'abs(e_mean -{comb_df.iloc[0].at["elabel"]})<5')
         
         if len(res_df) == 0:
@@ -306,20 +314,23 @@ def calculate_point(comb_df: pd.DataFrame, runs_df: pd.DataFrame, compton_df: pd
         
     
     df = comb_df.loc[~comb_df.compton_start.isna()].copy()
+    # df.spread_mean = np.where(df.spread_mean < 1e-3, 1e-3, df.spread_mean)
     df.spread_std = np.where(df.spread_std < 1e-4, 1e-4, df.spread_std)
     
     df = df[df.e_std > 0]
     mean_energy = np.sum(df.e_mean*df.luminosity/(df.e_std**2))/np.sum(df.luminosity/(df.e_std**2))
     # std_energy = np.sqrt(1/np.sum((df.luminosity/df.luminosity.mean())/df.e_std**2))
     
-    good_criterion = np.abs((df.e_mean - mean_energy)/np.sqrt(df.e_mean.std()**2 + df.e_std**2)) < 5
-    #print(df[~good_criterion].elabel.value_counts())
+    good_criterion = np.abs((df.e_mean - mean_energy)/np.sqrt(df.e_mean.std(ddof=0)**2 + df.e_std**2)) < 5
+    # print('vals', np.abs((df.e_mean - mean_energy)/np.sqrt(df.e_mean.std()**2 + df.e_std**2)) )
+    # print(df[~good_criterion].elabel.value_counts())
     df = df[good_criterion]
     
-    m = Minuit(Likelihood(df.e_mean, df.e_std, df.luminosity), mean=df.e_mean.mean(), sigma=df.e_mean.std())
+    m = Minuit(Likelihood(df.e_mean, df.e_std, df.luminosity), mean=df.e_mean.mean(), sigma=df.e_mean.std(ddof=0))
     m.errordef = 0.5 
     m.limits['sigma'] = (0, None)
     m.migrad();
+    # print(m.migrad())
     sys_err = m.values['sigma']
     mean_en = m.values['mean']
     
@@ -394,7 +405,10 @@ def process_combined(combined_df: pd.DataFrame, runs_df: pd.DataFrame, compton_d
     result_df = pd.DataFrame(columns=['energy_point', 'first_run', 'last_run', 'mean_energy', 'mean_energy_stat_err', 'mean_energy_sys_err', 'mean_spread', 'mean_spread_stat_err', 'used_lum', 'comment'])
     
     for i, table in tqdm(combined_df.groupby('point_idx', dropna=False)):
-        res_dict, good_df = calculate_point(table, runs_df, compton_df, rdb)
+        try:
+            res_dict, good_df = calculate_point(table, runs_df, compton_df, rdb)
+        except Exception:
+            continue
         result_df = result_df.append(res_dict, ignore_index=True)
         
         if pics_folder is not None:
@@ -441,10 +455,10 @@ def final_table_to_clbrdb(df: pd.DataFrame, clbrdb: CalibrdbHandler, runs_df: pd
     clbrdb.insert(df_clbrdb, 'Misc', 'RunHeader', 'Compton_run_avg', 'Default', comment = season)
     clbrdb.commit()
     
-def save_csv(df: pd.DataFrame, filepath: str):
+def save_csv(df: pd.DataFrame, filepath: str, update_current: bool = True):
     """Saves csv file. Updates current file in filepath if exists"""
     
-    if os.path.isfile(filepath):
+    if (os.path.isfile(filepath) and update_current):
         df_current = pd.read_csv(filepath)
         df_current = df_current.append(df, ignore_index=True)
         df_current = df_current.drop_duplicates(subset=['energy_point', 'first_run'], keep='last')

+ 73 - 0
tables/RHO2013.csv

@@ -0,0 +1,73 @@
+energy_point,first_run,last_run,mean_energy,mean_energy_stat_err,mean_energy_sys_err,mean_spread,mean_spread_stat_err,used_lum,comment
+490,18811,18876,490.754,0.0262685,0.754333,1e-06,0,0,indirect measurement #1
+480,18882,18950,480.896,0.029959,0,1e-06,0.0001,0.025705494505494336,
+470,18958,19066,470.892,0.0300606,0.00447559,1e-06,7.07107e-05,0.03610161603150152,
+460,19067,19271,461.254,0.029497,0.000541322,1e-06,7.07107e-05,0.006285522264372851,
+450,19272,19310,451.359,0.0376,0,1e-06,0.0001,0.03788556101922296,
+430,19367,19439,431.366,0.040967,0,1e-06,0.0001,0.01404066279710759,
+420,19466,19607,421.682,0.0214265,7.16182e-06,1e-06,5e-05,0.0515001676164935,
+409,19621,19794,410.827,0.0770615,0.123694,1e-06,5.7735e-05,0.019423578221015557,
+400,19798,19871,401.992,0.055119,0,1e-06,0.0001,0.014242172185675778,
+397,19872,19922,398.921,0.062289,0,1e-06,0.0001,0.039337931034482965,
+395,19923,19952,396.695,0.046365,0,1e-06,0.0001,0.03365273798939706,
+393,19953,19983,394.718,0.0416392,0.000504983,1.3203e-06,7.07107e-05,0.09943589923268292,
+391.5,19985,20180,393.579,0.0352484,0.000228272,1e-06,5.7735e-05,0.022922736961495625,
+390.5,20234,20258,392.441,0.00658004,0.000269226,9.77834e-07,3.16228e-05,1.0,
+390,20259,20279,391.937,0.00969042,0.000118734,1e-06,4.47214e-05,0.8808712009875945,
+389.5,20280,20511,391.422,0.00457279,0.023696,9.97533e-07,1.3484e-05,0.8418231427668369,
+389,20523,20551,390.965,0.0129805,0.000412417,1e-06,4.08248e-05,0.8871852664669754,
+388.5,20552,20578,390.337,0.00911788,0.00435567,1e-06,4.08248e-05,0.9240067017711825,
+387.5,20584,20771,389.254,0.00472102,0.0365422,1e-06,1.07211e-05,0.9841328638415814,
+386,20772,20790,387.837,0.0113032,0.0177614,8.87766e-07,3.16228e-05,1.0,
+384,20791,20820,385.754,0.0454377,0.145114,8.78715e-07,3.01511e-05,0.9980615459171311,
+382,20822,20989,381.838,0.379672,0.939158,8.13544e-07,3.77964e-05,0.10675240638691,
+378,21007,21034,379.746,0.0141226,0.0516288,1e-06,2.42536e-05,0.9740134102812157,
+376,21035,21072,377.836,0.00930223,0.0365469,1e-06,2.04124e-05,0.8944187492712511,
+380,21073,21278,381.771,0.00576333,0.0328045,9.88729e-07,1.20386e-05,0.6034432962094154,
+374,21283,21307,375.815,0.0072921,0.00398851,1e-06,2.58199e-05,0.9837358986781094,
+372,21308,21337,373.844,0.0104016,0.018367,1e-06,2.58199e-05,1.0,
+370,21339,21376,371.899,0.0105289,0.0350283,1e-06,1.88982e-05,1.0,
+367.7,21380,21541,369.561,0.00483392,0.0269605,1e-06,1.27e-05,0.6825055565116406,
+364,21542,21588,366.354,0.0191455,0.0231224,1e-06,3.77964e-05,0.27528792269110297,
+360,21589,21719,361.643,1.27789,1.80686,1.03439e-06,7.07107e-05,0.018034208876767623,
+350,21720,21792,352.035,0.0128735,0.0338521,1.52313e-06,1.82574e-05,0.9344527132604147,
+340,21795,21850,342.115,0.0138103,0.0404069,1.12358e-06,1.82574e-05,0.9661089074302041,
+330,21851,22320,332.192,0.00382648,0.0257952,1.01911e-06,7.85674e-06,0.819861081761468,
+320,22321,22371,322.255,0.0140518,0.0577192,1.03165e-06,1.69031e-05,0.9914298091955319,
+310,22372,22403,312.324,0.010036,6.39343e-05,1e-06,2.5e-05,0.6696321442158569,
+300,22404,22437,302.373,0.017766,7.60264e-05,1e-06,3.77964e-05,0.28734717499818946,
+290,22438,22459,292.413,0.0403517,0.155936,1e-06,2.29416e-05,1.0,
+280,22461,22499,282.545,0.0182056,0.000334206,1.11415e-06,1.96116e-05,0.92274879294989,
+270,22500,22554,272.492,0.0345099,0.0381422,1.48652e-06,2.88675e-05,0.4602347536207519,
+250,22582,22875,252.789,0.0276912,0.0616194,1.0958e-06,2.7735e-05,0.15549319597139996,
+240,22876,23001,239.919,0.166507,0.081,1e-06,0,0,indirect measurement #1
+440,24402,24595,439.897,0.00589575,0.0296192,1e-06,1.54303e-05,0.7737468260964605,
+492,24604,24763,492.278,0.00597297,0.0280052,1e-06,1.47442e-05,0.8420397721205133,
+502,24764,24834,502.031,0.00979369,0.0299418,1e-06,2.08514e-05,1.0,
+505,24835,25112,505.237,0.00707497,0.0279263,9.7704e-07,1.31306e-05,0.7349890178393147,
+506.5,25115,25248,506.475,0.00701228,0.0316718,1e-06,1.42857e-05,0.9951198121481313,
+508,25249,25311,508.072,0.0295442,4.93915e-05,5.13953e-07,4.08248e-05,0.2888701297157192,
+508.5,25316,25492,508.572,0.00853854,0.0363692,7.95292e-07,1.38675e-05,0.9237240498851954,
+509,25494,25671,509.022,0.0078851,0.0261911,7.18102e-07,1.58114e-05,0.5286106797276325,
+509.5,25672,25844,509.548,0.0103123,0.0391775,7.78182e-07,1.54303e-05,0.7061205710807689,
+510,25845,26009,509.945,0.00775354,0.000122838,9.11372e-07,1.3484e-05,0.9935532434105891,
+510.5,26011,26290,510.562,0.0161081,0.0506388,9.44867e-07,2.23607e-05,0.46855864342911013,
+511,26291,26341,511.038,0.0105762,0.0204533,1e-06,2.35702e-05,0.9844999884068724,
+511.5,26342,26386,511.419,0.0183653,0.0653089,1e-06,2.42536e-05,0.9665322869206369,
+514,26387,26434,513.976,0.011411,0.016887,9.86212e-07,2.42536e-05,0.9831867128160753,
+517,26435,26504,516.976,0.0105736,7.66959e-05,8.32629e-07,2.5e-05,0.9732205874368859,
+520,26505,26553,520.047,0.0253303,0.0788964,3.67753e-07,2.58199e-05,0.851434816242833,
+525,26554,26716,525.201,0.0480406,0.221797,9.22623e-07,2e-05,0.39901427351470137,
+530,26717,26804,529.985,0.0107533,0.0271737,9.22469e-07,2.08514e-05,0.9760357280972045,
+410,26813,27013,409.575,0.0497657,0.35515,9.39591e-07,1.37361e-05,0.6188357682863683,
+400,27038,27209,400.004,0.0067896,0.0385298,9.69773e-07,1.29099e-05,0.8607913685807782,
+396,27212,27383,396.157,0.0313682,0.0668155,8.15788e-07,3.53553e-05,0.10551800588135674,
+394,27390,27592,394.238,0.00589613,0.0395734,9.18091e-07,1.09764e-05,0.9195095597888598,
+392.5,27593,28463,392.465,0.0055928,0.0815594,9.61551e-07,5.9976e-06,0.7392318677329267,
+391.5,28466,29296,391.448,0.00973297,0.153318,1e-06,6.07457e-06,0.8028625879600133,
+390.5,29298,30174,390.574,0.00744572,0.0853454,1e-06,8.08452e-06,0.4910464416337818,
+389.5,30175,30264,389.594,0.00919086,0.0371255,1e-06,2e-05,0.7067154667702649,
+387.5,30265,30451,387.532,0.00784471,0.0372064,1e-06,1.62221e-05,0.47238675447341916,
+378,30455,30691,377.979,0.0174908,0.145711,1.0332e-06,1.13961e-05,0.7353992180005724,
+370,30694,30835,370.24,0.00683786,0.0374471,1.01159e-06,1.44338e-05,0.8159253500906536,
+479,30838,31975,478.889,0.0448661,0.688647,1.01941e-06,6.48204e-06,0.6513434993629738,