00001 #ifndef DD_TECAxialCableAlgo_h 00002 #define DD_TECAxialCableAlgo_h 00003 00004 #include <map> 00005 #include <string> 00006 #include <vector> 00007 #include "DetectorDescription/Base/interface/DDTypes.h" 00008 #include "DetectorDescription/Algorithm/interface/DDAlgorithm.h" 00009 00010 class DDTECAxialCableAlgo : public DDAlgorithm { 00011 00012 public: 00013 //Constructor and Destructor 00014 DDTECAxialCableAlgo(); 00015 virtual ~DDTECAxialCableAlgo(); 00016 00017 void initialize(const DDNumericArguments & nArgs, 00018 const DDVectorArguments & vArgs, 00019 const DDMapArguments & mArgs, 00020 const DDStringArguments & sArgs, 00021 const DDStringVectorArguments & vsArgs); 00022 00023 void execute(DDCompactView& cpv); 00024 00025 private: 00026 00027 int n; //Number of copies 00028 double rangeAngle; //Range in angle 00029 double zStart; //Start z of the Service volume 00030 double zEnd; //End z ........ 00031 double rMin; //Minimum radius ........ 00032 double rMax; //Maximum radius ........ 00033 double width; //Angular width 00034 double thickR; //Thickness (along R) 00035 double thickZ; //Thickness (along Z) 00036 double dZ; //Offset along Z from the central point 00037 std::vector<double> startAngle; //Start angle 00038 std::vector<double> zPos; //Starting Z of the cables 00039 double delta; //Increment in phi 00040 00041 std::string idNameSpace; //Namespace of this and ALL sub-parts 00042 std::string childName; //Child name 00043 std::string matName; //Material name 00044 }; 00045 00046 #endif