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 <vector>
9 #include <unordered_set>
10 
11 class DDHGCalModule : public DDAlgorithm {
12 
13 public:
14  //Constructor and Destructor
15  DDHGCalModule(); //const std::string & name);
16  virtual ~DDHGCalModule();
17 
18  void initialize(const DDNumericArguments & nArgs,
19  const DDVectorArguments & vArgs,
20  const DDMapArguments & mArgs,
21  const DDStringArguments & sArgs,
22  const DDStringVectorArguments & vsArgs);
23  void execute(DDCompactView& cpv);
24 
25 protected:
26 
28  double rMax(double z);
29  void positionSensitive(DDLogicalPart& glog, double rin, double rout,
30  DDCompactView& cpv);
31 
32 private:
33 
34  std::vector<std::string> wafer; //Wafers
35  std::vector<std::string> materials; //Materials
36  std::vector<std::string> names; //Names
37  std::vector<double> thick; //Thickness of the material
38  std::vector<int> copyNumber; //Initial copy numbers
39  std::vector<int> layers; //Number of layers in a section
40  std::vector<double> layerThick; //Thickness of each section
41  std::vector<int> layerType; //Type of the layer
42  std::vector<int> layerSense; //COntent of a layer (sensitive?)
43  double zMinBlock; //Starting z-value of the block
44  double rMaxFine; //Maximum r-value for fine wafer
45  double waferW; //Width of the wafer
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
double rMax(double z)
std::vector< int > copyNumber
Definition: DDHGCalModule.h:38
std::vector< std::string > wafer
Definition: DDHGCalModule.h:34
std::vector< int > layerSense
Definition: DDHGCalModule.h:42
type of data representation of DDCompactView
Definition: DDCompactView.h:90
std::vector< int > layers
Definition: DDHGCalModule.h:39
void constructLayers(DDLogicalPart, DDCompactView &cpv)
std::vector< double > slopeB
Definition: DDHGCalModule.h:47
std::vector< double > slopeT
Definition: DDHGCalModule.h:48
std::vector< std::string > names
Definition: DDHGCalModule.h:36
std::vector< std::string > materials
Definition: DDHGCalModule.h:35
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs)
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:92
std::vector< double > rMaxFront
Definition: DDHGCalModule.h:50
std::unordered_set< int > copies
Definition: DDHGCalModule.h:53
std::vector< int > layerType
Definition: DDHGCalModule.h:41
void execute(DDCompactView &cpv)
double zMinBlock
Definition: DDHGCalModule.h:43
std::vector< double > thick
Definition: DDHGCalModule.h:37
std::vector< double > layerThick
Definition: DDHGCalModule.h:40
void positionSensitive(DDLogicalPart &glog, double rin, double rout, DDCompactView &cpv)
std::string idName
Definition: DDHGCalModule.h:51
virtual ~DDHGCalModule()
std::vector< double > zFront
Definition: DDHGCalModule.h:49
std::string idNameSpace
Definition: DDHGCalModule.h:52