def main():
	args = parse_args()
	if not args:
		print 'Invalid Arguments'
		sys.exit(1)

	bins = 50
	maxMom = 50

	stripsFileList = commonFunctions.input_files(args.strips, ".slcio")
	pixelsFileList = commonFunctions.input_files(args.pixels, ".slcio")

	fileCount, pionCount = 0, 0
	pionTrackDataStrips = []
	print "\n[LOADING STRIP FILES]"
	for fileName in stripsFileList:
		fileCount += 1
		print "\nFile -> " + str(fileCount)
		outputName, eventCount, detector, energy = commonFunctions.get_fileData(fileName)
		filePionTrackData, FilePionCount = track_validation(fileName, eventCount)
		pionTrackDataStrips.extend(filePionTrackData)
		pionCount += FilePionCount
	fileCount, pionCount = 0, 0
	pionTrackDataPixels = []
	print "\n[LOADING PIXEL FILES]"
	for fileName in pixelsFileList:
		fileCount += 1
		print "\nFile -> " + str(fileCount)
		outputName, eventCount, detector, energy = commonFunctions.get_fileData(fileName)
		filePionTrackData, FilePionCount = track_validation(fileName, eventCount)
		pionTrackDataPixels.extend(filePionTrackData)
		pionCount += FilePionCount
	print "\n[LOADING FILES DONW] Total Pions used = " + str(pionCount)

	print "\n[CREATING ARRAYS]"
	efficiencyArrayStrips, momSigmaArrayStrips = analysis_arrays(pionTrackDataStrips, bins, maxMom)
	efficiencyArrayPixels, momSigmaArrayPixels = analysis_arrays(pionTrackDataPixels, bins, maxMom)

	print "\n[CREATING GRAPHS]"
	BCGraphMomStrips, ACGraphMomStrips = graphs_mom("strips", efficiencyArrayStrips, bins, maxMom)
	BCGraphMomPixels, ACGraphMomPixels = graphs_mom("pixels", efficiencyArrayPixels, bins, maxMom)
	BCGraphThetaStrips, ACGraphThetaStrips = graphs_theta("strips", efficiencyArrayStrips, bins, maxMom)
	BCGraphThetaPixels, ACGraphThetaPixels = graphs_theta("pixels", efficiencyArrayPixels, bins, maxMom)

	print "\n[PLOTTING GRAPHS]"
	graphs_2d("strips", efficiencyArrayStrips, bins, maxMom, args.strips)
	graphs_2d("pixels", efficiencyArrayPixels, bins, maxMom, args.pixels)
	plot_1D_graph("mom", [BCGraphMomStrips, ACGraphMomStrips, BCGraphMomPixels, ACGraphMomPixels], args.outputDirectory)
	plot_1D_graph("theta", [BCGraphThetaStrips, ACGraphThetaStrips, BCGraphThetaPixels, ACGraphThetaPixels],
				args.outputDirectory)
	res_graph(args.strips, momSigmaArrayStrips, momSigmaArrayPixels, bins, maxMom)

	print "[DONE]"
def main():
	args = parse_args()
	if not args:
		print 'Invalid Arguments'
		sys.exit(1)

	files = [[] for x in range(5)]
	files[0] = commonFunctions.input_files(args.bunch1, ".slcio")
	files[1] = commonFunctions.input_files(args.bunch5, ".slcio")
	files[2] = commonFunctions.input_files(args.bunch10, ".slcio")
	files[3] = commonFunctions.input_files(args.bunch20, ".slcio")
	files[4] = commonFunctions.input_files(args.bunch50, ".slcio")

	bunchtypes = [1, 5, 10, 20, 50]
	count = 0
	lessData = [[0,0,0,0,0,0] for x in range(5)]
	abvData = [[0,0,0,0,0,0] for x in range(5)]

	for bunchType in files:
		print "Analysing Bunch type -> " + str(bunchtypes[count])
		nums = [0, 0, 0, 0, 0, 0]
		lessValues = [0,0,0,0,0] # totPions, totTracks, true, partrue, fake
		abvValues = [0,0,0,0,0]
		fileCount = 1
		for fileName in bunchType:
			print "Processing File num -> " + str(fileCount)
			fileCount += 1
			lessValuesTemp, abvValuesTemp = track_validation(fileName)
			for counter in range(5):
				lessValues[counter] += lessValuesTemp[counter]
				abvValues[counter] += abvValuesTemp[counter]

		print("lessValues -> " + str(lessValues[0]) + ", " + str(lessValues[1]) + ", " + str(lessValues[2]) + ", " + str(lessValues[3]) + ", " + str(lessValues[4])) 
		print("abvValues -> " + str(abvValues[0]) + ", " + str(abvValues[1]) + ", " + str(abvValues[2]) + ", " + str(abvValues[3]) + ", " + str(abvValues[4])) 
		print("less(E,F) -> " + str(lessValues[2] / lessValues[0]) + ", " + str(lessValues[4] / lessValues[1]) + ", Abv(E,F) -> " + str(abvValues[2] / abvValues[0]) + ", " + str(abvValues[4] / abvValues[1]))
		lessData[count][0] = lessValues[2] / lessValues[0] #Efficiency
		lessData[count][1] = math.sqrt(((lessValues[2] / lessValues[0])*(1-(lessValues[2] / lessValues[0])))/(lessValues[0]))
		lessData[count][2] = lessValues[3] / lessValues[0] #parEfficiency
		lessData[count][3] = math.sqrt(((lessValues[3] / lessValues[0])*(1-(lessValues[3] / lessValues[0])))/(lessValues[0]))
		lessData[count][4] = lessValues[4] / lessValues[1] #Fake Rate
		lessData[count][5] = math.sqrt(((lessValues[4] / lessValues[1])*(1-(lessValues[4] / lessValues[1])))/(lessValues[1]))
		abvData[count][0] = abvValues[2] / abvValues[0]
		abvData[count][1] = math.sqrt(((abvValues[2] / abvValues[0])*(1-(abvValues[2] / abvValues[0])))/(abvValues[0]))
		abvData[count][2] = abvValues[3] / abvValues[0]
		abvData[count][3] = math.sqrt(((abvValues[3] / abvValues[0])*(1-(abvValues[3] / abvValues[0])))/(abvValues[0]))
		abvData[count][4] = abvValues[4] / abvValues[1]
		abvData[count][5] = math.sqrt(((abvValues[4] / abvValues[1])*(1-(abvValues[4] / abvValues[1])))/(abvValues[1]))

		count += 1

	draw_graphs(lessData, abvData, bunchtypes)
