CMS 3D CMS Logo

DDAHcalModuleAlgo.h
Go to the documentation of this file.
1 #ifndef HGCalCommonData_DDAHcalModuleAlgo_h
2 #define HGCalCommonData_DDAHcalModuleAlgo_h
3 
4 #include <map>
5 #include <string>
6 #include <vector>
9 #include <unordered_set>
10 
11 class DDAHcalModuleAlgo : public DDAlgorithm {
12 
13 public:
14  //Constructor and Destructor
15  DDAHcalModuleAlgo(); //const std::string & name);
16  ~DDAHcalModuleAlgo() 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);
29 
30 private:
31 
32  std::string tile; //Scintillator tile
33  std::vector<std::string> materials; //Materials
34  std::vector<std::string> names; //Names
35  std::vector<double> thick; //Thickness of the material
36  std::vector<int> copyNumber; //Initial copy numbers
37  std::vector<int> layers; //Number of layers in a section
38  std::vector<double> layerThick; //Thickness of each section
39  std::vector<int> layerType; //Type of the layer
40  std::vector<int> layerSense; //Content of a layer (sensitive?)
41  std::vector<double> widths; //Width (passive, active)
42  std::vector<double> heights; //Heights (passive, active)
43  std::vector<int> tileN; // # of tiles (along x, y)
44  std::vector<double> tileStep; //Separation between tiles (x, y)
45  double zMinBlock; //Starting z-value of the block
46  std::string idName; //Name of the "parent" volume.
47  std::string idNameSpace; //Namespace of this and ALL sub-parts
48  std::unordered_set<int> copies; //List of copy #'s
49 };
50 
51 #endif
std::vector< int > layerType
std::vector< std::string > materials
std::vector< double > widths
void constructLayers(const DDLogicalPart &, DDCompactView &cpv)
std::vector< int > copyNumber
~DDAHcalModuleAlgo() override
std::vector< double > heights
void execute(DDCompactView &cpv) override
type of data representation of DDCompactView
Definition: DDCompactView.h:90
std::vector< double > thick
std::unordered_set< int > copies
std::vector< std::string > names
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:92
std::vector< double > layerThick
std::vector< double > tileStep
std::vector< int > layers
std::vector< int > tileN
std::vector< int > layerSense
void positionSensitive(DDLogicalPart &glog, DDCompactView &cpv)
std::string idNameSpace