CMS 3D CMS Logo

DDHGCalModule.h
Go to the documentation of this file.
1 #ifndef HGCalCommonData_DDHGCalModule_h
2 #define HGCalCommonData_DDHGCalModule_h
3 
4 #include <map>
5 #include <string>
6 #include <unordered_set>
7 #include <vector>
10 
11 class DDHGCalModule : public DDAlgorithm {
12  public:
13  // Constructor and Destructor
14  DDHGCalModule(); // const std::string & name);
15  ~DDHGCalModule() 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, double rin, double rout,
27  DDCompactView& cpv);
28 
29  private:
30  std::vector<std::string> wafer; // Wafers
31  std::vector<std::string> materials; // Materials
32  std::vector<std::string> names; // Names
33  std::vector<double> thick; // Thickness of the material
34  std::vector<int> copyNumber; // Initial copy numbers
35  std::vector<int> layers; // Number of layers in a section
36  std::vector<double> layerThick; // Thickness of each section
37  std::vector<int> layerType; // Type of the layer
38  std::vector<int> layerSense; // COntent of a layer (sensitive?)
39  double zMinBlock; // Starting z-value of the block
40  double rMaxFine; // Maximum r-value for fine wafer
41  double waferW; // Width of the wafer
42  int sectors; // Sectors
43  std::vector<double> slopeB; // Slope at the lower R
44  std::vector<double> slopeT; // Slopes at the larger R
45  std::vector<double> zFront; // Starting Z values for the slopes
46  std::vector<double> rMaxFront; // Corresponding rMax's
47  std::string idName; // Name of the "parent" volume.
48  std::string idNameSpace; // Namespace of this and ALL sub-parts
49  std::unordered_set<int> copies; // List of copy #'s
50 };
51 
52 #endif
double rMax(double z)
std::vector< int > copyNumber
Definition: DDHGCalModule.h:34
std::vector< std::string > wafer
Definition: DDHGCalModule.h:30
std::vector< int > layerSense
Definition: DDHGCalModule.h:38
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:80
std::vector< int > layers
Definition: DDHGCalModule.h:35
std::vector< double > slopeB
Definition: DDHGCalModule.h:43
std::vector< double > slopeT
Definition: DDHGCalModule.h:44
std::vector< std::string > names
Definition: DDHGCalModule.h:32
std::vector< std::string > materials
Definition: DDHGCalModule.h:31
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:93
void execute(DDCompactView &cpv) override
std::vector< double > rMaxFront
Definition: DDHGCalModule.h:46
std::unordered_set< int > copies
Definition: DDHGCalModule.h:49
std::vector< int > layerType
Definition: DDHGCalModule.h:37
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
double zMinBlock
Definition: DDHGCalModule.h:39
std::vector< double > thick
Definition: DDHGCalModule.h:33
std::vector< double > layerThick
Definition: DDHGCalModule.h:36
void positionSensitive(DDLogicalPart &glog, double rin, double rout, DDCompactView &cpv)
std::string idName
Definition: DDHGCalModule.h:47
~DDHGCalModule() override
std::vector< double > zFront
Definition: DDHGCalModule.h:45
void constructLayers(const DDLogicalPart &, DDCompactView &cpv)
std::string idNameSpace
Definition: DDHGCalModule.h:48