Beispiel #3
0
def main():
    # main
    args = commonFunctions.simple_parse_args()

    if not args:
        print 'Invalid Arguments'
        sys.exit(1)

    fileList = commonFunctions.input_files(args.inputDir, ".slcio")

    fileCount = 0
    residuals = []
    resErrors = []
    sizes = []
    for fileName in fileList:
        residualsRZ = []
        residualsXY = []
        fileCount += 1
        print "File -> " + str(fileCount)

        outputName, eventCount, detector, energy = commonFunctions.get_fileData(
            fileName)

        reader = IOIMPL.LCFactory.getInstance().createLCReader()
        reader.open(fileName)

        event_tally = 0

        for event in reader:
            posData = getHitPositions(event)
            #print "Length of posData:", len(posData)

            residualsRZ.extend(parparRes(posData, 3, 3, 2))
            residualsXY.extend(parparRes(posData, 3, 1, 0))
            event_tally += 1

        print event_tally, "events processed."
        print "Length of residualsRZ:", len(residualsRZ)
        print "Length of residualsXY:", len(residualsXY)

        sigma, sigmaError = res_graph(residualsRZ, "res", 50, 0.1)
        size = fileName[73:-21]
        size = "0." + size
        #sigma = 0.05 # Cheat!
        print "Size:", size
        print "Sigma:", sigma
        residuals.append(sigma)
        resErrors.append(sigmaError)
        sizes.append(size)

        #commonFunctions.plot_simple_histogram(fileName + "_RZ", residualsRZ, 50, -0.05, 0.05, True, 0, 0.015)
        #commonFunctions.plot_simple_histogram(fileName + "_XY", residualsXY, 50, -1, 1, False, 10, 10)
    resSizeGraph("Residual vs Pixel Size", residuals, resErrors, sizes)
    print "[DONE]"
def main():
	# main
	args = commonFunctions.simple_parse_args()

	if not args:
		print 'Invalid Arguments'
		sys.exit(1)

	fileList = commonFunctions.input_files(args.inputDir, ".slcio")

	fileCount = 0
	residuals = []
	resErrors = []
	sizes = []
	for fileName in fileList:
		residualsRZ = []
		residualsXY = []
		fileCount += 1
		print "File -> " + str(fileCount)

		outputName, eventCount, detector, energy = commonFunctions.get_fileData(fileName)

		reader = IOIMPL.LCFactory.getInstance().createLCReader()
		reader.open(fileName)
		
		event_tally = 0

		for event in reader:
			posData = getHitPositions(event)
			#print "Length of posData:", len(posData)
			
			residualsRZ.extend(parparRes(posData, 3, 3, 2))
			residualsXY.extend(parparRes(posData, 3, 1, 0))
			event_tally += 1

		print event_tally, "events processed."
		print "Length of residualsRZ:", len(residualsRZ)
		print "Length of residualsXY:", len(residualsXY)
		
		sigma, sigmaError = res_graph(residualsRZ, "res", 50, 0.1)
		size = fileName[73:-21]
		size = "0." + size
		#sigma = 0.05 # Cheat!
		print "Size:", size
		print "Sigma:", sigma
		residuals.append(sigma)
		resErrors.append(sigmaError)
		sizes.append(size)

		#commonFunctions.plot_simple_histogram(fileName + "_RZ", residualsRZ, 50, -0.05, 0.05, True, 0, 0.015)
		#commonFunctions.plot_simple_histogram(fileName + "_XY", residualsXY, 50, -1, 1, False, 10, 10)
	resSizeGraph("Residual vs Pixel Size", residuals, resErrors, sizes)
	print "[DONE]"
Beispiel #5
0
def main():
    # main
    args = commonFunctions.simple_parse_args()

    if not args:
        print 'Invalid Arguments'
        sys.exit(1)

    fileList = commonFunctions.input_files(args.inputDir, ".slcio")

    values = defaultdict(list)
    moms = defaultdict(list)
    fileCount = 0

    for fileName in fileList:
        fileCount += 1
        print "File -> " + str(fileCount)

        outputName, eventCount, detector, energy = commonFunctions.get_fileData(
            fileName)

        name, extension = os.path.splitext(fileName)
        checkname = name[-25:]
        print checkname

        totalMom, transMom, theta, deltaMom = get_data(fileName)

        width = totalMom / 10
        value = mom_graph(deltaMom, outputName, args.numberOfBins,
                          width) / math.pow(transMom, 2)

        #moms[str(theta) + "_" + str(detector)].append(totalMom)
        #values[str(theta) + "_" + str(detector)].append(value)

        moms[str(theta) + "_" + checkname].append(totalMom)
        print str(theta) + "_" + checkname
        values[str(theta) + "_" + checkname].append(value)
        print "Theta (as inputted into checkname):", theta

    comparison_graph(moms, values, args.inputDir)

    print "[DONE]"
def main():
	# main
	args = commonFunctions.simple_parse_args()

	if not args:
		print 'Invalid Arguments'
		sys.exit(1)

	fileList = commonFunctions.input_files(args.inputDir, ".slcio")

	values = defaultdict(list)
	moms = defaultdict(list)
	fileCount = 0

	for fileName in fileList:
		fileCount += 1
		print "File -> " + str(fileCount)

		outputName, eventCount, detector, energy = commonFunctions.get_fileData(fileName)

		name, extension = os.path.splitext(fileName)
		checkname = name[-25:]
		print checkname

		totalMom, transMom, theta, deltaMom = get_data(fileName)

		width = totalMom / 10
		value = mom_graph(deltaMom, outputName, args.numberOfBins, width)/math.pow(transMom,2)

		#moms[str(theta) + "_" + str(detector)].append(totalMom)
		#values[str(theta) + "_" + str(detector)].append(value)

		moms[str(theta) + "_" + checkname].append(totalMom)
		print str(theta) + "_" + checkname
		values[str(theta) + "_" + checkname].append(value)


	comparison_graph(moms, values, args.inputDir)

	print "[DONE]"
Beispiel #7
0
def main():
	# main
	args = commonFunctions.simple_parse_args()

	if not args:
		print 'Invalid Arguments'
		sys.exit(1)

	fileList = commonFunctions.input_files(args.inputDir, ".slcio")
	fileCount = 0
	dataDump = []
	pionCount = 0
	for fileName in fileList:
		fileCount += 1
		print "\nFile -> " + str(fileCount)
		outputName, eventCount, detector, energy = commonFunctions.get_fileData(fileName)
		valData, FilePionCount = track_validation(fileName, eventCount)
		dataDump.extend(valData)
		pionCount += FilePionCount

	print "[Track Validation Done]"
	track_analysis(dataDump, 50)
	print "Total Pions = " + str(pionCount)
	print "[DONE]"
