CMS 3D CMS Logo

DDHGCalTBModule.h
Go to the documentation of this file.
1 #ifndef HGCalCommonData_DDHGCalTBModule_h
2 #define HGCalCommonData_DDHGCalTBModule_h
3 
4 #include <map>
5 #include <string>
6 #include <unordered_set>
7 #include <vector>
10 
11 class DDHGCalTBModule : public DDAlgorithm {
12  public:
13  // Constructor and Destructor
14  DDHGCalTBModule(); // const std::string & name);
15  ~DDHGCalTBModule() override;
16 
17  void initialize(const DDNumericArguments& nArgs,
18  const DDVectorArguments& vArgs, const DDMapArguments& mArgs,
19  const DDStringArguments& sArgs,
20  const DDStringVectorArguments& vsArgs) override;
21  void execute(DDCompactView& cpv) override;
22 
23  protected:
24  void constructLayers(const DDLogicalPart&, DDCompactView& cpv);
25  double rMax(double z);
26  void positionSensitive(DDLogicalPart& glog, int type, double rin, double rout,
27  DDCompactView& cpv);
28 
29  private:
30  std::vector<std::string> wafer_; // Wafers
31  std::vector<std::string> covers_; // Insensitive layers of hexagonal size
32  std::vector<std::string> materials_; // Materials
33  std::vector<std::string> names_; // Names
34  std::vector<double> thick_; // Thickness of the material
35  std::vector<int> copyNumber_; // Initial copy numbers
36  std::vector<int> layers_; // Number of layers in a section
37  std::vector<double> layerThick_; // Thickness of each section
38  std::vector<int> layerType_; // Type of the layer
39  std::vector<int> layerSense_; // COntent of a layer (sensitive?)
40  double zMinBlock_; // Starting z-value of the block
41  double rMaxFine_; // Maximum r-value for fine wafer
42  double waferW_; // Width of the wafer
43  double waferGap_; // Gap between 2 wafers
44  double absorbW_; // Width of the absorber
45  double absorbH_; // Height of the absorber
46  int sectors_; // Sectors
47  std::vector<double> slopeB_; // Slope at the lower R
48  std::vector<double> slopeT_; // Slopes at the larger R
49  std::vector<double> zFront_; // Starting Z values for the slopes
50  std::vector<double> rMaxFront_; // Corresponding rMax's
51  std::string idName_; // Name of the "parent" volume.
52  std::string idNameSpace_; // Namespace of this and ALL sub-parts
53  std::unordered_set<int> copies_; // List of copy #'s
54 };
55 
56 #endif
std::string idName_
type
Definition: HCALResponse.h:21
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
std::vector< std::string > names_
std::vector< std::string > wafer_
std::vector< double > layerThick_
~DDHGCalTBModule() override
void positionSensitive(DDLogicalPart &glog, int type, double rin, double rout, DDCompactView &cpv)
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:80
std::vector< double > rMaxFront_
std::vector< int > layerSense_
std::vector< double > zFront_
std::vector< int > layerType_
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:93
std::vector< int > copyNumber_
std::vector< double > slopeT_
std::string idNameSpace_
void constructLayers(const DDLogicalPart &, DDCompactView &cpv)
std::vector< int > layers_
void execute(DDCompactView &cpv) override
std::vector< std::string > covers_
std::vector< double > slopeB_
std::vector< double > thick_
std::vector< std::string > materials_
std::unordered_set< int > copies_
double rMax(double z)