NAME

Physics::UEMColumn::Column - Class representing a column for the Physics::UEMColumn simulation

SYNOPSIS

use strict;
use warnings;

use Physics::UEMColumn alias => ':standard';

my $column = Column->new(
  length => '100 cm',
);

my $lens = MagneticLens->new(...);
$column->add_element($lens);

ATTRIBUTES

laser

Holder for an optional Physics::UEMColumn::Laser object. Predicate: has_laser.

accelerator

Holder for an optional Physics::UEMColumn::Accelerator object. Predicate: has_accelerator.

photocathode

Holder for an optional Physics::UEMColumn::Photocathode object. Predicate: has_photocathode.

elements

An array reference of all the elements in the column. This attribute should rarely be used directly, instead prefer the add_element method.

length

The length of the column. This value is required. This value defines then end of the simulation, in that when the pulse reaches the end of the column, the simulation is complete. Unit: meters.

METHODS

add_element

Pushes a given Physics::UEMColumn::Element object into the elements attribute. Takes one or more such elements.

can_make_pulse

Returns a true value if the column contains enough information to generate a pulse. This specifically means having all of a laser, accelerator, and photocathode objects. Note that should this method return false, a Physics::UEMColumn::Pulse object will have to be manually created and given to the main simulation object (see Physics::UEMColumn).

SOURCE REPOSITORY

http://github.com/jberger/Physics-UEMColumn

AUTHOR

Joel Berger, <joel.a.berger@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2012-2013 by Joel Berger

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.