예제 #1
0
#===================================================================
from org.jlab.geom.visualizer import CLASVisualizer
from org.jlab.geom.detector.bst import BSTFactory
from org.jlab.clas12.dbdata import DataBaseLoader
from org.jlab.geom.prim import Path3D, Face3D, Line3D, Point3D, Transformation3D
from java.lang import Math
from java.awt import Color
import random
import math
import sys

#===================================================================
#
#===================================================================

data = DataBaseLoader.getConstantsBST()
print data.toString()

factory = BSTFactory()

viewer = CLASVisualizer(100, 100, 1400, 1200)
viewer.setBackgroundColor(Color(150, 150, 255))
viewer.getDisplay().setBackgroundColor(Color(150, 150, 255))
viewer.setVisible(True)
viewer.setTransparancy(0.5)

path = Path3D()
path.addPoint(0.0, 0.0, 0.0)
path.addPoint(300.0, 400.0, 200.0)

#viewer.add(path,Color.WHITE)
예제 #2
0
from org.jlab.geom.prim import Path3D, Face3D, Line3D, Point3D, Transformation3D
from org.jlab.geom.detector.ec import ECFactory
from org.jlab.clas12.dbdata import DataBaseLoader
from org.jlab.geom.detector.dc import DCFactory
import random
import math

rootVolume = Point3D(2170.0799, 0.0, 6789.8397)
layerVolume = Point3D(0.0, 0.0, -9.03)
paddle = Point3D(-0.668675418863381, 0, 0)

dataDC = DataBaseLoader.getConstantsDC()
factory = DCFactory()
#dcDET   = factory.createDetectorCLAS(dataDC)
dcDET = factory.createDetectorTilted(dataDC)

for sl in range(0, 6):
    for l in range(0, 6):
        layer = dcDET.getSector(0).getSuperlayer(sl).getLayer(l)
        ncomp = layer.getNumComponents()
        print '**************** SUPERLAYER ', sl, ' ********** LAYER ', l, ' **********'
        for comp in range(0, ncomp):
            point = layer.getComponent(comp).getMidpoint()
            print '%3d %3d %5d %12.5f %12.5f %12.5f' % (sl, l, comp, point.x(),
                                                        point.y(), point.z())
예제 #3
0
from org.jlab.geom.prim import Path3D
from org.jlab.geom.prim import Face3D
from org.jlab.geom.prim import Line3D
from org.jlab.geom.prim import Point3D
from org.jlab.geom.prim import Transformation3D
#===================================================================
from java.lang import Math
import random
import math
import sys

#===================================================================
# Geometry Package Tests for BST detector
#===================================================================

data = DataBaseLoader.getConstantsBST()
print data.toString()

factory   = BSTFactory()

bstLayer0 = factory.createRingLayer(data,0,0,0)
bstLayer1 = factory.createRingLayer(data,0,0,1)

frame = GeometryFrame(800,800,10,40);
frame.setVisible(True)

for i in range(0,256):
    line = bstLayer1.getComponent(i).getLine()
    line.show()
    if i%4==0:
        frame.addLineXZ(line)
예제 #4
0
# This module is for producing FTOF geometry.
#
# Author: G. Gavalian (8/5/2014)
#===========================================================
from org.jlab.geom.detector.ftof import FTOFFactory
from org.jlab.clas12.dbdata import DataBaseLoader
from org.jlab.geom.prim import Transformation3D
#-----------------------------------------------------------
# Create a data provider which loads the data from the
# database. The database is a CCDB implementation located
# on the host clasdb.jlab.org
#
# The data provider is passed to the factory to create a
# detector (FTOF detector in this case) in local coordinates
#-----------------------------------------------------------
data = DataBaseLoader.getConstantsFTOF()
factory = FTOFFactory()
detector = factory.createDetectorCLAS(data)

