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