Beispiel #8
0
def main():
    args = parse_args()
    if not args:
        print 'Invalid Arguments'
        sys.exit(1)

    bins = 50
    maxMom = 50

    stripsFileList = commonFunctions.input_files(args.strips, ".slcio")
    pixelsFileList = commonFunctions.input_files(args.pixels, ".slcio")

    fileCount, pionCount = 0, 0
    pionTrackDataStrips = []
    print "\n[LOADING STRIP FILES]"
    for fileName in stripsFileList:
        fileCount += 1
        print "\nFile -> " + str(fileCount)
        outputName, eventCount, detector, energy = commonFunctions.get_fileData(
            fileName)
        filePionTrackData, FilePionCount = track_validation(
            fileName, eventCount)
        pionTrackDataStrips.extend(filePionTrackData)
        pionCount += FilePionCount
    fileCount, pionCount = 0, 0
    pionTrackDataPixels = []
    print "\n[LOADING PIXEL FILES]"
    for fileName in pixelsFileList:
        fileCount += 1
        print "\nFile -> " + str(fileCount)
        outputName, eventCount, detector, energy = commonFunctions.get_fileData(
            fileName)
        filePionTrackData, FilePionCount = track_validation(
            fileName, eventCount)
        pionTrackDataPixels.extend(filePionTrackData)
        pionCount += FilePionCount
    print "\n[LOADING FILES DONW] Total Pions used = " + str(pionCount)

    print "\n[CREATING ARRAYS]"
    efficiencyArrayStrips, momSigmaArrayStrips = analysis_arrays(
        pionTrackDataStrips, bins, maxMom)
    efficiencyArrayPixels, momSigmaArrayPixels = analysis_arrays(
        pionTrackDataPixels, bins, maxMom)

    print "\n[CREATING GRAPHS]"
    BCGraphMomStrips, ACGraphMomStrips = graphs_mom("strips",
                                                    efficiencyArrayStrips,
                                                    bins, maxMom)
    BCGraphMomPixels, ACGraphMomPixels = graphs_mom("pixels",
                                                    efficiencyArrayPixels,
                                                    bins, maxMom)
    BCGraphThetaStrips, ACGraphThetaStrips = graphs_theta(
        "strips", efficiencyArrayStrips, bins, maxMom)
    BCGraphThetaPixels, ACGraphThetaPixels = graphs_theta(
        "pixels", efficiencyArrayPixels, bins, maxMom)

    print "\n[PLOTTING GRAPHS]"
    graphs_2d("strips", efficiencyArrayStrips, bins, maxMom, args.strips)
    graphs_2d("pixels", efficiencyArrayPixels, bins, maxMom, args.pixels)
    plot_1D_graph("mom", [
        BCGraphMomStrips, ACGraphMomStrips, BCGraphMomPixels, ACGraphMomPixels
    ], args.outputDirectory)
    plot_1D_graph("theta", [
        BCGraphThetaStrips, ACGraphThetaStrips, BCGraphThetaPixels,
        ACGraphThetaPixels
    ], args.outputDirectory)
    res_graph(args.strips, momSigmaArrayStrips, momSigmaArrayPixels, bins,
              maxMom)

    print "[DONE]"
def main():
	# main
	args = commonFunctions.simple_parse_args()
	if not args:
		print 'Invalid Arguments'
		sys.exit(1)

	fileList = commonFunctions.input_files(args.inputDir, ".slcio")

	data = defaultdict(list)
	zh_count = zz_count = 0 
	for fileName in fileList:
		outputName, eventCount, detector, energy = commonFunctions.get_fileData(fileName)
		
		reader = IOIMPL.LCFactory.getInstance().createLCReader()
		reader.open(fileName)

		muonCount = 0
		for event in reader:
			check, event_type, total_recoil_mass, reduced_recoil_mass, reduced_energy = event_processor(event)
			if check:
				muonCount += 1
				if event_type == 1: zh_count += 1
				if event_type == 2: zz_count += 1

				data["totalMass " + str(event_type)].append(total_recoil_mass)
				data["reducedMass " + str(event_type)].append(reduced_recoil_mass)
				data["reducedEnergy " + str(event_type)].append(reduced_energy)

		print ", Total Events-> " + str(eventCount) + ", DiMuon Events-> " + str(muonCount) 

	if zz_count > 0:
		ratio = zh_count / zz_count
	else: ratio =0

	for key in data:
		# Makes plots of all the lists in the dictionary data[] with appropriae names.
		if key.split()[0] == "totalMass" or key.split()[0] == "reducedMass":
			if key.split()[1] == "1":
				commonFunctions.plot_simple_histogram(args.inputDir + key, data[key], args.numberOfBins, 50, 250, True, 120, 20)
			if key.split()[1] == "2":
				commonFunctions.plot_simple_histogram(args.inputDir + key, data[key], args.numberOfBins, 50, 250, True, 91, 30)

		# elif key.split()[0] == "reducedEnergy":
			# commonFunctions.plot_simple_histogram(args.inputDir + key, data[key], args.numberOfBins, 350, 500, False)
			'''
		for key2 in data:

			# Makes 2D plots of the different types of energies
			if key.split()[0] == "reducedMass" and key2.split()[0] == "reducedEnergy" and key.split()[1] == key2.split()[1]:
				commonFunctions.plot_2d_histogram(args.inputDir + "reduced_2d_" + key.split()[1], data[key], data[key2], args.numberOfBins, 50, 200, 350, 500, False)
			elif key.split()[0] == "totalMass" and key2.split()[0] == "reducedEnergy" and key.split()[1] == key2.split()[1]:
				commonFunctions.plot_2d_histogram(args.inputDir + "total_2d_" + key.split()[1], data[key], data[key2], args.numberOfBins, 50, 200, 350, 500, False)
			elif key.split()[0] == "totalMass" and key2.split()[0] == "totalMass" and key.split()[1] < key2.split()[1]:
				combined_histogram(args.inputDir + "totalMass_comb", data[key], data[key2], ratio, args.numberOfBins, 0, 250)
			elif key.split()[0] == "reducedMass" and key2.split()[0] == "reducedMass" and key.split()[1] < key2.split()[1]:
				combined_histogram(args.inputDir + "reducedMass_comb", data[key], data[key2], ratio, args.numberOfBins, 0, 250)
'''
	reader.close()
	
	print "[DONE]"