for i in range(0, 6):

    layerA = detector.getSector(i).getSuperlayer(0).getLayer(0)
    layerAL = factory.createLayer(data, 0, 0, 0)

    numComponents = layerAL.getNumComponents()

    midpFirst = layerAL.getComponent(0).getMidpoint()
    midpLast = layerAL.getComponent(numComponents - 1).getMidpoint()
    transform = layerAL.getTransformation()
    transinv = transform.inverse()
    transform.show()
예제 #5
0
    return particle

def getParticleDeg(pid, mom, theta,phi):
    theta_rad = Math.toRadians(theta)
    phi_rad   = Math.toRadians(phi)
    return getParticle(pid,mom,theta_rad,phi_rad)
#===================================================================
# MAIN program
#===================================================================

particleID  = sys.argv[1]
particleP   = sys.argv[2]
particleTh  = sys.argv[3]
particlePhi = sys.argv[4]

dataDC      = DataBaseLoader.getConstantsDC()
factory     = DCFactory()
dcDetector  = factory.createDetectorCLAS(dataDC)

dataEC      = DataBaseLoader.getConstantsEC()
factory     = ECFactory()
ecDetector  = factory.createDetectorCLAS(dataEC)

dataSC      = DataBaseLoader.getConstantsFTOF()
factory     = FTOFFactory()
scDetector  = factory.createDetectorCLAS(dataSC)

particle = getParticleDeg(int(particleID),float(particleP),float(particleTh),float(particlePhi))

print particle.toString()
예제 #6
0
from org.jlab.clas12.dbdata import DataBaseLoader

provider = DataBaseLoader.getCalorimeterConstants()
print provider.toString()

provider = DataBaseLoader.getTimeOfFlightConstants()
print provider.toString()
예제 #7
0
from org.jlab.geom.detector.ec   import ECFactory
from org.jlab.clas12.dbdata import DataBaseLoader
from org.jlab.geom.prim  import Path3D,Face3D,Line3D,Point3D,Transformation3D
from java.lang import Math
import random
import math
import sys

#===================================================================
# 
#===================================================================

thetaAngle = sys.argv[1]
phiAngle   = sys.argv[2]

data = DataBaseLoader.getCalorimeterConstants()
print data.toString()

factory = ECFactory()
ecDetector   = factory.createDetectorCLAS(data)
ecDetector.show()

pathMag   = 15000.0
pathPhi   = float(phiAngle)/57.29
pathTheta = float(thetaAngle)/57.29 

path = Path3D()
path.addPoint(0.0,0.0,0.0)
path.addPoint(pathMag*Math.sin(pathTheta)*Math.cos(pathPhi),pathMag*Math.sin(pathTheta)*Math.sin(pathPhi),pathMag*Math.cos(pathTheta))

hits = ecDetector.getHits(path)
예제 #8
0
from  org.jlab.evio.clas12  import EvioDataSync
from  org.jlab.clas12.seb   import SEBReconstruction
from  org.jlab.rec.sc       import SCReconstruction
from  org.jlab.rec.ec       import ECReconstruction
from  org.jlab.clas12.utils import Benchmark
#-----------------------------------------------------------
# Initilizing EvioSource object. It in turn initializes 
# EvioFactory which loads the dictionary from directory
# CLAS12DIR/lib/bankdefs/clas12
#-----------------------------------------------------------


inputFile = sys.argv[1]


dataProvider = DataBaseLoader.getConstantsDC()
factory      = DCFactory()
dcDetector   = factory.createDetectorTilted(dataProvider)

writer = EvioDataSync()
writer.open('sebrec_output.evio')

reader = EvioSource()
reader.open(inputFile)

swimmer = CLASRotatedSwimmer()

icounter = 0
while(reader.hasEvent()):

    icounter = icounter + 1
예제 #9
0
from org.jlab.geom.detector.ec import ECFactory
from org.jlab.clas12.dbdata import DataBaseLoader
from org.jlab.geom.prim import Path3D, Face3D, Line3D, Point3D, Transformation3D
from java.lang import Math
import random
import math
import sys

#===================================================================
#
#===================================================================

