CMS 3D CMS Logo

DDTOBRodAlgo.h

Go to the documentation of this file.
00001 #ifndef DD_TOBRodAlgo_h
00002 #define DD_TOBRodAlgo_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 DDTOBRodAlgo : public DDAlgorithm {
00011  public:
00012   //Constructor and Destructor
00013   DDTOBRodAlgo(); 
00014   virtual ~DDTOBRodAlgo();
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              central;        // Name of the central piece
00027   std::string              idNameSpace;    // Namespace of this and ALL sub-parts
00028                                               
00029   double                   shift;          // Shift in z
00030   std::vector<std::string> sideRod;        // Name of the Side Rod
00031   std::vector<double>      sideRodX;       // x-positions
00032   std::vector<double>      sideRodY;       // y-positions
00033   std::vector<double>      sideRodZ;       // z-positions
00034   std::string              endRod1;        // Name of the End Rod of type 1
00035   std::vector<double>      endRod1Y;       // y-positions
00036   std::vector<double>      endRod1Z;       // z-positions
00037   std::string              endRod2;        // Name of the End Rod of type 2
00038   double                   endRod2Y;       // y-position
00039   double                   endRod2Z;       // z-position
00040                                               
00041   std::string              cable;          // Name of the Mother cable
00042   double                   cableZ;         // z-position
00043                                               
00044   std::string              clamp;          // Name of the clamp
00045   std::vector<double>      clampX;         // x-positions
00046   std::vector<double>      clampZ;         // z-positions
00047   std::string              sideCool;       // Name of the Side Cooling Tube
00048   std::vector<double>      sideCoolX;      // x-positions
00049   std::vector<double>      sideCoolY;      // y-positions to avoid overlap with the module (be at the same level of EndCool)
00050   std::vector<double>      sideCoolZ;      // z-positions
00051   std::string              endCool;        // Name of the End Cooling Tube
00052   std::string              endCoolRot;     // Rotation matrix name for end cool
00053   double                   endCoolY;       // y-position to avoid overlap with the module
00054   double                   endCoolZ;       // z-position
00055                                               
00056   std::string              optFibre;       // Name of the Optical Fibre
00057   std::vector<double>      optFibreX;      // x-positions
00058   std::vector<double>      optFibreZ;      // z-positions
00059                                               
00060   std::string              sideClamp1;     // Name of the side clamp of type 1
00061   std::vector<double>      sideClampX;     // x-positions
00062   std::vector<double>      sideClamp1DZ;   // Delta(z)-positions
00063   std::string              sideClamp2;     // Name of the side clamp of type 2
00064   std::vector<double>      sideClamp2DZ;   // Delta(z)-positions
00065                                               
00066   std::string              module;         // Name of the detector modules
00067   std::vector<std::string> moduleRot;      // Rotation matrix name for module
00068   std::vector<double>      moduleY;        // y-positions
00069   std::vector<double>      moduleZ;        // z-positions
00070   std::vector<std::string> connect;        // Name of the connectors
00071   std::vector<double>      connectY;       // y-positions
00072   std::vector<double>      connectZ;       // z-positions
00073                                               
00074   std::string              aohName;        // AOH name
00075   std::vector<double>      aohCopies;      // AOH copies to be positioned on each ICC
00076   std::vector<double>      aohX;           // AOH translation with respect small-ICC center (X)
00077   std::vector<double>      aohY;           // AOH translation with respect small-ICC center (Y)
00078   std::vector<double>      aohZ;           // AOH translation with respect small-ICC center (Z)
00079 };
00080 
00081 #endif

Generated on Tue Jun 9 17:37:33 2009 for CMSSW by  doxygen 1.5.4