CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/Geometry/HcalAlgo/interface/DDHCalTBCableAlgo.h

Go to the documentation of this file.
00001 #ifndef HcalAlgo_DDHCalTBCableAlgo_h
00002 #define HcalAlgo_DDHCalTBCableAlgo_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 DDHCalTBCableAlgo : public DDAlgorithm {
00011  public:
00012   //Constructor and Destructor
00013   DDHCalTBCableAlgo(); //const std::string & name);
00014   virtual ~DDHCalTBCableAlgo();
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           genMat;          //General material
00027   int                   nsectors;        //Number of potenital straight edges
00028   int                   nsectortot;      //Number of straight edges (actual)
00029   int                   nhalf;           //Number of half modules
00030   double                rin;             //(see Figure of hcalbarrel)
00031   std::vector<double>   theta;           //  .... (in degrees)
00032   std::vector<double>   rmax;            //  .... 
00033   std::vector<double>   zoff;            //  ....
00034   std::string           absMat;          //Absorber material
00035   double                thick;           //Thickness of absorber
00036   double                width1, length1; //Width, length of absorber type 1
00037   double                width2, length2; //Width, length of absorber type 2
00038   double                gap2;            //Gap between abosrbers of type 2
00039 
00040   std::string           idName;          //Name of the "parent" volume.  
00041   std::string           idNameSpace;     //Namespace of this and ALL sub-parts
00042   std::string           rotns;           //Namespace for rotation matrix
00043 };
00044 
00045 #endif