Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 13:03:15

0001 #ifndef DDEcalPreshowerAlgoTB_h
0002 #define DDEcalPreshowerAlgoTB_h
0003 
0004 #include <vector>
0005 #include <string>
0006 
0007 #include "DetectorDescription/Core/interface/DDAlgorithm.h"
0008 
0009 class DDEcalPreshowerAlgoTB : public DDAlgorithm {
0010 public:
0011   DDEcalPreshowerAlgoTB();
0012   void initialize(const DDNumericArguments& nArgs,
0013                   const DDVectorArguments& vArgs,
0014                   const DDMapArguments& mArgs,
0015                   const DDStringArguments& sArgs,
0016                   const DDStringVectorArguments& vsArgs) override;
0017   void execute(DDCompactView& pos) override;
0018 
0019 private:
0020   std::string getMaterial(unsigned int i) const { return materials_[i]; }
0021   void doLayers(DDCompactView& pos);
0022   void doWedges(DDCompactView& pos);
0023   void doSens(DDCompactView& pos);
0024 
0025   std::vector<double> quadMin_, quadMax_;
0026   int nmat_;          // number of preshower layers
0027   double thickness_;  // overall thickness of the preshower envelope
0028   double zlead1_, zlead2_, zfoam1_, zfoam2_;
0029   std::vector<std::string> materials_;  // materials of the presh-layers
0030   std::vector<double> thickLayers_;
0031   std::vector<double> rminVec;
0032   std::vector<double> rmaxVec;
0033   std::vector<double> micromodulesx;
0034   std::vector<double> micromodulesy;
0035   std::string dummyMaterial;
0036   std::string idNameSpace;  //Namespace of this and ALL sub-parts
0037   double waf_intra_col_sep, waf_inter_col_sep, waf_active, wedge_length, wedge_offset, zwedge_ceramic_diff,
0038       ywedge_ceramic_diff, absorbx, absorby, trabsorbx, trabsorby, ScndplaneXshift, ScndplaneYshift, TotSFXshift,
0039       TotSFYshift;
0040   int go;
0041 };
0042 
0043 #endif  // DDEcalPreshowerAlgoTB_h