BALL::HBondShiftProcessor Class Reference
[Shift modules]

#include <BALL/NMR/HBondShiftProcessor.h>

Inheritance diagram for BALL::HBondShiftProcessor:
BALL::ShiftModule BALL::UnaryProcessor< Composite > BALL::UnaryFunctor< Composite, Processor::Result >

List of all members.


Public Member Functions

Constructors and Destructors
 HBondShiftProcessor ()
 HBondShiftProcessor (const HBondShiftProcessor &processor)
virtual ~HBondShiftProcessor ()
Accessors
virtual void init ()
Processor specific funtions.
virtual bool start ()
virtual Processor::Result operator() (Composite &composite)
virtual bool finish ()

Static Public Attributes

Enums and Constants
static const char * PROPERTY__HBOND_SHIFT

Protected Attributes

std::list< Atom * > donor_list_
std::list< Atom * > acceptor_list_
float a_
float b_
float minimum_bond_length_
float maximum_bond_length_

Detailed Description

Shift assignment processor implementing the effect of hydrogen bonds.


Constructor & Destructor Documentation

BALL::HBondShiftProcessor::HBondShiftProcessor (  ) 

Default constructor.

BALL::HBondShiftProcessor::HBondShiftProcessor ( const HBondShiftProcessor processor  ) 

Copy constructor.

virtual BALL::HBondShiftProcessor::~HBondShiftProcessor (  )  [virtual]

Destructor.


Member Function Documentation

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

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

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

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

Reimplemented from BALL::UnaryProcessor< Composite >.

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

Processor start method.

Reimplemented from BALL::ShiftModule.


Member Data Documentation

slope of the linear relation for the chemical shift.

list of HBond acceptors collected by operator ()

zero value of the linear relation for the chemical shift.

list of HBond donors collected by operator ()

maximum distance for an HBond.

minimum distance for an HBond.