00001
00002 #ifndef DD_TECModuleAlgo_h
00003 #define DD_TECModuleAlgo_h
00004
00005 #include <map>
00006 #include <string>
00007 #include <vector>
00008 #include "DetectorDescription/Base/interface/DDTypes.h"
00009 #include "DetectorDescription/Algorithm/interface/DDAlgorithm.h"
00010
00011 class DDTECModuleAlgo : public DDAlgorithm {
00012 public:
00013
00014 DDTECModuleAlgo();
00015 virtual ~DDTECModuleAlgo();
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 void doPos( DDLogicalPart toPos, DDLogicalPart mother, int copyNr,
00028 double x, double y, double z,
00029 std::string rotName);
00030 void doPos( DDLogicalPart toPos,
00031 double x, double y, double z,
00032 std::string rotName);
00033
00034 double noOverlapShift;
00035 int ringNo;
00036 bool isStereo;
00037 bool isRing6;
00038 double rPos;
00039 double posCorrectionPhi;
00040 std::string standardRot;
00041 std::string idNameSpace;
00042 std::string genMat;
00043 double moduleThick;
00044 double detTilt;
00045 double fullHeight;
00046 double dlTop;
00047 double dlBottom;
00048 double dlHybrid;
00049 double frameWidth;
00050 double frameThick;
00051 double frameOver;
00052 std::string topFrameMat;
00053 double topFrameHeight;
00054 double topFrameThick;
00055 double topFrameTopWidth;
00056 double topFrameBotWidth;
00057 double topFrame2Width;
00058 double topFrame2LHeight;
00059 double topFrame2RHeight;
00060 double topFrameZ;
00061 std::string sideFrameMat;
00062 double sideFrameThick;
00063 double sideFrameLWidth;
00064 double sideFrameLWidthLow;
00065 double sideFrameLHeight;
00066 double sideFrameLtheta;
00067 double sideFrameRWidth;
00068 double sideFrameRWidthLow;
00069 double sideFrameRHeight;
00070 double sideFrameRtheta;
00071 std::vector<double> siFrSuppBoxWidth;
00072 std::vector<double> siFrSuppBoxHeight;
00073 std::vector<double> siFrSuppBoxYPos;
00074 double sideFrameZ;
00075 double siFrSuppBoxThick;
00076 std::string siFrSuppBoxMat;
00077 std::string waferMat;
00078 double waferPosition;
00079 double sideWidthTop;
00080 double sideWidthBottom;
00081 std::string waferRot;
00082 std::string activeMat;
00083 double activeHeight;
00084 double waferThick;
00085 std::string activeRot;
00086 double activeZ;
00087 double backplaneThick;
00088 double inactiveDy;
00089 double inactivePos;
00090 std::string inactiveMat;
00091 std::string hybridMat;
00092 double hybridHeight;
00093 double hybridWidth;
00094 double hybridThick;
00095 double hybridZ;
00096 std::string pitchMat;
00097 double pitchWidth;
00098 double pitchHeight;
00099 double pitchThick;
00100 double pitchZ;
00101 std::string pitchRot;
00102 std::string bridgeMat;
00103 double bridgeWidth;
00104 double bridgeThick;
00105 double bridgeHeight;
00106 double bridgeSep;
00107 std::vector<double> siReenforceHeight;
00108 std::vector<double> siReenforceWidth;
00109 std::vector<double> siReenforceYPos;
00110
00111 double siReenforceThick;
00112 std::string siReenforceMat;
00113
00114 };
00115
00116 #endif