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)
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]"
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]"
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]"
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]"
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)
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]"
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)