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

HBondShiftProcessor Class Reference
[Shift modules]

Shift assignment processor implementing the effect of hydrogen bonds. More...

#include <HBondShiftProcessor.h>

Inheritance diagram for HBondShiftProcessor:

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

Public Member Functions

Constructors and Destructors
 HBondShiftProcessor () throw ()
 Default constructor.
 HBondShiftProcessor (const HBondShiftProcessor &processor) throw ()
 Copy constructor.
virtual ~HBondShiftProcessor () throw ()
 Destructor.
Accessors
virtual void init () throw ()
 Initialization method.
Processor specific funtions.
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__HBOND_SHIFT

Protected Attributes

std::list< Atom * > donor_list_
 list of HBond donors collected by operator ()
std::list< Atom * > acceptor_list_
 list of HBond acceptors collected by operator ()
float a_
 slope of the linear relation for the chemical shift.
float b_
 zero value of the linear relation for the chemical shift.
float minimum_bond_length_
 minimum distance for an HBond.
float maximum_bond_length_
 maximum distance for an HBond.

Detailed Description

Shift assignment processor implementing the effect of hydrogen bonds.


Member Function Documentation

virtual bool HBondShiftProcessor::finish  )  throw () [virtual]
 

Finish method.

This method performs the chemical shift calculation. For each donor in donor_list_ , it looks for acceptors in the acceptor_list_ that lie inside a spherical shell of inner radius minimum_bond_length_ and outer radius maximum_bond_length_ with the donor in its center. Then, it calculates the bond length $x$ and calculates the chemical shift as $ delta_{HBond} = a*x + b $ The chemical shift is stored in the {acceptor} atom using the named property ShiftModule::PROPERTY__SHIFT and in the named property PROPERTY__HBOND_SHIFT .

Returns:
bool, false if parameters_ == 0

Reimplemented from ShiftModule.

virtual void HBondShiftProcessor::init  )  throw () [virtual]
 

Initialization method.

This method reads the parameter section "HBondEffect" and parses its contents. This section contains the parameters used to calculate the contribution of a hydrogen bond to the chemical shift. Right now, it is assumed that the effect is linear in the bond length and the slope a and the shift b are universal, that is the same for all kinds of hydrogen bonds.

Reimplemented from ShiftModule.

virtual Processor::Result HBondShiftProcessor::operator() Composite composite  )  throw () [virtual]
 

operator ().

This method adds all acceptors to the acceptor_list_ and all donors to the donor_list_.

Reimplemented from UnaryProcessor< Composite >.