コード例 #1
0
 mcsTop      = my_QRA.getTopMuCS()
 mcsBot      = my_QRA.getBottomMuCS()
 mcsTrj      = my_QRA.getTrj()
 mcsTrjCon   = my_QRA.getTrj_con()
 mcsTrjMuCS  = my_QRA.getTrj_mucs()
 mcsHalfLine = my_QRA.getHalfLine()
 mcsLineSeg  = my_QRA.getLineseg()
 run         = my_QRA.getRun()
 subrun      = my_QRA.getSubrun()
 event       = my_QRA.getEvent()
 print "run:   ", run
 print "subrun:", subrun
 print "event: ", event
 # add objects to viewer
 viewer.clear()
 viewer.add(fidVol,'FV.','k')
 viewer.add(mcsTop,'Top','r')
 viewer.add(mcsBot,'Bot','m')
 
 #for x in range(0,len(mcsTrj)):
 for i in xrange(len(mcsTrj)):
     viewer.add(mcsTrj[i],"Out","b")
     viewer.add(mcsLineSeg[i],'Prj ','y')
     #viewer.add(mcsHalfLine[i],"halfline","y")
 for j in xrange(len(mcsTrjCon)):
     viewer.add(mcsTrjCon[j],"In","g")
 for k in xrange(len(mcsTrjMuCS)):
     viewer.add(mcsTrjMuCS[k],"Tr_mucs","r")        
     print "STOP!!!!!!!!!I am a MuCS through-going MuON !!!!!!!!"
     #for h in xrange(len(mcsHalfLine)): 
     #print h
コード例 #2
0
ファイル: lineDistanceTest.py プロジェクト: larlight/larlite
from ROOT import geoalgo
from basictool.geoviewer import GeoViewer
import matplotlib.pyplot as plt
import random as rnd
import time
import datetime

plt.ion()

tottime = 0

# track:
viewer = GeoViewer()
viewer._use_box = False
geoAlgo = geoalgo.GeoAlgo()
line1 = geoalgo.LineSegment(105.727, -66.7871, 814.841, 105.438, -67.4666, 815.464)
line2 = geoalgo.LineSegment(105.229, -67.5519, 815.806, 108.149, -62.1392, 810.246)
pt1 = geoalgo.Vector()
pt2 = geoalgo.Vector()
d = geoAlgo.SqDist(line1,line2,pt1,pt2)
line3 = geoalgo.LineSegment(pt1,pt2)
viewer.add(line1,'ln1','b')
viewer.add(line2,'ln2','r')
viewer.add(line3,'ln3','k')
print 'distance is %.02f'%d
viewer.show()
try:
    counter = input('Hit ENTER when you are ready to close the viewer')
except:
    print "done with this example..."
コード例 #3
0
ファイル: GeoAlgoSphere.py プロジェクト: larlight/larlite
tottime = 0

# track:
viewer2 = GeoViewer()
viewer2._use_box = False
geoAlgo = geoalgo.GeoAlgo()
ntries = 1000
npoints = 800
#for x in xrange(ntries):
track = ertool.Track()
#viewer2._fig.clear()
#for n in xrange(npoints):
#time.sleep(0.01)
point = geoalgo.Vector(rnd.random(),rnd.random(),rnd.random())
n = 0
viewer2.add(point,'pt %i'%n,'k')
track.push_back(point)
viewer2.add(point,'pt %i'%n,'k')
track.push_back(point)
viewer2.add(point,'pt %i'%n,'k')
track.push_back(point)
viewer2.add(point,'pt %i'%n,'k')
track.push_back(point)
t = time.time()
sphere = geoAlgo.boundingSphere(track)
tdelta = time.time()-t
tottime += tdelta
#print "sphere center is: [%.02f,%.02f,%.02f]"%(sphere.Center()[0],sphere.Center()[1],sphere.Center()[2])
#print "sphere radius is: %f"%sphere.Radius()
print "Time per sphere with %i points is: %.02f [us]"%(npoints,1000000*(tottime/float(ntries)))
viewer2.add(sphere,'','r')
コード例 #4
0
ファイル: MichelESimpleToy.py プロジェクト: uboone/larlite
# Make a fake track and shower
# shower:
shrDir = geoalgo.Vector(0.3, 1.0, 0.5)  # direction
shrStart = geoalgo.Vector(10, -10, 30)  # start point
shower = ertool.Shower(shrStart, shrDir, 20, 5)
shower._energy = 100
shower._dedx = 2.2

