Esempio n. 1
0
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
Esempio n. 2
0
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()
Esempio n. 3
0
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()
Esempio n. 4
0
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()
Esempio n. 5
0
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
Esempio n. 6
0
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()
Esempio n. 7
0
def test_load():
    w = wcsim.Events(common.filepath())
    assert w
    assert w.nentries == 1
    e = w(0)
    assert e
Esempio n. 8
0
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))