![]() |
![]() |
00001 #ifndef DD_TIBLayerAlgo_h 00002 #define DD_TIBLayerAlgo_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 : public DDAlgorithm { 00011 public: 00012 //Constructor and Destructor 00013 DDTIBLayerAlgo(); 00014 virtual ~DDTIBLayerAlgo(); 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(); 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 00031 double radiusLo; //Radius for detector at lower level 00032 double phioffLo; //Phi offset ...... 00033 int stringsLo; //Number of strings ...... 00034 std::string detectorLo; //Detector string name ...... 00035 00036 double radiusUp; //Radius for detector at upper level 00037 double phioffUp; //Phi offset ...... 00038 int stringsUp; //Number of strings ...... 00039 std::string detectorUp; //Detector string name ...... 00040 00041 double cylinderT; //Cylinder thickness 00042 double cylinderInR; //Cylinder inner radius 00043 std::string cylinderMat; //Cylinder material 00044 double MFRingInR; //Inner Manifold Ring Inner Radius 00045 double MFRingOutR; //Outer Manifold Ring Outer Radius 00046 double MFRingT; //Manifold Ring Thickness 00047 double MFRingDz; //Manifold Ring Half Lenght 00048 std::string MFIntRingMat; //Manifold Ring Material 00049 std::string MFExtRingMat; //Manifold Ring Material 00050 00051 double supportT; //Cylinder barrel CF skin thickness 00052 00053 std::string centMat; //Central rings material 00054 std::vector<double> centRing1par; //Central rings parameters 00055 std::vector<double> centRing2par; //Central rings parameters 00056 00057 std::string fillerMat; //Filler material 00058 double fillerDz; //Filler Half Length 00059 00060 std::string ribMat; //Rib material 00061 std::vector<double> ribW; //Rib width 00062 std::vector<double> ribPhi; //Rib Phi position 00063 00064 std::vector<double> dohmListFW; //DOHM/AUX positions in #strings FW 00065 std::vector<double> dohmListBW; //DOHM/AUX positions in #strings BW 00066 00067 double dohmtoMF; //DOHM Distance to MF 00068 double dohmCarrierPhiOff; //DOHM Carrier Phi offset wrt horizontal 00069 std::string dohmPrimName; //DOHM Primary Logical Volume name 00070 std::string dohmAuxName; //DOHM Auxiliary Logical Volume name 00071 00072 std::string dohmCarrierMaterial;//DOHM Carrier Material 00073 std::string dohmCableMaterial; //DOHM Cable Material 00074 double dohmPrimL; //DOHM PRIMary Length 00075 std::string dohmPrimMaterial; //DOHM PRIMary Material 00076 double dohmAuxL; //DOHM AUXiliary Length 00077 std::string dohmAuxMaterial; //DOHM AUXiliary Material 00078 00079 std::string pillarMaterial; //Pillar Material 00080 00081 double fwIntPillarDz; //Internal pillar parameters 00082 double fwIntPillarDPhi; 00083 std::vector<double> fwIntPillarZ; 00084 std::vector<double> fwIntPillarPhi; 00085 double bwIntPillarDz; 00086 double bwIntPillarDPhi; 00087 std::vector<double> bwIntPillarZ; 00088 std::vector<double> bwIntPillarPhi; 00089 00090 double fwExtPillarDz; //External pillar parameters 00091 double fwExtPillarDPhi; 00092 std::vector<double> fwExtPillarZ; 00093 std::vector<double> fwExtPillarPhi; 00094 double bwExtPillarDz; 00095 double bwExtPillarDPhi; 00096 std::vector<double> bwExtPillarZ; 00097 std::vector<double> bwExtPillarPhi; 00098 }; 00099 00100 #endif