thetaAngle = sys.argv[1]
phiAngle = sys.argv[2]

data = DataBaseLoader.getCalorimeterConstants()
print data.toString()

factory = ECFactory()
ecDetector = factory.createDetectorCLAS(data)
ecDetector.show()

pathMag = 15000.0
pathPhi = float(phiAngle) / 57.29
pathTheta = float(thetaAngle) / 57.29

path = Path3D()
path.addPoint(0.0, 0.0, 0.0)
path.addPoint(pathMag * Math.sin(pathTheta) * Math.cos(pathPhi),
              pathMag * Math.sin(pathTheta) * Math.sin(pathPhi),
              pathMag * Math.cos(pathTheta))
예제 #10
0
from org.jlab.geom.prim  import Path3D,Face3D,Line3D,Point3D,Transformation3D
from org.jlab.geom.detector.ec   import ECFactory
from org.jlab.clas12.dbdata import DataBaseLoader
from org.jlab.geom.detector.dc       import DCFactory
import random
import math


rootVolume  = Point3D(2170.0799,0.0,6789.8397)
layerVolume = Point3D(0.0,0.0,-9.03)
paddle      = Point3D(-0.668675418863381,0,0)

dataDC  = DataBaseLoader.getConstantsDC()
factory = DCFactory()
#dcDET   = factory.createDetectorCLAS(dataDC)
dcDET   = factory.createDetectorTilted(dataDC)

for sl in range(0,6):
	for l in range(0,6):
		layer = dcDET.getSector(0).getSuperlayer(sl).getLayer(l)
		ncomp = layer.getNumComponents()
		print '**************** SUPERLAYER ',sl,' ********** LAYER ',l,' **********'
		for comp in range(0,ncomp):
			point = layer.getComponent(comp).getMidpoint()
			print '%3d %3d %5d %12.5f %12.5f %12.5f' % (sl,l,comp,point.x(),point.y(), point.z())


예제 #11
0
from org.jlab.geom.detector.ftof   import FTOFFactory
from org.jlab.clas12.dbdata         import DataBaseLoader
from org.jlab.geom.prim  import Path3D,Face3D,Line3D,Point3D,Transformation3D
from java.lang import Math
import random
import math
import sys

#===================================================================
# 
#===================================================================

thetaAngle = sys.argv[1]
phiAngle   = sys.argv[2]

data = DataBaseLoader.getConstantsFTOF()
print data.toString()

factory = FTOFFactory()
ecDetector   = factory.createDetectorCLAS(data)
ecDetector.show()

pathMag   = 15000.0
pathPhi   = float(phiAngle)/57.29
pathTheta = float(thetaAngle)/57.29 

path = Path3D()
path.addPoint(0.0,0.0,0.0)
path.addPoint(pathMag*Math.sin(pathTheta)*Math.cos(pathPhi),pathMag*Math.sin(pathTheta)*Math.sin(pathPhi),pathMag*Math.cos(pathTheta))

hits = ecDetector.getHits(path)
예제 #12
0
from org.jlab.geom.detector.ec import ECFactory
from org.jlab.geom.detector.ftof import FTOFFactory
from org.jlab.geom.prim import Transformation3D
from org.jlab.clas12.dbdata import DataBaseLoader
from org.jlab.geom.prim import Path3D, Face3D, Line3D, Point3D, Transformation3D
from java.lang import Math
from java.awt import Color
import random
import math
import sys

#===================================================================
#
#===================================================================

data = DataBaseLoader.getConstantsEC()
datasc = DataBaseLoader.getConstantsFTOF()
#print data.toString()

factory = ECFactory()
factorysc = FTOFFactory()

ftofLayers = []
ecLayers = []

for sector in range(0, 6):
    eclayer = factory.createLayer(data, 0, 0, 0)
    trans = Transformation3D()
    trans.translateXYZ(0.0, 0.0, 711.0)
    trans.rotateY(25.0 / 57.29)
    trans.rotateZ(sector * 60.0 / 57.29)