203def mergeHistosMakePlots(p: list[str]) -> None:
204 if not isinstance(p, list):
205 pl = [p]
206 else:
207 pl = p
208 hlist = ""
209 for p in pl:
210 prefix = str(p)
211 for x in os.listdir("."):
212 if not x.find(prefix) < 0:
213 if os.path.isdir(x):
214 hlist += x + "/ShipAna.root "
215 print("-->", hlist)
216 os.system("hadd -f ShipAna.root " + hlist)
217 ut.readHists(h, "ShipAna.root")
218 print(h["meanhits"].GetEntries())
219 if 1 > 0:
220 ut.bookCanvas(h, key="strawanalysis", title="Distance to wire and mean nr of hits", nx=1200, ny=600, cx=2, cy=1)
221
222 cv = h["strawanalysis"].cd(1)
223 h["disty"].DrawCopy()
224 h["distu"].DrawCopy("same")
225 h["distv"].DrawCopy("same")
226 cv = h["strawanalysis"].cd(2)
227 h["meanhits"].DrawCopy()
228 print(h["meanhits"].GetEntries())
229
230 ut.bookCanvas(h, key="fitresults", title="Fit Results", nx=1600, ny=1200, cx=2, cy=2)
231 cv = h["fitresults"].cd(1)
232 h["delPOverP"].Draw("box")
233 cv = h["fitresults"].cd(2)
234 cv.SetLogy(1)
235 h["chi2"].Draw()
236 cv = h["fitresults"].cd(3)
237 h["delPOverP_proj"] = h["delPOverP"].ProjectionY()
238 ROOT.gStyle.SetOptFit(11111)
239 h["delPOverP_proj"].Draw()
240 h["delPOverP_proj"].Fit("gaus")
241 cv = h["fitresults"].cd(4)
242 h["delPOverP2_proj"] = h["delPOverP2"].ProjectionY()
243 h["delPOverP2_proj"].Draw()
244 fitSingleGauss("delPOverP2_proj")
245 h["fitresults"].Print("fitresults.gif")
246 ut.bookCanvas(h, key="fitresults2", title="Fit Results", nx=1600, ny=1200, cx=2, cy=2)
247 print("finished with first canvas")
248 cv = h["fitresults2"].cd(1)
249 h["Doca"].Draw()
250 cv = h["fitresults2"].cd(2)
251 h["IP0"].Draw()
252 cv = h["fitresults2"].cd(3)
253 h["HNL"].Draw()
254 fitSingleGauss("HNL", 0.0, 2.0)
255 cv = h["fitresults2"].cd(4)
256 h["IP0/mass"].Draw("box")
257 h["fitresults2"].Print("fitresults2.gif")
258 h["strawanalysis"].Print("strawanalysis.gif")
259 print("finished making plots")
260
261