Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members

EFShiftProcessor Class Reference
[Shift modules]

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

#include <EFShiftProcessor.h>

Inheritance diagram for EFShiftProcessor:

ShiftModule UnaryProcessor< Composite > UnaryFunctor< Composite, Processor::Result > List of all members.

Public Member Functions

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

Static Public Attributes

Enums and Constants
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< Expressionfirst_atom_expressions_
std::vector< Expressionsecond_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.


Constructor & Destructor Documentation

EFShiftProcessor::EFShiftProcessor  )  throw ()
 

Default constructor.

EFShiftProcessor::EFShiftProcessor const EFShiftProcessor processor  )  throw ()
 

Copy constructor.

virtual EFShiftProcessor::~EFShiftProcessor  )  throw () [virtual]
 

Destructor.


Member Function Documentation

virtual bool EFShiftProcessor::finish  )  throw () [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 ShiftModule.

virtual void EFShiftProcessor::init  )  throw () [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 ShiftModule.

virtual Processor::Result EFShiftProcessor::operator() Composite composite  )  throw () [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 UnaryProcessor< Composite >.

virtual bool EFShiftProcessor::start  )  throw () [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 ShiftModule.


Member Data Documentation

const char* EFShiftProcessor::PROPERTY__EF_SHIFT [static]
 

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

See also:
ShiftModule::PROPERTY__SHIFT