# track:
track = ertool.Track()
for n in xrange(11):
    track.push_back(
        geoalgo.Vector(-45.1 + (10 + 45) * (n / 10.),
                       15.1 - (10 + 15) * (n / 10.),
                       4.1 + (30 - 4) * (n / 10.)))
track._energy = 435

plt.ion()
viewer = GeoViewer()
viewer.add(shower, 'shower', 'b')
viewer.add(track, 'track', 'r')
viewer.show()
try:
    counter = input('Hit ENTER when you are ready to close the viewer')
except:
    print "Continuing to analys..."

# are these shower and track correlated? is the shower a michel?
dist = shower.Start().Dist(track.back())
print "distance between shower start and track end is: %f" % dist
コード例 #5
0
    mcsTop = my_QRA.getTopMuCS()
    mcsBot = my_QRA.getBottomMuCS()
    mcsTrj = my_QRA.getTrj()
    mcsTrjCon = my_QRA.getTrj_con()
    mcsTrjMuCS = my_QRA.getTrj_mucs()
    mcsHalfLine = my_QRA.getHalfLine()
    mcsLineSeg = my_QRA.getLineseg()
    run = my_QRA.getRun()
    subrun = my_QRA.getSubrun()
    event = my_QRA.getEvent()
    print "run:   ", run
    print "subrun:", subrun
    print "event: ", event
    # add objects to viewer
    viewer.clear()
    viewer.add(fidVol, 'FV.', 'k')
    viewer.add(mcsTop, 'Top', 'r')
    viewer.add(mcsBot, 'Bot', 'm')

    #for x in range(0,len(mcsTrj)):
    for i in xrange(len(mcsTrj)):
        viewer.add(mcsTrj[i], "Out", "b")
        viewer.add(mcsLineSeg[i], 'Prj ', 'y')
        #viewer.add(mcsHalfLine[i],"halfline","y")
    for j in xrange(len(mcsTrjCon)):
        viewer.add(mcsTrjCon[j], "In", "g")
    for k in xrange(len(mcsTrjMuCS)):
        viewer.add(mcsTrjMuCS[k], "Tr_mucs", "r")
        print "STOP!!!!!!!!!I am a MuCS through-going MuON !!!!!!!!"
        #for h in xrange(len(mcsHalfLine)):
        #print h
コード例 #6
0
from ROOT import geoalgo
from basictool.geoviewer import GeoViewer
import matplotlib.pyplot as plt
import random as rnd
import time
import datetime

plt.ion()

tottime = 0

# track:
viewer = GeoViewer()
viewer._use_box = False
geoAlgo = geoalgo.GeoAlgo()
line1 = geoalgo.LineSegment(0, 0, 0, 0, 0, 1)
line2 = geoalgo.LineSegment(1, 0, 0, 1, 0, 1)
pt1 = geoalgo.Vector()
pt2 = geoalgo.Vector()
d = geoAlgo.SqDist(line1, line2, pt1, pt2)
line3 = geoalgo.LineSegment(pt1, pt2)
viewer.add(line1, 'ln1', 'b')
viewer.add(line2, 'ln2', 'r')
viewer.add(line3, 'ln3', 'k')
print 'distance is %.04f' % d
viewer.show()
try:
    counter = input('Hit ENTER when you are ready to close the viewer')
except:
    print "done with this example..."
コード例 #7
0
ファイル: view_simch.py プロジェクト: rmurrells/mcshowermyth
    # shower start point
    shr_x  = simch._shr_x
    shr_y  = simch._shr_y
    shr_z  = simch._shr_z
    shr_px = simch._shr_px
    shr_py = simch._shr_py
    shr_pz = simch._shr_pz
    shr_E  = simch._shr_E
    shr_start = geoalgo.Vector_t(shr_x,shr_y,shr_z)
    shr_dir   = geoalgo.Vector_t(shr_px,shr_py,shr_pz)
    shr_dir.Normalize()
    shr_axis  = geoalgo.Trajectory()
    shr_axis.push_back(shr_start)
    shr_axis.push_back(shr_start+shr_dir)
    viewer.add(shr_start,'Start','r')
    viewer.add(shr_axis,'Dir','r')

    x_v_all = np.array(simch._x_v)

    print 'x position vector : '
    print x_v_all
    # if no entries -> continue
    if (len(x_v_all) == 0):
        continue

    x_v = []
    xmin = min(x_v_all)
    xmax = max(x_v_all)
    dx = xmax-xmin
    y_v_all = np.array(simch._y_v)
