BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Protected Attributes | List of all members
BALL::EFShiftProcessor Class Reference

#include <BALL/NMR/EFShiftProcessor.h>

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

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 ()
 
- Public Member Functions inherited from BALL::ShiftModule
 ShiftModule ()
 
 ShiftModule (Parameters &parameters, const String &name="")
 
 ShiftModule (const ShiftModule &module)
 
virtual ~ShiftModule ()
 
virtual void clear ()
 
const ShiftModuleoperator= (const ShiftModule &module)
 
void setName (const String &name)
 
const StringgetName () const
 
void setParameters (Parameters &parameters)
 
const ParametersgetParameters () 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
 

Protected Attributes

std::vector< std::pair< Atom
*, Atom * > > 
bond_list_
 
std::vector< Indexexpression_number_
 
std::list< Atom * > effector_list_
 
std::vector< Expressionfirst_atom_expressions_
 
std::vector< Expressionsecond_atom_expressions_
 
std::vector< floatepsilon1_
 
std::vector< floatepsilon2_
 
StringHashMap< floatcharge_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_
 
- Protected Attributes inherited from BALL::ShiftModule
String module_name_
 
Parametersparameters_
 
bool valid_
 

Additional Inherited Members

- Public Types inherited from BALL::UnaryFunctor< Composite, Processor::Result >
typedef Processor::Result result_type
 
typedef Composite argument_type
 
typedef Compositeargument_reference
 
typedef const Compositeconst_argument_reference
 
typedef Compositeargument_pointer
 
typedef const Compositeconst_argument_pointer
 

Detailed Description

Shift assignment processor implementing the electric field effect.

Definition at line 25 of file EFShiftProcessor.h.

Constructor & Destructor Documentation

BALL::EFShiftProcessor::EFShiftProcessor ( )

Default constructor.

BALL::EFShiftProcessor::EFShiftProcessor ( const EFShiftProcessor processor)

Copy constructor.

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

Destructor.

Member Function Documentation

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 ${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 .

Returns
bool, false if parameters_ == 0

Reimplemented from BALL::ShiftModule.

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.

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 >.

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

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

Definition at line 147 of file EFShiftProcessor.h.

bool BALL::EFShiftProcessor::carbonyl_influences_amide_field_
protected

Definition at line 196 of file EFShiftProcessor.h.

float BALL::EFShiftProcessor::charge_factor_
protected

Definition at line 227 of file EFShiftProcessor.h.

StringHashMap<float> BALL::EFShiftProcessor::charge_map_
protected

Definition at line 175 of file EFShiftProcessor.h.

float BALL::EFShiftProcessor::cut_off2_
protected

Definition at line 214 of file EFShiftProcessor.h.

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

Definition at line 155 of file EFShiftProcessor.h.

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

Definition at line 167 of file EFShiftProcessor.h.

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

Definition at line 171 of file EFShiftProcessor.h.

bool BALL::EFShiftProcessor::exclude_adjacent_residue_field_
protected

Definition at line 189 of file EFShiftProcessor.h.

bool BALL::EFShiftProcessor::exclude_residue_field_
protected

Definition at line 182 of file EFShiftProcessor.h.

bool BALL::EFShiftProcessor::exclude_solvent_field_
protected

Definition at line 204 of file EFShiftProcessor.h.

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

Definition at line 151 of file EFShiftProcessor.h.

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

Definition at line 159 of file EFShiftProcessor.h.

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.

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

Definition at line 163 of file EFShiftProcessor.h.