Beispiel #10
0
def main():
    args = parse_args()
    if not args:
        print 'Invalid Arguments'
        sys.exit(1)

    files = [[] for x in range(5)]
    files[0] = commonFunctions.input_files(args.bunch1, ".slcio")
    files[1] = commonFunctions.input_files(args.bunch5, ".slcio")
    files[2] = commonFunctions.input_files(args.bunch10, ".slcio")
    files[3] = commonFunctions.input_files(args.bunch20, ".slcio")
    files[4] = commonFunctions.input_files(args.bunch50, ".slcio")

    bunchtypes = [1, 5, 10, 20, 50]
    count = 0
    data = [[[[0, 0, 0, 0, 0, 0] for x in range(2)] for x in range(3)]
            for x in range(5)
            ]  #[[[abv,less]signal,overlay,tot]bunch1,bunch5 etc....]
    multiWeightsAbove = defaultdict(list)
    partialWeightsAbove = []
    multiWeightsBelow = defaultdict(list)
    partialWeightsBelow = []
    temp = [0 for x in range(18)]
    for bunchType in files:
        print "Analysing Bunch type -> " + str(bunchtypes[count])
        values = [[0, 0, 0, 0, 0] for x in range(4)]
        fileCount = 1
        for fileName in bunchType:
            print "Processing File num -> " + str(fileCount)
            fileCount += 1
            valuesTemp, multiWeightsAboveTemp, partialWeightsAboveTemp, multiWeightsBelowTemp, partialWeightsBelowTemp = track_validation(
                fileName)
            partialWeightsAbove.extend(partialWeightsAboveTemp)
            for key in multiWeightsAboveTemp:
                multiWeightsAbove[key].extend(multiWeightsAboveTemp[key])
            partialWeightsBelow.extend(partialWeightsBelowTemp)
            for key in multiWeightsBelowTemp:
                multiWeightsBelow[key].extend(multiWeightsBelowTemp[key])
            for counter1 in range(4):
                for counter2 in range(5):
                    values[counter1][counter2] += valuesTemp[counter1][
                        counter2]

        print "Calculating data Values..."
        # values = [[0,0,0,0,0] for x in range(4)]
        # data[bunches][type][cut][value] # values[type][value]
        # Above,signal
        print "Total pions -> " + str(values[0][2])
        data[count][0][0][0] = values[0][2] / values[0][0]  # Efficiency
        data[count][0][0][2] = values[0][3] / values[0][0]  # Efficiency
        data[count][0][0][4] = values[0][4] / values[0][1]  # Efficiency

        # less,signal
        data[count][0][1][0] = values[1][2] / values[1][0]  # Efficiency
        data[count][0][1][2] = values[1][3] / values[1][0]  # Efficiency
        data[count][0][1][4] = values[1][4] / values[1][1]  # Efficiency]

        # Above,overlay
        data[count][1][0][0] = values[2][2] / values[2][0]  # Efficiency
        data[count][1][0][2] = values[2][3] / values[2][0]  # Efficiency
        data[count][1][0][4] = values[2][4] / values[2][1]  # Efficiency

        # less,overlay
        data[count][1][1][0] = values[3][2] / values[3][0]  # Efficiency
        data[count][1][1][2] = values[3][3] / values[3][0]  # Efficiency
        data[count][1][1][4] = values[3][4] / values[3][1]  # Efficiency

        # Above,tot
        data[count][2][0][0] = (values[0][2] + values[2][2]) / (
            values[0][0] + values[2][0])  # Efficiency
        data[count][2][0][2] = (values[0][3] + values[2][3]) / (
            values[0][0] + values[2][0])  # Efficiency
        data[count][2][0][4] = (values[0][4] + values[2][4]) / (
            values[0][1] + values[2][1])  # Efficiency

        # less,tot
        data[count][2][1][0] = (values[1][2] + values[3][2]) / (
            values[1][0] + values[3][0])  # Efficiency
        data[count][2][1][2] = (values[1][3] + values[3][3]) / (
            values[1][0] + values[3][0])  # Efficiency
        data[count][2][1][4] = (values[1][4] + values[3][4]) / (
            values[1][1] + values[3][1])  # Efficiency

        #OLD ONES
        '''
		data[count][0][0][1] = math.sqrt(((values[0][2] / values[0][0])*(1-(values[0][2] / values[0][0])))/(values[0][0]))
		data[count][0][0][3] = math.sqrt(((values[0][3] / values[0][0])*(1-(values[0][3] / values[0][0])))/(values[0][0]))
		data[count][0][0][5] = math.sqrt(((values[0][4] / values[0][1])*(1-(values[0][4] / values[0][1])))/(values[0][1]))
		data[count][0][1][1] = math.sqrt(((values[1][2] / values[1][0])*(1-(values[1][2] / values[1][0])))/(values[1][0]))
		data[count][0][1][3] = math.sqrt(((values[1][3] / values[1][0])*(1-(values[1][3] / values[1][0])))/(values[1][0]))
		data[count][0][1][5] = math.sqrt(((values[1][4] / values[1][1])*(1-(values[1][4] / values[1][1])))/(values[1][1]))
		data[count][1][0][1] = math.sqrt(((values[2][2] / values[2][0])*(1-(values[2][2] / values[2][0])))/(values[2][0]))
		data[count][1][0][3] = math.sqrt(((values[2][3] / values[2][0])*(1-(values[2][3] / values[2][0])))/(values[2][0]))
		data[count][1][0][5] = math.sqrt(((values[2][4] / values[2][1])*(1-(values[2][4] / values[2][1])))/(values[2][1]))
		data[count][1][1][1] = math.sqrt(((values[3][2] / values[3][0])*(1-(values[3][2] / values[3][0])))/(values[3][0]))
		data[count][1][1][3] = math.sqrt(((values[3][3] / values[3][0])*(1-(values[3][3] / values[3][0])))/(values[3][0]))
		data[count][1][1][5] = math.sqrt(((values[3][4] / values[3][1])*(1-(values[3][4] / values[3][1])))/(values[3][1]))
		data[count][2][0][1] = math.sqrt((((values[0][2]+values[2][2]) / (values[0][0]+values[2][0]))*(1-((values[0][2]+values[2][2]) / (values[0][0]+values[2][0]))))/((values[0][0]+values[2][0])))
		data[count][2][0][3] = math.sqrt((((values[0][3]+values[2][3]) / (values[0][0]+values[2][0]))*(1-((values[0][3]+values[2][3]) / (values[0][0]+values[2][0]))))/((values[0][0]+values[2][0])))
		data[count][2][0][5] = math.sqrt((((values[0][4]+values[2][4]) / (values[0][1]+values[2][1]))*(1-((values[0][4]+values[2][4]) / (values[0][1]+values[2][1]))))/((values[0][1]+values[2][1])))
		data[count][2][1][1] = math.sqrt((((values[1][2]+values[3][2]) / (values[1][0]+values[3][0]))*(1-((values[1][2]+values[3][2]) / (values[1][0]+values[3][0]))))/((values[1][0]+values[3][0])))
		data[count][2][1][3] = math.sqrt((((values[1][3]+values[3][3]) / (values[1][0]+values[3][0]))*(1-((values[1][3]+values[3][3]) / (values[1][0]+values[3][0]))))/((values[1][0]+values[3][0])))
		data[count][2][1][5] = math.sqrt((((values[1][4]+values[3][4]) / (values[1][1]+values[3][1]))*(1-((values[1][4]+values[3][4]) / (values[1][1]+values[3][1]))))/((values[1][1]+values[3][1])))
		'''
        #NEWEST ONES!!!!!

        data[count][0][0][1] = math.sqrt(
            ((math.fabs(values[0][2] - temp[0]) / values[0][0]) *
             (1 - (math.fabs(values[0][2] - temp[0]) / values[0][0]))) /
            (values[0][0]))
        data[count][0][0][3] = math.sqrt(
            ((math.fabs(values[0][3] - temp[1]) / values[0][0]) *
             (1 - (math.fabs(values[0][3] - temp[1]) / values[0][0]))) /
            (values[0][0]))
        data[count][0][0][5] = math.sqrt(
            ((math.fabs(values[0][4] - temp[2]) / values[0][1]) *
             (1 - (math.fabs(values[0][4] - temp[2]) / values[0][1]))) /
            (values[0][1]))
        data[count][0][1][1] = math.sqrt(
            ((math.fabs(values[1][2] - temp[3]) / values[1][0]) *
             (1 - (math.fabs(values[1][2] - temp[3]) / values[1][0]))) /
            (values[1][0]))
        data[count][0][1][3] = math.sqrt(
            ((math.fabs(values[1][3] - temp[4]) / values[1][0]) *
             (1 - (math.fabs(values[1][3] - temp[4]) / values[1][0]))) /
            (values[1][0]))
        data[count][0][1][5] = math.sqrt(
            ((math.fabs(values[1][4] - temp[5]) / values[1][1]) *
             (1 - (math.fabs(values[1][4] - temp[5]) / values[1][1]))) /
            (values[1][1]))
        data[count][1][0][1] = math.sqrt(
            ((math.fabs(values[2][2] - temp[6]) / values[2][0]) *
             (1 - (math.fabs(values[2][2] - temp[6]) / values[2][0]))) /
            (values[2][0]))
        data[count][1][0][3] = math.sqrt(
            ((math.fabs(values[2][3] - temp[7]) / values[2][0]) *
             (1 - (math.fabs(values[2][3] - temp[7]) / values[2][0]))) /
            (values[2][0]))
        data[count][1][0][5] = math.sqrt(
            ((math.fabs(values[2][4] - temp[8]) / values[2][1]) *
             (1 - (math.fabs(values[2][4] - temp[8]) / values[2][1]))) /
            (values[2][1]))
        data[count][1][1][1] = math.sqrt(
            ((math.fabs(values[3][2] - temp[9]) / values[3][0]) *
             (1 - (math.fabs(values[3][2] - temp[9]) / values[3][0]))) /
            (values[3][0]))
        data[count][1][1][3] = math.sqrt(
            ((math.fabs(values[3][3] - temp[10]) / values[3][0]) *
             (1 - (math.fabs(values[3][3] - temp[10]) / values[3][0]))) /
            (values[3][0]))
        data[count][1][1][5] = math.sqrt(
            ((math.fabs(values[3][4] - temp[11]) / values[3][1]) *
             (1 - (math.fabs(values[3][4] - temp[11]) / values[3][1]))) /
            (values[3][1]))
        data[count][2][0][1] = math.sqrt(
            ((math.fabs((values[0][2] + values[2][2]) - temp[12]) /
              (values[0][0] + values[2][0])) *
             (1 - (math.fabs((values[0][2] + values[2][2]) - temp[12]) /
                   (values[0][0] + values[2][0])))) /
            ((values[0][0] + values[2][0])))
        data[count][2][0][3] = math.sqrt(
            ((math.fabs((values[0][3] + values[2][3]) - temp[13]) /
              (values[0][0] + values[2][0])) *
             (1 - (math.fabs((values[0][3] + values[2][3]) - temp[13]) /
                   (values[0][0] + values[2][0])))) /
            ((values[0][0] + values[2][0])))
        data[count][2][0][5] = math.sqrt(
            ((math.fabs((values[0][4] + values[2][4]) - temp[14]) /
              (values[0][1] + values[2][1])) *
             (1 - (math.fabs((values[0][4] + values[2][4]) - temp[14]) /
                   (values[0][1] + values[2][1])))) /
            ((values[0][1] + values[2][1])))
        data[count][2][1][1] = math.sqrt(
            ((math.fabs((values[1][2] + values[3][2]) - temp[15]) /
              (values[1][0] + values[3][0])) *
             (1 - (math.fabs((values[1][2] + values[3][2]) - temp[15]) /
                   (values[1][0] + values[3][0])))) /
            ((values[1][0] + values[3][0])))
        data[count][2][1][3] = math.sqrt(
            ((math.fabs((values[1][3] + values[3][3]) - temp[16]) /
              (values[1][0] + values[3][0])) *
             (1 - (math.fabs((values[1][3] + values[3][3]) - temp[16]) /
                   (values[1][0] + values[3][0])))) /
            ((values[1][0] + values[3][0])))
        data[count][2][1][5] = math.sqrt(
            ((math.fabs((values[1][4] + values[3][4]) - temp[17]) /
              (values[1][1] + values[3][1])) *
             (1 - (math.fabs((values[1][4] + values[3][4]) - temp[17]) /
                   (values[1][1] + values[3][1])))) /
            ((values[1][1] + values[3][1])))

        temp[0] = values[0][2]
        temp[1] = values[0][3]
        temp[2] = values[0][4]
        temp[3] = values[1][2]
        temp[4] = values[1][3]
        temp[5] = values[1][4]
        temp[6] = values[2][2]
        temp[7] = values[2][3]
        temp[8] = values[2][4]
        temp[9] = values[3][2]
        temp[10] = values[3][3]
        temp[11] = values[3][4]
        temp[12] = values[0][2] + values[2][2]
        temp[13] = values[0][3] + values[2][3]
        temp[14] = values[0][4] + values[2][4]
        temp[15] = values[1][2] + values[3][2]
        temp[16] = values[1][3] + values[3][3]
        temp[17] = values[1][4] + values[3][4]

        count += 1

    #plot_simple_histogram("partialWeightsAbove", partialWeightsAbove, 100, 0.5, 1, False, 0, 0)
    plot_simple_histogram("partialWeightsBelow", partialWeightsBelow, 100, 0.5,
                          1, False, 0, 0)
    #draw_weights("multiWeightsAbove", multiWeightsAbove, 100, 0, 1)
    #draw_weights("multiWeightsBelow", multiWeightsBelow, 100, 0, 1)
    draw_graphs(data, bunchtypes)