コード例 #8
0
shower1._energy = 100
shower1._dedx   = 2.2
# shower2:
shrDir   = geoalgo.Vector(-0.33,1.0,0.5)# direction
shrStart = geoalgo.Vector(10,-11,30) # start point
shower2   = ertool.Shower(shrStart,shrDir,20,5)
shower2._energy = 100
shower2._dedx   = 2.2



# load viewer
plt.ion()
viewer = GeoViewer()
viewer._use_box = False;
viewer.add(shower1,'shower1','b')
viewer.add(shower2,'shower2','b')
#viewer.add(track,'track','r')
viewer.show()
try:
    counter = input('Hit ENTER when you are ready to close the viewer')
except:
    print "Continuing to analys..."

# figure out the impact parameter between the two:
# use AlgoFindRelationship
algo = ertool.AlgoFindRelationship()
vertex = geoalgo.Vector(3)
IP = algo.FindClosestApproach(shower1,shower2,vertex)

# segments connecting vertex to start points
コード例 #9
0
ファイル: MichelESimpleToy.py プロジェクト: larlight/larlite
# Make a fake track and shower
# shower:
shrDir   = geoalgo.Vector(0.3,1.0,0.5)# direction
shrStart = geoalgo.Vector(10,-10,30) # start point
shower   = ertool.Shower(shrStart,shrDir,20,5)
shower._energy = 100
shower._dedx   = 2.2

# track:
track = ertool.Track()
for n in xrange(11):
    track.push_back(geoalgo.Vector(-45.1+(10+45)*(n/10.),15.1-(10+15)*(n/10.),4.1+(30-4)*(n/10.)))
track._energy = 435;

plt.ion()
viewer = GeoViewer()
viewer.add(shower,'shower','b')
viewer.add(track,'track','r')
viewer.show()
try:
    counter = input('Hit ENTER when you are ready to close the viewer')
except:
    print "Continuing to analys..."


# are these shower and track correlated? is the shower a michel?
dist = shower.Start().Dist(track.back())
print "distance between shower start and track end is: %f"%dist


コード例 #10
0
ファイル: GeoAlgoSphere.py プロジェクト: uboone/larlite
tottime = 0

# track:
viewer2 = GeoViewer()
viewer2._use_box = False
geoAlgo = geoalgo.GeoAlgo()
ntries = 1000
npoints = 800
#for x in xrange(ntries):
track = ertool.Track()
#viewer2._fig.clear()
#for n in xrange(npoints):
#time.sleep(0.01)
point = geoalgo.Vector(rnd.random(), rnd.random(), rnd.random())
n = 0
viewer2.add(point, 'pt %i' % n, 'k')
track.push_back(point)
viewer2.add(point, 'pt %i' % n, 'k')
track.push_back(point)
viewer2.add(point, 'pt %i' % n, 'k')
track.push_back(point)
viewer2.add(point, 'pt %i' % n, 'k')
track.push_back(point)
t = time.time()
sphere = geoAlgo.boundingSphere(track)
tdelta = time.time() - t
tottime += tdelta
#print "sphere center is: [%.02f,%.02f,%.02f]"%(sphere.Center()[0],sphere.Center()[1],sphere.Center()[2])
#print "sphere radius is: %f"%sphere.Radius()
print "Time per sphere with %i points is: %.02f [us]" % (
    npoints, 1000000 * (tottime / float(ntries)))
コード例 #11
0
    print 'new event...'

    retrj = my_QRA2.Getretrj()
    mctrj = my_QRA2.Getmctrj()
    w8devi = my_QRA2.Getw8devi()
    devi = my_QRA2.Getdevi()
    g4sum = my_QRA2.GetSum_g4()
    plsum = my_QRA2.GetSum_PL()
    trkid = 0
    viewer.clear()

    if len(retrj) > 0 and len(mctrj) > 0:
        pt_mc_s = mctrj[0][0]
        pt_re_s = retrj[0][0]
        line_ss = geoalgo.LineSegment(pt_mc_s, pt_re_s)
        viewer.add(line_ss, " ", "g")
        dist_ss = retrj[0][0].Dist(mctrj[0][0])
        print 'distance between mc and re trk start point is', dist_ss, 'cm !??!'
        print 'weighted deviation for this mc/reco track is ', w8devi, 'cm !??!'
        print 'standard deviation for this mc/reco track is ', devi, 'cm !??!'

    for a in range(0, len(mctrj)):
        pt0 = mctrj[a][0]
        if len(mctrj[a]) < 5:
            break
        for aa in range(1, 5):
            pt1 = mctrj[a][aa]
            pt2 = mctrj[a][aa - 1]
            dist = pt0.Dist(pt1)
            if dist > 10:
                break