def combineClusters(self,startwert='',node='Cluster'): #combine clusters #create lists for cartesian product if self.clusterTree.baum.get_children(node) == (): #am Ende eines Astes #print(startwert) elements, charge = ITFClusterLib.parseFormula(startwert) #print(elements) oneString = ITFClusterLib.oneString(elements, charge) #print(oneString) if oneString in self.combinedClusters.keys(): print('Cluster already in list') else: #create cluster knoten = self.nodes[node] temp = knoten.createClusters(elements) #multiply charged ions: divide masses by charge temp[:,0] = temp[:,0]/float(charge) self.combinedClusters[oneString] = temp # speichern in IFC self.dataIFC.addDist(temp,oneString) return for child in self.clusterTree.baum.get_children(node): knoten = self.nodes[child] if node == 'Cluster': #äusserster Knoten temp = self.clusterTree.baum.item(child,'text') temp = temp.split('{') startwert = temp[3].strip('}') for j in knoten.elements: #print(j) if j > 1: self.combineClusters(startwert+'['+ knoten.sumFormula+']'+str(j),child) elif j == 1: self.combineClusters(startwert+'['+knoten.sumFormula+']',child) else: self.combineClusters(startwert,child)