File indexing completed on 2024-04-06 12:05:23
0001 #ifndef DD_ALGO_PLUGIN_DD_ALGORITHM_H
0002 #define DD_ALGO_PLUGIN_DD_ALGORITHM_H
0003
0004 #include "DetectorDescription/Core/interface/DDTypes.h"
0005 #include "DetectorDescription/Core/interface/DDCompactView.h"
0006 #include "DetectorDescription/Core/interface/DDLogicalPart.h"
0007 #include <vector>
0008
0009 class DDAlgorithmHandler;
0010 class DDCompactView;
0011
0012
0013 class DDAlgorithm {
0014 friend class DDAlgorithmHandler;
0015
0016 public:
0017 virtual ~DDAlgorithm() {}
0018
0019
0020
0021
0022
0023
0024
0025 virtual void initialize(const DDNumericArguments& nArgs,
0026 const DDVectorArguments& vArgs,
0027 const DDMapArguments& mArgs,
0028 const DDStringArguments& sArgs,
0029 const DDStringVectorArguments& vsArgs) = 0;
0030
0031
0032
0033
0034 virtual void execute(DDCompactView&) = 0;
0035
0036 protected:
0037
0038 const DDLogicalPart& parent() const { return parent_; }
0039
0040
0041 void setParent(const DDLogicalPart& parent) { parent_ = parent; }
0042
0043 private:
0044
0045 DDLogicalPart parent_;
0046 };
0047
0048 #endif