CMS 3D CMS Logo

DDHGCalHEAlgo.h
Go to the documentation of this file.
1 #ifndef HGCalCommonData_DDHGCalHEAlgo_h
2 #define HGCalCommonData_DDHGCalHEAlgo_h
3 
4 #include <map>
5 #include <string>
6 #include <vector>
9 
10 class DDHGCalHEAlgo : public DDAlgorithm {
11 
12 public:
13  //Constructor and Destructor
14  DDHGCalHEAlgo(); //const std::string & name);
15  virtual ~DDHGCalHEAlgo();
16 
17  struct HGCalHEPar {
18  double yh1, bl1, tl1, yh2, bl2, tl2, alp, theta, phi, xpos, ypos, zpos;
19  HGCalHEPar(double yh1v=0, double bl1v=0, double tl1v=0, double yh2v=0,
20  double bl2v=0, double tl2v=0, double alpv=0, double thv=0,
21  double fiv=0, double x=0, double y=0, double z=0) :
22  yh1(yh1v), bl1(bl1v), tl1(tl1v), yh2(yh2v), bl2(bl2v), tl2(tl2v),
23  alp(alpv), theta(thv), phi(fiv), xpos(x), ypos(y), zpos(z) {}
24  };
25  void initialize(const DDNumericArguments & nArgs,
26  const DDVectorArguments & vArgs,
27  const DDMapArguments & mArgs,
28  const DDStringArguments & sArgs,
29  const DDStringVectorArguments & vsArgs);
30  void execute(DDCompactView& cpv);
31 
32 protected:
33 
35  HGCalHEPar parameterLayer(double rinF, double routF, double rinB,
36  double routB, double zi, double zo);
37  HGCalHEPar parameterLayer(int type, double rinF, double routF, double rinB,
38  double routB, double zi, double zo);
39  double rMax(double z);
40 
41 private:
42 
43  std::vector<std::string> materials; //Materials
44  std::vector<std::string> names; //Names
45  std::string rotstr; //Rotation matrix to place in mother
46  std::vector<int> copyNumber; //Copy number offsets for a section
47  std::vector<double> thick; //Thickness of the materials
48  std::vector<int> type; //Type of the module
49  std::vector<double> zMinBlock; //Starting z-value for each type
50  std::vector<int> layerType; //Type of the layer
51  std::vector<int> heightType; //Height to be evaluated from itself
52  double thickModule; //Thickness of a module
53  int sectors; //Sectors
54  double slopeB; //Slope at the lower R
55  std::vector<double> slopeT; //Slopes at the larger R
56  std::vector<double> zFront; //Starting Z values for the slopes
57  std::vector<double> rMaxFront; //Corresponding rMax's
58 
59  std::string idName; //Name of the "parent" volume.
60  std::string idNameSpace; //Namespace of this and ALL sub-parts
61 };
62 
63 #endif
type
Definition: HCALResponse.h:21
std::vector< int > type
Definition: DDHGCalHEAlgo.h:48
std::vector< double > zMinBlock
Definition: DDHGCalHEAlgo.h:49
std::vector< double > zFront
Definition: DDHGCalHEAlgo.h:56
double rMax(double z)
type of data representation of DDCompactView
Definition: DDCompactView.h:90
std::vector< int > layerType
Definition: DDHGCalHEAlgo.h:50
double thickModule
Definition: DDHGCalHEAlgo.h:52
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:92
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs)
std::vector< std::string > names
Definition: DDHGCalHEAlgo.h:44
std::vector< int > heightType
Definition: DDHGCalHEAlgo.h:51
std::vector< std::string > materials
Definition: DDHGCalHEAlgo.h:43
virtual ~DDHGCalHEAlgo()
void execute(DDCompactView &cpv)
HGCalHEPar parameterLayer(double rinF, double routF, double rinB, double routB, double zi, double zo)
std::string rotstr
Definition: DDHGCalHEAlgo.h:45
std::string idNameSpace
Definition: DDHGCalHEAlgo.h:60
void constructLayers(DDLogicalPart, DDCompactView &cpv)
std::vector< double > thick
Definition: DDHGCalHEAlgo.h:47
std::string idName
Definition: DDHGCalHEAlgo.h:59
std::vector< double > slopeT
Definition: DDHGCalHEAlgo.h:55
HGCalHEPar(double yh1v=0, double bl1v=0, double tl1v=0, double yh2v=0, double bl2v=0, double tl2v=0, double alpv=0, double thv=0, double fiv=0, double x=0, double y=0, double z=0)
Definition: DDHGCalHEAlgo.h:19
std::vector< double > rMaxFront
Definition: DDHGCalHEAlgo.h:57
std::vector< int > copyNumber
Definition: DDHGCalHEAlgo.h:46