def main():
	args = parse_args()
	if not args:
		print 'Invalid Arguments'
		sys.exit(1)

	files = [[] for x in range(5)]
	files[0] = commonFunctions.input_files(args.bunch1, ".slcio")
	files[1] = commonFunctions.input_files(args.bunch5, ".slcio")
	files[2] = commonFunctions.input_files(args.bunch10, ".slcio")
	files[3] = commonFunctions.input_files(args.bunch20, ".slcio")
	files[4] = commonFunctions.input_files(args.bunch50, ".slcio")

	bunchtypes = [1, 5, 10, 20, 50]
	count = 0
	data = [[[[0,0,0,0,0,0] for x in range(2)] for x in range(3)] for x in range(5)] #[[[abv,less]signal,overlay,tot]bunch1,bunch5 etc....]
	multiWeightsAbove = defaultdict(list)
	partialWeightsAbove = []
	multiWeightsBelow = defaultdict(list)
	partialWeightsBelow = []
	temp = [0 for x in range(18)]
	for bunchType in files:
		print "Analysing Bunch type -> " + str(bunchtypes[count])
		values = [[0,0,0,0,0] for x in range(4)] 
		fileCount = 1
		for fileName in bunchType:
			print "Processing File num -> " + str(fileCount)
			fileCount += 1
			valuesTemp, multiWeightsAboveTemp, partialWeightsAboveTemp, multiWeightsBelowTemp, partialWeightsBelowTemp = track_validation(fileName)
			partialWeightsAbove.extend(partialWeightsAboveTemp)
			for key in multiWeightsAboveTemp:
				multiWeightsAbove[key].extend(multiWeightsAboveTemp[key])
			partialWeightsBelow.extend(partialWeightsBelowTemp)
			for key in multiWeightsBelowTemp:
				multiWeightsBelow[key].extend(multiWeightsBelowTemp[key])
			for counter1 in range(4):
				for counter2 in range(5):
					values[counter1][counter2] += valuesTemp[counter1][counter2]

		print "Calculating data Values..."
		# values = [[0,0,0,0,0] for x in range(4)]
		# data[bunches][type][cut][value] # values[type][value]
		# Above,signal
		print "Total pions -> " +str(values[0][2])
		data[count][0][0][0] = values[0][2] / values[0][0] # Efficiency
		data[count][0][0][2] = values[0][3] / values[0][0] # Efficiency		
		data[count][0][0][4] = values[0][4] / values[0][1] # Efficiency
		
		# less,signal
		data[count][0][1][0] = values[1][2] / values[1][0] # Efficiency		
		data[count][0][1][2] = values[1][3] / values[1][0] # Efficiency		
		data[count][0][1][4] = values[1][4] / values[1][1] # Efficiency]
		
		# Above,overlay
		data[count][1][0][0] = values[2][2] / values[2][0] # Efficiency	
		data[count][1][0][2] = values[2][3] / values[2][0] # Efficiency	
		data[count][1][0][4] = values[2][4] / values[2][1] # Efficiency
		
		# less,overlay
		data[count][1][1][0] = values[3][2] / values[3][0] # Efficiency		
		data[count][1][1][2] = values[3][3] / values[3][0] # Efficiency	
		data[count][1][1][4] = values[3][4] / values[3][1] # Efficiency
		
		# Above,tot
		data[count][2][0][0] = (values[0][2]+values[2][2]) / (values[0][0]+values[2][0]) # Efficiency	
		data[count][2][0][2] = (values[0][3]+values[2][3]) / (values[0][0]+values[2][0]) # Efficiency	
		data[count][2][0][4] = (values[0][4]+values[2][4]) / (values[0][1]+values[2][1]) # Efficiency
		
		# less,tot
		data[count][2][1][0] = (values[1][2]+values[3][2]) / (values[1][0]+values[3][0]) # Efficiency		
		data[count][2][1][2] = (values[1][3]+values[3][3]) / (values[1][0]+values[3][0]) # Efficiency	
		data[count][2][1][4] = (values[1][4]+values[3][4]) / (values[1][1]+values[3][1]) # Efficiency

		#OLD ONES
		
		'''
		data[count][0][0][1] = math.sqrt(((values[0][2] / values[0][0])*(1-(values[0][2] / values[0][0])))/(values[0][0]))
		data[count][0][0][3] = math.sqrt(((values[0][3] / values[0][0])*(1-(values[0][3] / values[0][0])))/(values[0][0]))
		data[count][0][0][5] = math.sqrt(((values[0][4] / values[0][1])*(1-(values[0][4] / values[0][1])))/(values[0][1]))
		data[count][0][1][1] = math.sqrt(((values[1][2] / values[1][0])*(1-(values[1][2] / values[1][0])))/(values[1][0]))
		data[count][0][1][3] = math.sqrt(((values[1][3] / values[1][0])*(1-(values[1][3] / values[1][0])))/(values[1][0]))
		data[count][0][1][5] = math.sqrt(((values[1][4] / values[1][1])*(1-(values[1][4] / values[1][1])))/(values[1][1]))
		data[count][1][0][1] = math.sqrt(((values[2][2] / values[2][0])*(1-(values[2][2] / values[2][0])))/(values[2][0]))
		data[count][1][0][3] = math.sqrt(((values[2][3] / values[2][0])*(1-(values[2][3] / values[2][0])))/(values[2][0]))
		data[count][1][0][5] = math.sqrt(((values[2][4] / values[2][1])*(1-(values[2][4] / values[2][1])))/(values[2][1]))
		data[count][1][1][1] = math.sqrt(((values[3][2] / values[3][0])*(1-(values[3][2] / values[3][0])))/(values[3][0]))
		data[count][1][1][3] = math.sqrt(((values[3][3] / values[3][0])*(1-(values[3][3] / values[3][0])))/(values[3][0]))
		data[count][1][1][5] = math.sqrt(((values[3][4] / values[3][1])*(1-(values[3][4] / values[3][1])))/(values[3][1]))
		data[count][2][0][1] = math.sqrt((((values[0][2]+values[2][2]) / (values[0][0]+values[2][0]))*(1-((values[0][2]+values[2][2]) / (values[0][0]+values[2][0]))))/((values[0][0]+values[2][0])))
		data[count][2][0][3] = math.sqrt((((values[0][3]+values[2][3]) / (values[0][0]+values[2][0]))*(1-((values[0][3]+values[2][3]) / (values[0][0]+values[2][0]))))/((values[0][0]+values[2][0])))
		data[count][2][0][5] = math.sqrt((((values[0][4]+values[2][4]) / (values[0][1]+values[2][1]))*(1-((values[0][4]+values[2][4]) / (values[0][1]+values[2][1]))))/((values[0][1]+values[2][1])))
		data[count][2][1][1] = math.sqrt((((values[1][2]+values[3][2]) / (values[1][0]+values[3][0]))*(1-((values[1][2]+values[3][2]) / (values[1][0]+values[3][0]))))/((values[1][0]+values[3][0])))
		data[count][2][1][3] = math.sqrt((((values[1][3]+values[3][3]) / (values[1][0]+values[3][0]))*(1-((values[1][3]+values[3][3]) / (values[1][0]+values[3][0]))))/((values[1][0]+values[3][0])))
		data[count][2][1][5] = math.sqrt((((values[1][4]+values[3][4]) / (values[1][1]+values[3][1]))*(1-((values[1][4]+values[3][4]) / (values[1][1]+values[3][1]))))/((values[1][1]+values[3][1])))
		'''
		#NEWEST ONES!!!!!
		
		data[count][0][0][1] = math.sqrt(((math.fabs(values[0][2]-temp[0]) / values[0][0])*(1-(math.fabs(values[0][2]-temp[0]) / values[0][0])))/(values[0][0]))
		data[count][0][0][3] = math.sqrt(((math.fabs(values[0][3]-temp[1]) / values[0][0])*(1-(math.fabs(values[0][3]-temp[1]) / values[0][0])))/(values[0][0]))
		data[count][0][0][5] = math.sqrt(((math.fabs(values[0][4]-temp[2]) / values[0][1])*(1-(math.fabs(values[0][4]-temp[2]) / values[0][1])))/(values[0][1]))
		data[count][0][1][1] = math.sqrt(((math.fabs(values[1][2]-temp[3]) / values[1][0])*(1-(math.fabs(values[1][2]-temp[3]) / values[1][0])))/(values[1][0]))
		data[count][0][1][3] = math.sqrt(((math.fabs(values[1][3]-temp[4]) / values[1][0])*(1-(math.fabs(values[1][3]-temp[4]) / values[1][0])))/(values[1][0]))
		data[count][0][1][5] = math.sqrt(((math.fabs(values[1][4]-temp[5]) / values[1][1])*(1-(math.fabs(values[1][4]-temp[5]) / values[1][1])))/(values[1][1]))
		data[count][1][0][1] = math.sqrt(((math.fabs(values[2][2]-temp[6]) / values[2][0])*(1-(math.fabs(values[2][2]-temp[6]) / values[2][0])))/(values[2][0]))
		data[count][1][0][3] = math.sqrt(((math.fabs(values[2][3]-temp[7]) / values[2][0])*(1-(math.fabs(values[2][3]-temp[7]) / values[2][0])))/(values[2][0]))
		data[count][1][0][5] = math.sqrt(((math.fabs(values[2][4]-temp[8]) / values[2][1])*(1-(math.fabs(values[2][4]-temp[8]) / values[2][1])))/(values[2][1]))
		data[count][1][1][1] = math.sqrt(((math.fabs(values[3][2]-temp[9]) / values[3][0])*(1-(math.fabs(values[3][2]-temp[9])/ values[3][0])))/(values[3][0]))
		data[count][1][1][3] = math.sqrt(((math.fabs(values[3][3]-temp[10]) / values[3][0])*(1-(math.fabs(values[3][3]-temp[10]) / values[3][0])))/(values[3][0]))
		data[count][1][1][5] = math.sqrt(((math.fabs(values[3][4]-temp[11]) / values[3][1])*(1-(math.fabs(values[3][4]-temp[11]) / values[3][1])))/(values[3][1]))
		data[count][2][0][1] = math.sqrt(((math.fabs((values[0][2]+values[2][2])-temp[12]) / (values[0][0]+values[2][0]))*(1-(math.fabs((values[0][2]+values[2][2])-temp[12]) / (values[0][0]+values[2][0]))))/((values[0][0]+values[2][0])))
		data[count][2][0][3] = math.sqrt(((math.fabs((values[0][3]+values[2][3])-temp[13]) / (values[0][0]+values[2][0]))*(1-(math.fabs((values[0][3]+values[2][3])-temp[13]) / (values[0][0]+values[2][0]))))/((values[0][0]+values[2][0])))
		data[count][2][0][5] = math.sqrt(((math.fabs((values[0][4]+values[2][4])-temp[14]) / (values[0][1]+values[2][1]))*(1-(math.fabs((values[0][4]+values[2][4])-temp[14]) / (values[0][1]+values[2][1]))))/((values[0][1]+values[2][1])))
		data[count][2][1][1] = math.sqrt(((math.fabs((values[1][2]+values[3][2])-temp[15]) / (values[1][0]+values[3][0]))*(1-(math.fabs((values[1][2]+values[3][2])-temp[15]) / (values[1][0]+values[3][0]))))/((values[1][0]+values[3][0])))
		data[count][2][1][3] = math.sqrt(((math.fabs((values[1][3]+values[3][3])-temp[16]) / (values[1][0]+values[3][0]))*(1-(math.fabs((values[1][3]+values[3][3])-temp[16]) / (values[1][0]+values[3][0]))))/((values[1][0]+values[3][0])))
		data[count][2][1][5] = math.sqrt(((math.fabs((values[1][4]+values[3][4])-temp[17]) / (values[1][1]+values[3][1]))*(1-(math.fabs((values[1][4]+values[3][4])-temp[17]) / (values[1][1]+values[3][1]))))/((values[1][1]+values[3][1])))
		

		temp[0] = values[0][2]
		temp[1] = values[0][3]
		temp[2] = values[0][4]
		temp[3] = values[1][2]
		temp[4] = values[1][3]
		temp[5] = values[1][4]
		temp[6] = values[2][2]
		temp[7] = values[2][3]
		temp[8] = values[2][4]
		temp[9] = values[3][2]
		temp[10] = values[3][3]
		temp[11] = values[3][4]
		temp[12] = values[0][2]+values[2][2]
		temp[13] = values[0][3]+values[2][3]
		temp[14] = values[0][4]+values[2][4]
		temp[15] = values[1][2]+values[3][2]
		temp[16] = values[1][3]+values[3][3]
		temp[17] = values[1][4]+values[3][4]
		
		count += 1


	#plot_simple_histogram("partialWeightsAbove", partialWeightsAbove, 100, 0.5, 1, False, 0, 0)
	plot_simple_histogram("partialWeightsBelow", partialWeightsBelow, 100, 0.5, 1, False, 0, 0)
	#draw_weights("multiWeightsAbove", multiWeightsAbove, 100, 0, 1)
	#draw_weights("multiWeightsBelow", multiWeightsBelow, 100, 0, 1)
	draw_graphs(data, bunchtypes)
