CMS 3D CMS Logo

DDEcalPreshowerAlgo.h
Go to the documentation of this file.
1 #ifndef DDEcalPreshowerAlgo_h
2 #define DDEcalPreshowerAlgo_h
3 
4 #include <vector>
5 #include <string>
6 
9 
10 class DDEcalPreshowerAlgo : public DDAlgorithm {
11 
12 public:
13 
14  DDMaterial getMaterial(unsigned int i) const {return DDMaterial(materials_[i]);}
16  std::string getLayName(unsigned int i) const {return layName_[i];}
17  std::string getLadPrefix(unsigned int i) const {return ladPfx_[i];}
18 
20  void initialize(const DDNumericArguments & nArgs,
21  const DDVectorArguments & vArgs,
22  const DDMapArguments & mArgs,
23  const DDStringArguments & sArgs,
24  const DDStringVectorArguments & vsArgs) override;
25  void execute(DDCompactView& pos) override;
26 
27 private:
28 
29  void doLayers(DDCompactView& pos);
30  void doLadders(DDCompactView& pos);
31  void doSens(DDCompactView& pos);
32 
33  int nmat_; // number of preshower layers
34  double thickness_; // overall thickness of the preshower envelope
35  std::vector<std::string> materials_; // materials of the presh-layers
36  std::vector<std::string> layName_; // names of the presh-layers
37  std::vector<std::string> ladPfx_ ; // name prefix for ladders
38  std::string LaddMaterial_; // ladd material - air
39  std::vector<double> thickLayers_;
40  std::vector<double> abs1stx;
41  std::vector<double> abs1sty;
42  std::vector<double> abs2ndx;
43  std::vector<double> abs2ndy;
44  std::vector<double> asym_ladd_;
45  std::vector<double> rminVec;
46  std::vector<double> rmaxVec;
47  std::vector<double> noLaddInCol_;
48  std::vector<double> startOfFirstLadd_;
49  std::vector<std::string> types_l5_;
50  std::vector<std::string> types_l4_;
51  std::vector<double> ladd_l5_map_;
52  std::vector<double> ladd_l4_map_;
53  std::vector<std::string> typeOfLaddRow0;
54  std::vector<std::string> typeOfLaddRow1;
55  std::vector<std::string> typeOfLaddRow2;
56  std::vector<std::string> typeOfLaddRow3;
57 
64 
65 };
66 
67 
68 #endif // DDEcalPreshowerAlgo_h
std::vector< double > startOfFirstLadd_
std::vector< std::string > types_l4_
std::vector< std::string > typeOfLaddRow2
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
std::string getLayName(unsigned int i) const
std::vector< double > abs1stx
DDMaterial is used to define and access material information.
Definition: DDMaterial.h:41
std::vector< double > rmaxVec
std::vector< double > ladd_l4_map_
void doLayers(DDCompactView &pos)
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:83
std::vector< double > asym_ladd_
std::vector< std::string > typeOfLaddRow1
void doLadders(DDCompactView &pos)
void doSens(DDCompactView &pos)
DDMaterial getMaterial(unsigned int i) const
std::vector< double > abs1sty
std::vector< std::string > typeOfLaddRow3
std::vector< double > thickLayers_
std::vector< double > rminVec
void execute(DDCompactView &pos) override
std::vector< std::string > materials_
std::string getLadPrefix(unsigned int i) const
std::vector< double > ladd_l5_map_
DDMaterial getLaddMaterial() const
std::vector< std::string > typeOfLaddRow0
std::vector< double > abs2ndx
std::vector< double > noLaddInCol_
std::vector< std::string > ladPfx_
std::vector< double > abs2ndy
std::vector< std::string > types_l5_
std::vector< std::string > layName_