00001 #ifndef DD_TIDAxialCableAlgo_h 00002 #define DD_TIDAxialCableAlgo_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 DDTIDAxialCableAlgo : public DDAlgorithm { 00011 00012 public: 00013 //Constructor and Destructor 00014 DDTIDAxialCableAlgo(); 00015 virtual ~DDTIDAxialCableAlgo(); 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(); 00024 00025 private: 00026 00027 double zBend; //Start z (at bending)........ 00028 double zEnd; //End z ........ 00029 double rMin; //Minimum radius ........ 00030 double rMax; //Maximum radius ........ 00031 double rTop; //Maximum radius (top)........ 00032 double width; //Angular width 00033 double thick; //Thickness 00034 std::vector<double> angles; //Phi Angles 00035 std::vector<double> zposWheel; //Z position of wheels 00036 std::vector<double> zposRing; //Z position of rings inside wheels 00037 00038 std::string idNameSpace; //Namespace of this and ALL sub-parts 00039 std::string childName; //Child name 00040 std::string matIn; //Material name (for inner parts) 00041 std::string matOut; //Material name (for outer part) 00042 }; 00043 00044 #endif