CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/Geometry/TrackerCommonData/plugins/DDTECModuleAlgo.h

Go to the documentation of this file.
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   //Constructor and Destructor
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(DDCompactView& cpv);
00024 
00025 private:
00026   //this positions  toPos in mother
00027   void doPos( DDLogicalPart toPos,  DDLogicalPart mother, int copyNr,
00028               double x, double y, double z, 
00029               std::string rotName, DDCompactView& cpv);                     
00030   void doPos( DDLogicalPart toPos,
00031               double x, double y, double z, 
00032               std::string rotName, DDCompactView& cpv);                     
00033   //variables:
00034   double                   noOverlapShift;
00035   int                      ringNo;
00036   bool                     isStereo; 
00037   bool                     isRing6;
00038   double                   rPos;           //Position in R relativ to the center of the TEC ( this is the coord-sys of Tubs)
00039   double                   posCorrectionPhi; // the Phi position of the stereo Modules has to be corrected
00040   std::string              standardRot;    //Rotation that aligns the mother(Tub ) coordinate System with the components
00041   std::string              idNameSpace;    //Namespace of this and ALL parts
00042   std::string              genMat;         //General material name
00043   double                   moduleThick;    //Module thickness
00044   double                   detTilt;        //Tilt of stereo detector
00045   double                   fullHeight;     //Height 
00046   double                   dlTop;          //Width at top of wafer
00047   double                   dlBottom;       //Width at bottom of wafer
00048   double                   dlHybrid;       //Width at the hybrid end
00049   double                   frameWidth;     //Frame         width
00050   double                   frameThick;     //              thickness
00051   double                   frameOver;      //              overlap (on sides)
00052   std::string              topFrameMat;    //Top frame     material
00053   double                   topFrameHeight; //              height
00054   double                   topFrameThick;  //              thickness
00055   double                   topFrameTopWidth;//             Width at the top
00056   double                   topFrameBotWidth;//             Width at the bottom
00057   double                   topFrame2Width;  //  Stereo:2ndPart   Width
00058   double                   topFrame2LHeight;//             left  height
00059   double                   topFrame2RHeight;//             right height
00060   double                   topFrameZ;      //              z-positions
00061   std::string              sideFrameMat;   //Side frame    material
00062   double                   sideFrameThick; //              thickness
00063   double                   sideFrameLWidth; //    Left     Width (for stereo modules upper one)
00064   double                   sideFrameLWidthLow;//           Width (only for stereo modules: lower Width)
00065   double                   sideFrameLHeight;//             Height
00066   double                   sideFrameLtheta;//              angle of the trapezoid shift
00067   double                   sideFrameRWidth; //    Right    Width (for stereo modules upper one)
00068   double                   sideFrameRWidthLow;//           Width (only for stereo modules: lower Width)
00069   double                   sideFrameRHeight;//             Height
00070   double                   sideFrameRtheta;//              angle of the trapezoid shift
00071   std::vector<double>      siFrSuppBoxWidth;//    Supp.Box Width
00072   std::vector<double>      siFrSuppBoxHeight;//            Height
00073   std::vector<double>      siFrSuppBoxYPos;//              y-position of the supplies box (with HV an thermal sensor...)
00074   double                   sideFrameZ;     //              z-positions
00075   double                   siFrSuppBoxThick;//             thickness
00076   std::string              siFrSuppBoxMat; //              material
00077   std::string              waferMat;       //Wafer         material
00078   double                   waferPosition;  //              position of the wafer (was formaly done by adjusting topFrameHeigt)
00079   double                   sideWidthTop;   //              widths on the side Top
00080   double                   sideWidthBottom;//                                 Bottom
00081   std::string              waferRot;       //              rotation matrix
00082   std::string              activeMat;      //Sensitive     material
00083   double                   activeHeight;   //              height
00084   double                   waferThick;     //              wafer thickness (active = wafer - backplane)
00085   std::string              activeRot;      //              Rotation matrix
00086   double                   activeZ;        //              z-positions
00087   double                   backplaneThick; //              thickness
00088   double                   inactiveDy;     //InactiveStrip  Hight of ( rings > 3)
00089   double                   inactivePos;    //               y-Position 
00090   std::string              inactiveMat;    //               material
00091   std::string              hybridMat;      //Hybrid        material
00092   double                   hybridHeight;   //              height
00093   double                   hybridWidth;    //              width
00094   double                   hybridThick;    //              thickness
00095   double                   hybridZ;        //              z-positions
00096   std::string              pitchMat;       //Pitch adapter material
00097   double                   pitchWidth;     //              width
00098   double                   pitchHeight;    //              height
00099   double                   pitchThick;     //              thickness
00100   double                   pitchZ;         //              z-positions
00101   std::string              pitchRot;       //              rotation matrix
00102   std::string              bridgeMat;      //Bridge        material
00103   double                   bridgeWidth;    //              width 
00104   double                   bridgeThick;    //              thickness
00105   double                   bridgeHeight;   //              height
00106   double                   bridgeSep;      //              separation
00107   std::vector<double>      siReenforceHeight;// SiReenforcement Height
00108   std::vector<double>      siReenforceWidth;//             Width
00109   std::vector<double>      siReenforceYPos;//              Y - Position
00110   //  double                   siReenforceZPos;//              Z - Position done by the side frames Z Position an t
00111   double                   siReenforceThick;//             Thick
00112   std::string              siReenforceMat;  //             Materieal
00113   //double                   posCorrectionR;  //  Correct Positions of the Stereo Modules radial coordinate
00114 };
00115 
00116 #endif