00001 #ifndef HcalAlgo_DDHCalFibreBundle_h 00002 #define HcalAlgo_DDHCalFibreBundle_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 DDHCalFibreBundle : public DDAlgorithm { 00011 00012 public: 00013 //Constructor and Destructor 00014 DDHCalFibreBundle(); 00015 virtual ~DDHCalFibreBundle(); 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 00027 std::string idNameSpace; //Namespace of this and ALL sub-parts 00028 std::string childPrefix; //Prefix to child name 00029 std::string material; //Name of the material for bundles 00030 double deltaZ; //Width in Z for mother 00031 double deltaPhi; //Width in phi for mother 00032 int numberPhi; //Number of sections in phi 00033 double tilt; //Tilt angle of the readout box 00034 std::vector<double> areaSection; //Area of a bundle 00035 std::vector<double> rStart; //Radius at start 00036 std::vector<double> rEnd; //Radius at End 00037 std::vector<int> bundle; //Bundle to be positioned 00038 }; 00039 00040 #endif