00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: haighMallionShiftProcessor.h,v 1.16 2005/12/23 17:01:56 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_COMMON_H 00008 # include <BALL/common.h> 00009 #endif 00010 00011 #ifndef BALL_CONCEPT_PROCESSOR_H 00012 # include <BALL/CONCEPT/processor.h> 00013 #endif 00014 00015 #ifndef BALL_NMR_SHIFT_MODULE_H 00016 # include<BALL/NMR/shiftModule.h> 00017 #endif 00018 00019 #include <list> 00020 00021 namespace BALL 00022 { 00026 class BALL_EXPORT HaighMallionShiftProcessor 00027 : public ShiftModule 00028 { 00029 public: 00030 00031 BALL_CREATE(HaighMallionShiftProcessor) 00032 00033 00036 00040 static const char* PROPERTY__RING_CURRENT_SHIFT; 00041 00043 00046 00049 HaighMallionShiftProcessor(); 00050 00053 virtual ~HaighMallionShiftProcessor(); 00054 00056 00059 00079 virtual bool finish(); 00080 00085 virtual Processor::Result operator () (Composite& atom); 00086 00088 00091 00094 virtual void init(); 00095 00097 00098 private: 00099 00100 std::list<Atom*> proton_list_; 00101 std::list<Residue*> aromat_list_; 00102 String **asrings_; 00103 00104 static const float big_loop_radius_; 00105 static const float little_loop_radius_; 00106 static const float B_; 00107 }; 00108 00109 } // namespace BALL 00110