00001 #ifndef HcalAlgo_DDHCalTBCableAlgo_h 00002 #define HcalAlgo_DDHCalTBCableAlgo_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 DDHCalTBCableAlgo : public DDAlgorithm { 00011 public: 00012 //Constructor and Destructor 00013 DDHCalTBCableAlgo(); //const std::string & name); 00014 virtual ~DDHCalTBCableAlgo(); 00015 00016 void initialize(const DDNumericArguments & nArgs, 00017 const DDVectorArguments & vArgs, 00018 const DDMapArguments & mArgs, 00019 const DDStringArguments & sArgs, 00020 const DDStringVectorArguments & vsArgs); 00021 00022 void execute(DDCompactView& cpv); 00023 00024 private: 00025 00026 std::string genMat; //General material 00027 int nsectors; //Number of potenital straight edges 00028 int nsectortot; //Number of straight edges (actual) 00029 int nhalf; //Number of half modules 00030 double rin; //(see Figure of hcalbarrel) 00031 std::vector<double> theta; // .... (in degrees) 00032 std::vector<double> rmax; // .... 00033 std::vector<double> zoff; // .... 00034 std::string absMat; //Absorber material 00035 double thick; //Thickness of absorber 00036 double width1, length1; //Width, length of absorber type 1 00037 double width2, length2; //Width, length of absorber type 2 00038 double gap2; //Gap between abosrbers of type 2 00039 00040 std::string idName; //Name of the "parent" volume. 00041 std::string idNameSpace; //Namespace of this and ALL sub-parts 00042 std::string rotns; //Namespace for rotation matrix 00043 }; 00044 00045 #endif