Ejemplo n.º 1
0
    def getENDL_CS_ENDF_MT(self):
        """
        Returns the reaction's ENDL C, S and ENDF's MT values as integers in a python dictionary with 
        keys 'C', 'S' and 'MT' (e.g., { 'C' : 11, 'S' : 1, 'MT' : 53 }).
        """

        from fudge.legacy.converting import endf_endl

        MT = self.ENDF_MT
        C, S = endf_endl.getCSFromMT(MT)
        return ({'C': C, 'S': S, 'MT': MT})
Ejemplo n.º 2
0
    if (isinstance(sum_, sumsModule.multiplicitySum)):
        multiplicity = sum_.multiplicity.toPointwise_withLinearXYs(
            lowerEps=energyEps, upperEps=energyEps)
        multiplicitySums[sum_.ENDF_MT] = multiplicity.scaleOffsetXAndY(
            xScale=eV2MeV).domainSlice(domainMax=args.EMax)
ENDLFiles = {}
productionReactions = []
for reaction in reactionSuite.reactions:
    MT = reaction.ENDF_MT
    if (isinstance(reaction, productionModule.production)):
        productionReactions.append(reaction)
        continue
    if (MT in (5, 25)):
        print 'INFO: skipping MT=%d' % (MT)
        continue
    C, S = endf_endlModule.getCSFromMT(MT)
    if (C == 10):
        continue  # There are not gammas for elastic scattering, but logic below may produce gammas for
    # meta-stables with branching data so let's skip it now.
    Q = reaction.getQ(unit='MeV')  # BRB, this is the wrong Q.
    X1 = 0.
    if (len(reaction.outputChannel) == 2):
        particle = reaction.outputChannel[1].particle
        if (isinstance(particle, xParticleModule.nuclearLevel)):
            X1 = particle.energy.getValueAs('MeV')
    Q += X1  # BRB, is this the right Q?
    if (C not in CSQList): CSQList[C] = {}
    if (S not in CSQList[C]): CSQList[C][S] = Q
    Q2 = CSQList[C][S]
    if (abs(Q2 - Q) < 1e-7 * abs(Q)): Q = Q2
    if (S not in [1, 3]): X1 = 0