示例#1
0
 def get_substitutions(self, substitutions):
     # This assumes that the substitutions are done by index, could add option to
     # do them by ID as well.
     self.set_carets(False)
     subs = {}
     if isinstance(substitutions, dict):
         substitutions = tuple(substitutions.iteritems())
     else:
         substitutions = enumerate(substitutions)
     originalcc = self.cc
     newdesc = ParticleDescriptor(self.particle.pdgid,
                                  daughters=self.daughters,
                                  cc=self.cc,
                                  alias=self.alias)
     self.cc = False
     conj = self.conjugate()
     for i, sub in substitutions:
         newdesc.get_daughter(i).particle = particledb.find_particle(sub)
         subdesc = ParticleDescriptor(sub)
         subdescconj = subdesc.conjugate()
         for fulldesc, subd in (self, subdesc), (conj, subdescconj):
             fulldesc.get_daughter(i).caret = True
             subs[fulldesc.to_string()] = subd.to_string()
             fulldesc.get_daughter(i).caret = False
     self.cc = originalcc
     return subs, newdesc
 def get_substitutions(self, substitutions) :
     # This assumes that the substitutions are done by index, could add option to 
     # do them by ID as well. 
     self.set_carets(False)
     subs = {}
     if isinstance(substitutions, dict) :
         substitutions = tuple(substitutions.iteritems())
     else :
         substitutions = enumerate(substitutions)
     originalcc = self.cc
     newdesc = ParticleDescriptor(self.particle.pdgid, daughters = self.daughters, 
                                  cc = self.cc,
                                  alias = self.alias)
     self.cc = False
     conj = self.conjugate()
     for i, sub in substitutions :
         newdesc.get_daughter(i).particle = particledb.find_particle(sub)
         subdesc = ParticleDescriptor(sub)
         subdescconj = subdesc.conjugate()
         for fulldesc, subd in (self, subdesc), (conj, subdescconj) :
             fulldesc.get_daughter(i).caret = True
             subs[fulldesc.to_string()] = subd.to_string()
             fulldesc.get_daughter(i).caret = False
     self.cc = originalcc
     return subs, newdesc
 def __init__(self, partid, cc = False, daughters = (), alias = None) :
     try :
         self.particle = particledb.find_particle(partid)
     except TypeError :
         raise TypeError('ParticleDescriptor.__init__: Couldn\'t find particle from ID {0!r}.'.format(partid))
     if not self.particle :
         raise ValueError('ParticleDescriptor.__init__: Couldn\'t find particle from ID {0!r}.'.format(partid))
     self.cc = cc
     self.daughters = list(daughters)
     self.caret = False
     self.alias = alias
示例#4
0
 def __init__(self, partid, cc = False, daughters = (), alias = None) :
     try :
         self.particle = particledb.find_particle(partid)
     except TypeError :
         raise TypeError('ParticleDescriptor.__init__: Couldn\'t find particle from ID {0!r}.'.format(partid))
     if not self.particle :
         raise ValueError('ParticleDescriptor.__init__: Couldn\'t find particle from ID {0!r}.'.format(partid))
     self.cc = cc
     self.daughters = list(daughters)
     self.caret = False
     self.alias = alias