00001 #ifndef DD_ALGO_PLUGIN_DD_ALGORITHM_H 00002 #define DD_ALGO_PLUGIN_DD_ALGORITHM_H 00003 00004 #include <vector> 00005 #include "DetectorDescription/Core/interface/DDLogicalPart.h" 00006 #include "DetectorDescription/Base/interface/DDException.h" 00007 #include "DetectorDescription/Base/interface/DDTypes.h" 00008 00009 class DDAlgorithmHandler; 00010 00012 class DDAlgorithm 00013 { 00014 friend class DDAlgorithmHandler; 00015 public: 00016 virtual ~DDAlgorithm (void); 00018 00023 virtual void initialize(const DDNumericArguments & nArgs, 00024 const DDVectorArguments & vArgs, 00025 const DDMapArguments & mArgs, 00026 const DDStringArguments & sArgs, 00027 const DDStringVectorArguments & vsArgs)=0; 00028 00030 00032 virtual void execute()=0; 00033 00035 const DDLogicalPart & parent() const { return parent_; } 00036 00037 protected: 00039 void setParent(const DDLogicalPart & parent) { parent_ = parent; } 00040 00042 DDLogicalPart parent_; 00043 }; 00044 00045 #endif // DD_ALGO_PLUGIN_DD_ALGORITHM_H