Loading...
Searching...
No Matches
BALL::EFShiftProcessor Class Reference
Molecular Modeling » Nuclear Magnetic Resonance Spectroscopy » Shift modules

`#include <BALL/NMR/EFShiftProcessor.h>`

Inheritance diagram for BALL::EFShiftProcessor:

## Public Member Functions

Constructors and Destructors.
| EFShiftProcessor ()
| EFShiftProcessor (const EFShiftProcessor &processor)
virtual | ~EFShiftProcessor ()
Accessors.
virtual void | init ()
Public Member Functions inherited from BALL::ShiftModule
| ShiftModule ()
| ShiftModule (Parameters &parameters, const String &name="")
| ShiftModule (const ShiftModule &module)
virtual | ~ShiftModule ()
virtual void | clear ()
const ShiftModule & | operator= (const ShiftModule &module)
void | setName (const String &name)
const String & | getName () const
void | setParameters (Parameters &parameters)
const Parameters * | getParameters () const
bool | isValid () const
Public Member Functions inherited from BALL::UnaryProcessor< Composite >
| UnaryProcessor ()
| UnaryProcessor (const UnaryProcessor &)
virtual | ~UnaryProcessor ()

## Static Public Attributes

Enums and Constants
static const char * | PROPERTY__EF_SHIFT
Static Public Attributes inherited from BALL::ShiftModule
static const char * | PROPERTY__SHIFT
static const char * | PROPERTY__EXPERIMENTAL__SHIFT

## Processor specific functions.

std::vector< std::pair< Atom *, Atom * > > | bond_list_
std::vector< Index > | expression_number_
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_
bool | exclude_adjacent_residue_field_
bool | carbonyl_influences_amide_field_
bool | exclude_solvent_field_
float | cut_off2_
float | charge_factor_
virtual bool | start ()
virtual Processor::Result | operator() (Composite &composite)
virtual bool | finish ()

## Additional Inherited Members

Public Types inherited from BALL::UnaryFunctor< ArgumentType, ResultType >
typedef ResultType | result_type
typedef ArgumentType | argument_type
typedef ArgumentType & | argument_reference
typedef const ArgumentType & | const_argument_reference
typedef ArgumentType * | argument_pointer
typedef const ArgumentType * | const_argument_pointer
String | module_name_
Parameters * | parameters_
bool | valid_

## Detailed Description

Shift assignment processor implementing the electric field effect.

Definition at line 25 of file EFShiftProcessor.h.

## Constructor & Destructor Documentation

## EFShiftProcessor() [1/2]

BALL::EFShiftProcessor::EFShiftProcessor | ( |  | ) |

Default constructor.

## EFShiftProcessor() [2/2]

BALL::EFShiftProcessor::EFShiftProcessor | ( | const EFShiftProcessor & | processor | ) |

Copy constructor.

## ~EFShiftProcessor()

virtual BALL::EFShiftProcessor::~EFShiftProcessor | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## finish()

virtual bool BALL::EFShiftProcessor::finish | ( |  | ) |

virtual

Processor 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 $\delta_{EF} = \varepsilon_1 * E_z + \varepsilon_2 * E^2 $ where constants $\varepsilon_1$ and $\varepsilon_2$ are read from the parameter file (section ElectricFieldEffect). The chemical shift is stored in the \emph{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.

## init()

virtual void BALL::EFShiftProcessor::init | ( |  | ) |

virtual

Parameter initalization. Use this method to implement the extraction and initialization of the module's parameters. init is called by ShiftModel as soon as the ShiftModule is constructed and parameters and name are assigned.

  All implementations in derived classes should set the valid_ flag to true if the initialization was successful and to false otherwise.

Reimplemented from BALL::ShiftModule.

## operator()()

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

virtual

Processor operator (). This method sets the charges for all atoms it encounters. The charges are given are given in parameter file (section Charges). Charged atoms are stored in the atom list effector_list_ . All tentative target bonds, specified in the parameter file (section ElectricFieldEffect), are stored in bond_list_ .

Returns
  Processor::CONTINUE

Reimplemented from BALL::UnaryProcessor< Composite >.

## start()

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

## bond_list_

std::vector<std::pair<Atom*, Atom*> > BALL::EFShiftProcessor::bond_list_

protected

Definition at line 147 of file EFShiftProcessor.h.

## carbonyl_influences_amide_field_

bool BALL::EFShiftProcessor::carbonyl_influences_amide_field_

protected

Definition at line 196 of file EFShiftProcessor.h.

## charge_factor_

float BALL::EFShiftProcessor::charge_factor_

protected

Definition at line 227 of file EFShiftProcessor.h.

## charge_map_

StringHashMap<float> BALL::EFShiftProcessor::charge_map_

protected

Definition at line 175 of file EFShiftProcessor.h.

## cut_off2_

float BALL::EFShiftProcessor::cut_off2_

protected

Definition at line 214 of file EFShiftProcessor.h.

## effector_list_

std::list<Atom*> BALL::EFShiftProcessor::effector_list_

protected

Definition at line 155 of file EFShiftProcessor.h.

## epsilon1_

std::vector<float> BALL::EFShiftProcessor::epsilon1_

protected

Definition at line 167 of file EFShiftProcessor.h.

## epsilon2_

std::vector<float> BALL::EFShiftProcessor::epsilon2_

protected

Definition at line 171 of file EFShiftProcessor.h.

## exclude_adjacent_residue_field_

bool BALL::EFShiftProcessor::exclude_adjacent_residue_field_

protected

Definition at line 189 of file EFShiftProcessor.h.

## exclude_residue_field_

bool BALL::EFShiftProcessor::exclude_residue_field_

protected

Definition at line 182 of file EFShiftProcessor.h.

## exclude_solvent_field_

bool BALL::EFShiftProcessor::exclude_solvent_field_

protected

Definition at line 204 of file EFShiftProcessor.h.

## expression_number_

std::vector<Index> BALL::EFShiftProcessor::expression_number_

protected

Definition at line 151 of file EFShiftProcessor.h.

## first_atom_expressions_

std::vector<Expression> BALL::EFShiftProcessor::first_atom_expressions_

protected

Definition at line 159 of file EFShiftProcessor.h.

## PROPERTY__EF_SHIFT

const char* BALL::EFShiftProcessor::PROPERTY__EF_SHIFT

static

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

See also
  ShiftModule::PROPERTY__SHIFT

Definition at line 39 of file EFShiftProcessor.h.

## second_atom_expressions_

std::vector<Expression> BALL::EFShiftProcessor::second_atom_expressions_

protected

Definition at line 163 of file EFShiftProcessor.h.