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)
Exemple #2
0
 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')