Package madgraph :: Package core :: Module drawing :: Class FeynmanLine
[hide private]
[frames] | no frames]

Class FeynmanLine

source code

object --+
         |
        FeynmanLine

All the information about a line in a Feynman diagram i.e. begin-end/type/tag.

Nested Classes [hide private]
  FeynmanLineError
Exception raised if an error occurs in the definition or the execution of a Feynam_line.
Instance Methods [hide private]
 
__init__(self, pid, init_dict={})
Initialize the FeynmanLine content.
source code
 
def_model(self, model)
make a link between the present object and the associate model
source code
 
def_begin_point(self, vertex)
-Re-Define the starting point of the line.
source code
 
def_end_point(self, vertex)
-Re-Define the starting point of the line.
source code
 
add_vertex(self, vertex)
Associate the vertex to the line at the correct position.
source code
 
define_line_orientation(self)
Define the line orientation.
source code
 
inverse_pid_for_type(self, inversetype='straight')
Change the particle in his anti-particle if this type is equal to 'inversetype'.
source code
 
inverse_part_antipart(self)
Pass particle into an anti-particle.
source code
 
inverse_begin_end(self)
Invert the orientation of the line.
source code
 
get_info(self, name)
Return the model information 'name' associated to the line.
source code
 
get_name(self, name='name')
Return the name associate to the particle.
source code
 
get_length(self)
return the length of the line
source code
 
is_fermion(self)
Returns True if the particle is a fermion.
source code
 
is_external(self)
Check if this line represent an external particles or not.
source code
 
__eq__(self, other)
Define that two line are equal when they have the same pointer
source code
 
__ne__(self, other)
Define that two line are different when they have different pointer.
source code
 
has_intersection(self, line)
Check if the two line intersects and returns status.
source code
 
_has_intersection(self, line)
Check if the two line intersects and returns status.
source code
 
is_end_point(self, x, y)
Check if 'x','y' are one of the end point coordinates of the line.
source code
 
domain_intersection(self, line, axis='x')
Returns x1,x2 where both line and self are defined.
source code
 
_domain_intersection(self, line, axis='x')
Returns x1,x2 where both line and self are defined.
source code
 
border_on_axis(self, axis='x')
Returns the two value of the domain interval for the given axis.
source code
 
_intersection_with_vertical_line(self, line)
Checks if line intersect self.
source code
 
check_position_exist(self)
Check that the begin-end position are defined.
source code
 
has_ordinate(self, x)
Returns the y associate to the x value in the line Raises FeynmanLineError if point outside interval or result not unique.
source code
 
_has_ordinate(self, x)
Returns the y associate to the x value in the line This routines doesn't contain check consistency.
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, pid, init_dict={})
(Constructor)

source code 

Initialize the FeynmanLine content.

Overrides: object.__init__

def_end_point(self, vertex)

source code 

-Re-Define the starting point of the line. with check

add_vertex(self, vertex)

source code 
Associate the vertex to the line at the correct position.
line.start should be closer of the lower right corner than line.end.

This is achieved in the following way:
* We don't care about external particles.Those one will be perform
 easily in a second step. In the mean time we apply this method anyway.
 Internal particles are created from a combination of particles.
* S-channel either are create from number [X,Y,Z are strictly bigger 
    than two and A,B,C are strictly bigger than one).
                 (1 A [X Y]> 1) =>forward
                 (X Y [Z]> X) => backward 
* T-channel are also produce either by 
                (1 X> 1) =>forward
                (2 X >2) => backward        
So the common rule is to check if the number is one or not.

define_line_orientation(self)

source code 

Define the line orientation. Use the following rules: Particles move timelike when anti-particles move anti-timelike.

inverse_part_antipart(self)

source code 

Pass particle into an anti-particle. This is needed for initial state particles (usually wrongly defined) and for some fermion flow resolution problem.

inverse_begin_end(self)

source code 

Invert the orientation of the line. This is needed to have correct fermion flow.

has_intersection(self, line)

source code 

Check if the two line intersects and returns status. A common vertex is not consider as an intersection. This routine first check input validity.

At current status this is use for test/debugging only.

_has_intersection(self, line)

source code 

Check if the two line intersects and returns status. A common vertex is not consider as an intersection.

At current status this is only use for test/debugging only.

is_end_point(self, x, y)

source code 

Check if 'x','y' are one of the end point coordinates of the line.

At current status this is use for test/debugging only.

domain_intersection(self, line, axis='x')

source code 

Returns x1,x2 where both line and self are defined. Returns None, None if this domain is empty. This routine contains self consistency check

At current status this is use for test/debugging only.

_domain_intersection(self, line, axis='x')

source code 

Returns x1,x2 where both line and self are defined. Returns None, None if this domain is empty. This routine doesn't contain self consistency check.

At current status this is use for debugging only.

border_on_axis(self, axis='x')

source code 

Returns the two value of the domain interval for the given axis.

At current status this is use for test/debugging only.

_intersection_with_vertical_line(self, line)

source code 

Checks if line intersect self. Line SHOULD be a vertical line and self COULDN'T. No test are done to check those conditions.

At current status this is use for test/debugging only.

check_position_exist(self)

source code 

Check that the begin-end position are defined.

At current status this is use for debugging only.

has_ordinate(self, x)

source code 

Returns the y associate to the x value in the line Raises FeynmanLineError if point outside interval or result not unique. This routines contains check consistency.

At current status this is use for debugging only.

_has_ordinate(self, x)

source code 

Returns the y associate to the x value in the line This routines doesn't contain check consistency.

At current status this is use for debugging only.