Beispiel #12
0
def main():
    # main
    args = commonFunctions.simple_parse_args()
    if not args:
        print 'Invalid Arguments'
        sys.exit(1)

    fileList = commonFunctions.input_files(args.inputDir, ".slcio")

    data = defaultdict(list)
    zh_count = zz_count = 0
    for fileName in fileList:
        outputName, eventCount, detector, energy = commonFunctions.get_fileData(
            fileName)

        reader = IOIMPL.LCFactory.getInstance().createLCReader()
        reader.open(fileName)

        muonCount = 0
        for event in reader:
            check, event_type, total_recoil_mass, reduced_recoil_mass, reduced_energy = event_processor(
                event)
            if check:
                muonCount += 1
                if event_type == 1: zh_count += 1
                if event_type == 2: zz_count += 1

                data["totalMass " + str(event_type)].append(total_recoil_mass)
                data["reducedMass " +
                     str(event_type)].append(reduced_recoil_mass)
                data["reducedEnergy " + str(event_type)].append(reduced_energy)

        print ", Total Events-> " + str(
            eventCount) + ", DiMuon Events-> " + str(muonCount)

    if zz_count > 0:
        ratio = zh_count / zz_count
    else:
        ratio = 0

    for key in data:
        # Makes plots of all the lists in the dictionary data[] with appropriae names.
        if key.split()[0] == "totalMass" or key.split()[0] == "reducedMass":
            if key.split()[1] == "1":
                commonFunctions.plot_simple_histogram(args.inputDir + key,
                                                      data[key],
                                                      args.numberOfBins, 50,
                                                      250, True, 120, 20)
            if key.split()[1] == "2":
                commonFunctions.plot_simple_histogram(args.inputDir + key,
                                                      data[key],
                                                      args.numberOfBins, 50,
                                                      250, True, 91, 30)

        # elif key.split()[0] == "reducedEnergy":
        # commonFunctions.plot_simple_histogram(args.inputDir + key, data[key], args.numberOfBins, 350, 500, False)
            '''
		for key2 in data:

			# Makes 2D plots of the different types of energies
			if key.split()[0] == "reducedMass" and key2.split()[0] == "reducedEnergy" and key.split()[1] == key2.split()[1]:
				commonFunctions.plot_2d_histogram(args.inputDir + "reduced_2d_" + key.split()[1], data[key], data[key2], args.numberOfBins, 50, 200, 350, 500, False)
			elif key.split()[0] == "totalMass" and key2.split()[0] == "reducedEnergy" and key.split()[1] == key2.split()[1]:
				commonFunctions.plot_2d_histogram(args.inputDir + "total_2d_" + key.split()[1], data[key], data[key2], args.numberOfBins, 50, 200, 350, 500, False)
			elif key.split()[0] == "totalMass" and key2.split()[0] == "totalMass" and key.split()[1] < key2.split()[1]:
				combined_histogram(args.inputDir + "totalMass_comb", data[key], data[key2], ratio, args.numberOfBins, 0, 250)
			elif key.split()[0] == "reducedMass" and key2.split()[0] == "reducedMass" and key.split()[1] < key2.split()[1]:
				combined_histogram(args.inputDir + "reducedMass_comb", data[key], data[key2], ratio, args.numberOfBins, 0, 250)
'''
    reader.close()

    print "[DONE]"
