Exemple #1
0
def save_particle_to_db(name, charge, mass, antiparticle, alias=[], antiparticle_alias=[]):
    """
    This function save particle to db.
    name - name of a partilce, string
    charge - charge of a particle, float
    mass - mass of a particle in MeV, float
    antiparticle - name of a charge-conjugate particle. 
    In case if particle is self-conjugate, antiparticle == name
    alias - possible names for this particle. 
    antiparticle_alias - possible names for its anti-particle. 
    """
    if alias == []:
        alias.append(name)        
    db_part = Particle( name = name,
                        charge = charge,
                        mass = mass,
                        alias = alias,
                        antiparticle = antiparticle)
    try: 
        db_part.save()
    except:
        print("Failed to save particle:")
        print(json.dumps(db_part.to_dict(),sort_keys=True, indent=4))
        return False
    if not antiparticle == name:
        if antiparticle_alias == []:
            antiparticle_alias.append(antiparticle)        
        db_part = Particle( name = antiparticle,
                            charge = -charge,
                            mass = mass,
                            alias = antiparticle_alias,
                            antiparticle = name)
        try: 
            db_part.save()
        except:
            print("Failed to save particle:")
            print(json.dumps(db_part.to_dict(),sort_keys=True, indent=4))
            return False
    return True