#include <BALL/NMR/EFShiftProcessor.h>
Public Member Functions | |
Constructors and Destructors. | |
EFShiftProcessor () | |
EFShiftProcessor (const EFShiftProcessor &processor) | |
virtual | ~EFShiftProcessor () |
Accessors. | |
virtual void | init () |
Processor specific functions. | |
virtual bool | start () |
virtual Processor::Result | operator() (Composite &composite) |
virtual bool | finish () |
Static Public Attributes | |
Enums and Constants | |
static const char * | PROPERTY__EF_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_ |
Shift assignment processor implementing the electric field effect.
BALL::EFShiftProcessor::EFShiftProcessor | ( | ) |
Default constructor.
BALL::EFShiftProcessor::EFShiftProcessor | ( | const EFShiftProcessor & | processor | ) |
Copy constructor.
virtual BALL::EFShiftProcessor::~EFShiftProcessor | ( | ) | [virtual] |
Destructor.
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 .
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 $$.
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_ .
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.
parameters_ == 0
Reimplemented from BALL::ShiftModule.
std::list<Bond*> BALL::EFShiftProcessor::bond_list_ [protected] |
StringHashMap<float> BALL::EFShiftProcessor::charge_map_ [protected] |
float BALL::EFShiftProcessor::cut_off2_ [protected] |
std::list<Atom*> BALL::EFShiftProcessor::effector_list_ [protected] |
std::vector<float> BALL::EFShiftProcessor::epsilon1_ [protected] |
std::vector<float> BALL::EFShiftProcessor::epsilon2_ [protected] |
bool BALL::EFShiftProcessor::exclude_residue_field_ [protected] |
std::vector<Expression> BALL::EFShiftProcessor::first_atom_expressions_ [protected] |
const char* BALL::EFShiftProcessor::PROPERTY__EF_SHIFT [static] |
A symbolic name for the electric field contribution to the chemical shift.
std::vector<Expression> BALL::EFShiftProcessor::second_atom_expressions_ [protected] |