Beispiel #13
0
def main():
    args = parse_args()
    if not args:
        print 'Invalid Arguments'
        sys.exit(1)

    files = [[] for x in range(5)]
    files[0] = commonFunctions.input_files(args.bunch1, ".slcio")
    files[1] = commonFunctions.input_files(args.bunch5, ".slcio")
    files[2] = commonFunctions.input_files(args.bunch10, ".slcio")
    files[3] = commonFunctions.input_files(args.bunch20, ".slcio")
    files[4] = commonFunctions.input_files(args.bunch50, ".slcio")

    bunchtypes = [1, 5, 10, 20, 50]
    count = 0
    lessData = [[0, 0, 0, 0, 0, 0] for x in range(5)]
    abvData = [[0, 0, 0, 0, 0, 0] for x in range(5)]

    for bunchType in files:
        print "Analysing Bunch type -> " + str(bunchtypes[count])
        nums = [0, 0, 0, 0, 0, 0]
        lessValues = [0, 0, 0, 0,
                      0]  # totPions, totTracks, true, partrue, fake
        abvValues = [0, 0, 0, 0, 0]
        fileCount = 1
        for fileName in bunchType:
            print "Processing File num -> " + str(fileCount)
            fileCount += 1
            lessValuesTemp, abvValuesTemp = track_validation(fileName)
            for counter in range(5):
                lessValues[counter] += lessValuesTemp[counter]
                abvValues[counter] += abvValuesTemp[counter]

        print("lessValues -> " + str(lessValues[0]) + ", " +
              str(lessValues[1]) + ", " + str(lessValues[2]) + ", " +
              str(lessValues[3]) + ", " + str(lessValues[4]))
        print("abvValues -> " + str(abvValues[0]) + ", " + str(abvValues[1]) +
              ", " + str(abvValues[2]) + ", " + str(abvValues[3]) + ", " +
              str(abvValues[4]))
        print("less(E,F) -> " + str(lessValues[2] / lessValues[0]) + ", " +
              str(lessValues[4] / lessValues[1]) + ", Abv(E,F) -> " +
              str(abvValues[2] / abvValues[0]) + ", " +
              str(abvValues[4] / abvValues[1]))
        lessData[count][0] = lessValues[2] / lessValues[0]  #Efficiency
        lessData[count][1] = math.sqrt(
            ((lessValues[2] / lessValues[0]) *
             (1 - (lessValues[2] / lessValues[0]))) / (lessValues[0]))
        lessData[count][2] = lessValues[3] / lessValues[0]  #parEfficiency
        lessData[count][3] = math.sqrt(
            ((lessValues[3] / lessValues[0]) *
             (1 - (lessValues[3] / lessValues[0]))) / (lessValues[0]))
        lessData[count][4] = lessValues[4] / lessValues[1]  #Fake Rate
        lessData[count][5] = math.sqrt(
            ((lessValues[4] / lessValues[1]) *
             (1 - (lessValues[4] / lessValues[1]))) / (lessValues[1]))
        abvData[count][0] = abvValues[2] / abvValues[0]
        abvData[count][1] = math.sqrt(
            ((abvValues[2] / abvValues[0]) *
             (1 - (abvValues[2] / abvValues[0]))) / (abvValues[0]))
        abvData[count][2] = abvValues[3] / abvValues[0]
        abvData[count][3] = math.sqrt(
            ((abvValues[3] / abvValues[0]) *
             (1 - (abvValues[3] / abvValues[0]))) / (abvValues[0]))
        abvData[count][4] = abvValues[4] / abvValues[1]
        abvData[count][5] = math.sqrt(
            ((abvValues[4] / abvValues[1]) *
             (1 - (abvValues[4] / abvValues[1]))) / (abvValues[1]))

        count += 1

    draw_graphs(lessData, abvData, bunchtypes)