#include <haighMallionShiftProcessor.h>
Public Member Functions |
|
Constructors and Destructors
|
|
HaighMallionShiftProcessor () | |
Default constructor. |
|
virtual | ~HaighMallionShiftProcessor () |
Destructor. |
|
Processor specific functions.
|
|
virtual bool | finish () |
Finish method. |
|
virtual Processor::Result | operator() (Composite &atom) |
Application method Works as a
collector: It stores the systems aromatic rings in a list
called aromat_list_ and each proton in a list called
proton_list_. |
|
Accessors
|
|
virtual void | init () |
Initialization method. |
|
Static Public Attributes |
|
Enums and Constants
|
|
static const char * | PROPERTY__RING_CURRENT_SHIFT |
A symbolic name for the ring current
contribution to the chemical shift. |
virtual bool BALL::HaighMallionShiftProcessor::finish | ( | ) | [virtual] |
Finish method.
Here the work is done: The funcion iterates over all systems's protons by iterating through proton_list_. Then for each proton every ring in aromat_list_ is accessed. The actual ring's ringplane and it's area is calculated. Iterating over every bond of the aromatic ring, the triangle areas are calculated with: The bond's two atoms and the actual proton's projection onto the ringplane. It is important to state that these areas are signed areas, depending on wether there is a right handed system between the plane's normal vector and the difference vectors from the projection to the two bond's atoms. Next the protons distances to the actual two bond's atoms are calculated and stored in a_first and a_second. Then ts is calculated : $ ts = f * (1/a_{first}^3 + 1/a_{second}) $ with f as the actual tringle area. For every bond of the ring this partial sum is calculated , added and stored in gs. Just some constant factor B and the chemical shift using Haigh Mallions Model is done. Important note: Distances are expressed in terms of the actual ring's diameter. Triangle areas are expressed in terms of the actual ring's area.
Reimplemented from BALL::ShiftModule.
const char*
BALL::HaighMallionShiftProcessor::PROPERTY__RING_CURRENT_SHIFT
[static] |
A symbolic name for the ring current contribution to the chemical shift.