BALL::EFShiftProcessor Class Reference
[Shift modules]

Shift assignment processor implementing the electric field effect. More...

#include <EFShiftProcessor.h>

Inheritance diagram for BALL::EFShiftProcessor:
Inheritance graph
[legend]

List of all members.


Public Member Functions

Constructors and Destructors.
EFShiftProcessor ()
Default constructor.
EFShiftProcessor (const EFShiftProcessor &processor)
Copy constructor.
virtual ~EFShiftProcessor ()
Destructor.
Accessors.
virtual void init ()
Initialization method.
Processor specific functions.
virtual bool start ()
Processor start method.
virtual Processor::Result operator() (Composite &composite)
operator ().
virtual bool finish ()
Finish method.

Static Public Attributes

Enums and Constants
static const char * PROPERTY__EF_SHIFT
A symbolic name for the electric field contribution to the chemical shift.

Protected Attributes

std::list< Bond * > bond_list_
std::list< Atom * > effector_list_
std::vector< Expression > first_atom_expressions_
std::vector< Expression > second_atom_expressions_
std::vector< float > epsilon1_
std::vector< float > epsilon2_
StringHashMap< float > charge_map_
bool exclude_residue_field_
float cut_off2_

Detailed Description

Shift assignment processor implementing the electric field effect.

Member Function Documentation

virtual bool BALL::EFShiftProcessor::finish ( ) [virtual]

Finish method.

This method performs the chemical shift calculation. It iterates over all bonds stored in bond_list_ . If the two bond atoms match a pair of expressions from first_atom_expressions_ and second_atom_expressions_ , the electric field vector is calculated at the bond position using Coulomb's law and the charges and positions of the atoms in the effector_list_ . The chemical shift induced by the electric field effect is calculated as ${EF} = * E_z + * E^2 $ where constants $$ and $$ are read from the parameter file (section ElectricFieldEffect). The chemical shift is stored in the {first} atom using the named property ShiftModule::PROPERTY__SHIFT and in the named property PROPERTY__EF_SHIFT .

Returns:
bool, false if parameters_ == 0

Reimplemented from BALL::ShiftModule.

virtual void BALL::EFShiftProcessor::init ( ) [virtual]

Initialization method.

This method reads the parameter section ElectricFieldEffect and parses its contents. This section contains the definition of two expressions that define a bond (the first expression matches the atom whose shift is to be calculated, the second describes its bond partner). For each of these bonds, two parameters are given, $$ and $$.

Then, this method extracts the contents of the Charges section and thus constructs a hash map containing residue and atom names the corresponding charges. This processor is applied to all atoms in () operator () , so expect the atom charges to change!
See also:
operator ()

Reimplemented from BALL::ShiftModule.

virtual Processor::Result BALL::EFShiftProcessor::operator() ( Composite & composite ) [virtual]

operator ().

This method sets the charge for all atoms it encounters (using assign_charge_processor_ ). Charged atoms are stored in the atom list effector_list_ . All bonds are stored in bond_list_ .

Returns:
Processor::CONTINUE
Parameters:
composite an arbitrary composite. All non-atom objects are ignored.

Reimplemented from BALL::UnaryProcessor< Composite >.

virtual bool BALL::EFShiftProcessor::start ( ) [virtual]

Processor start method.

This method clears the bond and effector list. It fails if no parameters were assigned.

Returns:
bool, false if parameters_ == 0

Reimplemented from BALL::ShiftModule.


Member Data Documentation

A symbolic name for the electric field contribution to the chemical shift.

See also:
ShiftModule::PROPERTY__SHIFT

Generated on Thu Aug 6 18:30:39 2009 for BALL by doxygen 1.5.8