CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/Geometry/EcalCommonData/interface/DDEcalPreshowerAlgo.h

Go to the documentation of this file.
00001 #ifndef DDEcalPreshowerAlgo_h
00002 #define DDEcalPreshowerAlgo_h
00003 
00004 #include <vector>
00005 #include <string>
00006 
00007 #include "DetectorDescription/Algorithm/interface/DDAlgorithm.h"
00008 #include "DetectorDescription/Core/interface/DDMaterial.h"
00009 
00010 class DDEcalPreshowerAlgo : public DDAlgorithm {
00011 
00012 public:
00013   
00014   DDMaterial getMaterial(unsigned int i)   const {return DDMaterial(materials_[i]);}
00015   DDMaterial getLaddMaterial()  const { return DDMaterial(LaddMaterial_) ; }
00016   std::string getLayName(unsigned int i)   const {return layName_[i];}
00017   std::string getLadPrefix(unsigned int i)   const {return ladPfx_[i];}
00018 
00019   DDEcalPreshowerAlgo();
00020   void initialize(const DDNumericArguments & nArgs,
00021                   const DDVectorArguments & vArgs,
00022                   const DDMapArguments & mArgs,
00023                   const DDStringArguments & sArgs,
00024                   const DDStringVectorArguments & vsArgs);
00025   void execute(DDCompactView& pos);
00026 
00027 private:
00028 
00029   void doLayers(DDCompactView& pos);
00030   void doLadders(DDCompactView& pos); 
00031   void doSens(DDCompactView& pos);
00032   
00033   int nmat_;                       // number of preshower layers
00034   double thickness_;               // overall thickness of the preshower envelope
00035   std::vector<std::string> materials_;  // materials of the presh-layers
00036   std::vector<std::string> layName_;    // names of the presh-layers
00037   std::vector<std::string> ladPfx_ ;    // name prefix for ladders
00038   std::string LaddMaterial_;            // ladd material - air
00039   std::vector<double> thickLayers_; 
00040   std::vector<double> abs1stx;
00041   std::vector<double> abs1sty;
00042   std::vector<double> abs2ndx;
00043   std::vector<double> abs2ndy;
00044   std::vector<double> asym_ladd_;
00045   std::vector<double> rminVec; 
00046   std::vector<double> rmaxVec;
00047   std::vector<double> noLaddInCol_;
00048   std::vector<double> startOfFirstLadd_;
00049   std::vector<std::string> types_l5_;
00050   std::vector<std::string> types_l4_;
00051   std::vector<double> ladd_l5_map_;
00052   std::vector<double> ladd_l4_map_;
00053   std::vector<std::string> typeOfLaddRow0;
00054   std::vector<std::string> typeOfLaddRow1;
00055   std::vector<std::string> typeOfLaddRow2;
00056   std::vector<std::string> typeOfLaddRow3;
00057 
00058   double zlead1_, zlead2_, zfoam1_, zfoam2_;
00059   double waf_intra_col_sep, waf_inter_col_sep, waf_active, wedge_length, wedge_offset, zwedge_ceramic_diff, ywedge_ceramic_diff, wedge_angle, box_thick,dee_separation, In_rad_Abs_Al, In_rad_Abs_Pb;
00060   double ladder_thick, yladder_1stwedge_diff, ladder_width, ladder_length, micromodule_length;
00061   double absAlX_X_, absAlX_Y_, absAlX_subtr1_Xshift_, absAlX_subtr1_Yshift_, rMax_Abs_Al_;
00062   double absAlY_X_, absAlY_Y_, absAlY_subtr1_Xshift_, absAlY_subtr1_Yshift_;
00063   double LdrBck_Length, LdrFrnt_Length,LdrFrnt_Offset,LdrBck_Offset, ceramic_length, wedge_back_thick;
00064   
00065 };
00066 
00067 
00068 #endif // DDEcalPreshowerAlgo_h