def test_data(): d = wcsim.Data(common.filepath()) hits = d.hits(0) assert len(hits) for t, q, (ploc, pdir) in hits: prad = math.sqrt(sum([ploc[i] * ploc[i] for i in range(3)])) assert prad > 1000
def test_timing(): d = wcsim.Data(common.filepath()) tim = ROOT.TH1F("tim","Times",300,900,1200) ROOT.gStyle.SetOptStat(111111) hits = d.hits(0) for t,q,pmt in hits: tim.Fill(t,q) tim.Draw() canvas_print()
def test_iter(): w = wcsim.Events(common.filepath()) assert w for e in w: assert e.GetNumberOfEvents() == 1 t = e.GetTrigger(0) assert t assert t.GetNumTubesHit() assert t.GetNumDigiTubesHit() assert t.GetNtrack() assert t.GetNcherenkovhittimes() assert t.GetNcherenkovhits() assert t.GetNcherenkovdigihits()
def test_track_residuals(): d = wcsim.Data(common.filepath()) res = ROOT.TH1F("trackres","Track Residuals",400,800,1200) ROOT.gStyle.SetOptStat(111111) hits = d.hits(0) track = d.tracks(0)[0] tvtx = [track.GetStart(i) for i in range(3)] tdir = [track.GetDir(i) for i in range(3)] T0 = track.GetTime() resids = track_residuals(hits, tvtx, tdir, T0) for r,dat in zip(resids,hits): q = dat[1] res.Fill(r, q) res.Draw() canvas_print()
def test_geom(): g = wcsim.Geom(common.filepath()) assert g assert g.nentries geo = g(0) npmts = geo.GetWCNumPMT() assert npmts # print npmts for ipmt in range(npmts): pmt = geo.GetPMT(ipmt) assert pmt assert pmt.GetTubeNo() - ipmt == 1 # print ipmt, pmt.GetTubeNo(), pmt.GetCylLoc() # test the above type of PMT access which is internal to the Geom class for ipmt in range(npmts): p = g.pmt(ipmt + 1) assert p.GetTubeNo() == ipmt + 1
def test_charge_track_distr(): d = wcsim.Data(common.filepath()) ctd = ROOT.TH1F("ctd","Charge-Track Distr",1000,-10000,10000) ROOT.gStyle.SetOptStat(111111) hits = d.hits(0) track = d.tracks(0)[0] tvtx = [track.GetStart(i) for i in range(3)] tdir = [track.GetDir(i) for i in range(3)] print 'vertex:', tvtx print 'track: ', tdir charge_track_distr(lambda x,q: ctd.Fill(x,q), hits, tvtx, tdir) assert ctd.GetEntries() <= len(hits), '%d > %d' % (ctd.GetEntries(), len(hits)) ctd.Draw() canvas_print()
def test_load(): w = wcsim.Events(common.filepath()) assert w assert w.nentries == 1 e = w(0) assert e
def test_timecut_charge_track(): for fn in ["wcsim-100MeVelectron90.root", "wcsim-100MeVelectron.root", "wcsim-100MeVmuon90.root", "wcsim-100MeVmuon.root"]: timecut_charge_track(common.filepath(fn))