170def get_dfz(basedir, year, run, channel, standardcuts = True):
171 '''
172 Standard retrieval of Z counting Panda dataframe from CSV
173 '''
174 if year=="run3" or len(year.split("_")) > 1:
175 mydir = basedir + "data"+get_year(run)+"_13p6TeV/physics_Main/"
176 elif year=="run2":
177 mydir = basedir + "data"+get_year(run)+"_13TeV/physics_Main/"
178 elif int(year) >= 22:
179 mydir = basedir + "data" + year + "_13p6TeV/physics_Main/"
180 else:
181 mydir = basedir + "data" + year + "_13TeV/physics_Main/"
182
183 try:
184 dfz = pd.read_csv(mydir + "run_" + run + ".csv")
185 except FileNotFoundError:
186 print(
"WARNING: CVS for run", run,
"not found, will skip.")
187 return -1., 0., 0., 0., 0., None
188
189 dfz_small = dfz
190
191 if channel is not None:
192
193 dfz_small['ZLumi'] = dfz_small[channel + 'Lumi']
194 dfz_small['ZLumiErr'] = dfz_small[channel + 'LumiErr']
195 if standardcuts:
196 dfz_small = dfz_small.drop(dfz_small[dfz_small.ZLumi == 0].index)
197 dfz_small = dfz_small.drop(dfz_small[(dfz_small['LBLive']<lblivetimecut) | (dfz_small['PassGRL']==0)].index)
198
199 dfz_small['ZLumi'] *= dfz_small['LBLive']
200 dfz_small['ZLumiErr'] *= dfz_small['LBLive']
201 zlumi = dfz_small['ZLumi'].sum()
202
203 dfz_small['ZLumiErr'] *= dfz_small['ZLumiErr']
204 zerr = math.sqrt(dfz_small['ZLumiErr'].sum())
205 else:
206
207 if standardcuts:
208 dfz_small = dfz_small.drop(dfz_small[(dfz_small.ZeeLumi == 0) | (dfz_small.ZmumuLumi == 0)].index)
209 dfz_small = dfz_small.drop(dfz_small[(dfz_small['LBLive']<lblivetimecut) | (dfz_small['PassGRL']==0)].index)
210 dfz_small['ZeeLumi'] *= dfz_small['LBLive']
211 dfz_small['ZeeLumiErr'] *= dfz_small['LBLive']
212 dfz_small['ZeeLumiErr'] *= dfz_small['ZeeLumiErr']
213 dfz_small['ZmumuLumi'] *= dfz_small['LBLive']
214 dfz_small['ZmumuLumiErr'] *= dfz_small['LBLive']
215 dfz_small['ZmumuLumiErr'] *= dfz_small['ZmumuLumiErr']
216 zlumi, zerr = 0., 0.
217
218 livetime = dfz_small['LBLive'].sum()
219
220
221 dfz_small['OffLumi'] *= dfz_small['LBLive']
222 olumi = dfz_small['OffLumi'].sum()
223
224
225 try:
226 run_start = dfz_small['LBStart'].iloc[0]
227 timestamp = time.gmtime(run_start)
228 timestamp = R.TDatime(timestamp[0], timestamp[1], timestamp[2], timestamp[3], timestamp[4], timestamp[5])
229 timestamp = timestamp.Convert()
230 except IndexError:
231 timestamp = 0
232
233 return livetime, zlumi, zerr, olumi, timestamp, dfz_small
234
235
void print(char *figname, TCanvas *c1)