00001 #ifndef DD_TIBLayerAlgo_MTCC_h 00002 #define DD_TIBLayerAlgo_MTCC_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 DDTIBLayerAlgo_MTCC : public DDAlgorithm { 00011 public: 00012 //Constructor and Destructor 00013 DDTIBLayerAlgo_MTCC(); 00014 virtual ~DDTIBLayerAlgo_MTCC(); 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 idNameSpace; //Namespace of this and ALL parts 00027 std::string genMat; //General material name 00028 double detectorTilt; //Detector Tilt 00029 double layerL; //Length of the layer 00030 double detectorTol; //Tolerance 00031 double detectorW; //Width of detector layer 00032 double detectorT; //Thickness ......... 00033 double coolTubeW; //Width of layer with cable+cool 00034 double coolTubeT; //Thickness ......... 00035 00036 double radiusLo; //Radius for detector at lower level 00037 double phioffLo; //Phi offset ...... 00038 double phiMinLo; //Phi minimum ...... 00039 double phiMaxLo; //Phi maximum ...... 00040 int stringsLo; //Number of strings ...... 00041 std::vector<double> stringLoList; //List of strings to fill ...... 00042 std::string detectorLo; //Detector string name ...... 00043 std::string emptyDetectorLo; //Empty Detector string name ...... 00044 double roffDetLo; //Radial offset ...... 00045 std::string coolCableLo; //Cable+Cool name ...... 00046 std::string emptyCoolCableLo; //Empty Cable+Cool name ...... 00047 double roffCableLo; //Radial offset ...... 00048 00049 double radiusUp; //Radius for detector at upper level 00050 double phioffUp; //Phi offset ...... 00051 double phiMinUp; //Phi minimum ...... 00052 double phiMaxUp; //Phi maximum ...... 00053 int stringsUp; //Number of strings ...... 00054 std::vector<double> stringUpList; //List of strings to fill ...... 00055 std::string detectorUp; //Detector string name ...... 00056 std::string emptyDetectorUp; //Empty Detector string name ...... 00057 double roffDetUp; //Radial offset ...... 00058 std::string coolCableUp; //Cable+Cool name ...... 00059 std::string emptyCoolCableUp; //Empty Cable+Cool name ...... 00060 double roffCableUp; //Radial offset ...... 00061 00062 double cylinderT; //Cylinder thickness 00063 std::string cylinderMat; //Cylinder material 00064 double supportW; //Support wall width 00065 double supportT; //Support wall thickness 00066 std::string supportMat; //Support wall material 00067 std::string ribMat; //Rib material 00068 std::vector<double> ribW; //Rib width 00069 std::vector<double> ribPhi; //Rib Phi position 00070 00071 int dohmN; //Number of phi sectors for DOHMs 00072 std::vector<double> dohmList; //List of DOHMs 00073 double dohmCarrierW; //DOHM Carrier Width 00074 double dohmCarrierT; //DOHM Carrier Thickness 00075 double dohmCarrierR; //DOHM Carrier Radial Height 00076 std::string dohmCarrierMaterial;//DOHM Carrier Material 00077 std::string dohmCableMaterial; //DOHM Cable Material 00078 double dohmPrimW; //DOHM PRIMary Width 00079 double dohmPrimL; //DOHM PRIMary Length 00080 double dohmPrimT; //DOHM PRIMary Thickness 00081 std::string dohmPrimMaterial; //DOHM PRIMary Material 00082 double dohmAuxW; //DOHM AUXiliary Width 00083 double dohmAuxL; //DOHM AUXiliary Length 00084 double dohmAuxT; //DOHM AUXiliary Thickness 00085 std::string dohmAuxMaterial; //DOHM AUXiliary Material 00086 00087 }; 00088 00089 #endif