def createMultiMers(self): d = self.multiMers[0] dNeu = d for j in range(2,self.elements[-1]+1): #print(j) dNeu = ITFClusterLib.convolute(dNeu,d) dNeu = ITFClusterLib.combineMasses(dNeu, self.mindist) dNeu = ITFClusterLib.applyThresh(dNeu, self.thresh) #print(dNeu) self.multiMers.append(dNeu)
def createClusters(self,elements): # create Cluster from elements dictionary distributions = [] for key in elements.keys(): d = ITFClusterLib.loadAtomicDist(key) n = elements[key] temp = ITFClusterLib.selfConvolute(d,n,self.mmd,self.th) distributions.append(temp) # combine distributions dFinal = distributions[0] for mols in range(len(distributions)-1): dFinal = ITFClusterLib.convolute(dFinal,distributions[mols+1]) dFinal = ITFClusterLib.combineMasses(dFinal, self.mmd) dFinal = ITFClusterLib.applyThresh(dFinal, self.th) return dFinal
def genIFCInput(self): # define options for selecting IFC-File # initial directory is folder displayed on screen selectFileOptions = dict(initialdir=self.ordner.wert.get(), defaultextension='.ifc',title='Save cluster data', filetypes=[('IsotopeFit cluster data','*.ifc')], initialfile='cluster.ifc') ifcFilename = filedialog.asksaveasfilename(**selectFileOptions) if ifcFilename == '': # Cancel is clicked return # Loading of existing IFC-file omitted as file was deleted Clusters, numClusters = self.genInputCommon() dataIFC = IFC() for combi in numClusters: dCombi = np.zeros((1,2)) dCombi[0,1] = 1 molname = '' for j in range(len(combi)): mmn = Clusters[j].elements[combi[j]] if mmn > 0: molname = molname+'['+Clusters[j].sumformula+']' if mmn > 1: molname = molname+str(mmn) for j in range(len(combi)): mmn = Clusters[j].elements[combi[j]] if mmn > 0: dCombi = ITFClusterLib.convolute(dCombi,Clusters[j].multiMers[mmn-1]) dCombi = ITFClusterLib.combineMasses(dCombi, Clusters[j].mindist) dCombi = ITFClusterLib.applyThresh(dCombi, Clusters[j].thresh) #multiply charged ions: divide masses by charge dCombi[:,0] = dCombi[:,0]/float(self.charge.wert.get()) # speichern in IFC dataIFC.addDist(dCombi,molname) # speichern der IFC Datei dataIFC.save(ifcFilename) print('Done')