#include <DDEcalPreshowerAlgo.h>
Public Member Functions | |
DDEcalPreshowerAlgo () | |
void | execute (DDCompactView &pos) |
DDMaterial | getLaddMaterial () const |
std::string | getLadPrefix (unsigned int i) const |
std::string | getLayName (unsigned int i) const |
DDMaterial | getMaterial (unsigned int i) const |
void | initialize (const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) |
Private Member Functions | |
void | doLadders (DDCompactView &pos) |
void | doLayers (DDCompactView &pos) |
void | doSens (DDCompactView &pos) |
Private Attributes | |
std::vector< double > | abs1stx |
std::vector< double > | abs1sty |
std::vector< double > | abs2ndx |
std::vector< double > | abs2ndy |
double | absAlX_subtr1_Xshift_ |
double | absAlX_subtr1_Yshift_ |
double | absAlX_X_ |
double | absAlX_Y_ |
double | absAlY_subtr1_Xshift_ |
double | absAlY_subtr1_Yshift_ |
double | absAlY_X_ |
double | absAlY_Y_ |
std::vector< double > | asym_ladd_ |
double | box_thick |
double | ceramic_length |
double | dee_separation |
double | In_rad_Abs_Al |
double | In_rad_Abs_Pb |
std::vector< double > | ladd_l4_map_ |
std::vector< double > | ladd_l5_map_ |
double | ladder_length |
double | ladder_thick |
double | ladder_width |
std::string | LaddMaterial_ |
std::vector< std::string > | ladPfx_ |
std::vector< std::string > | layName_ |
double | LdrBck_Length |
double | LdrBck_Offset |
double | LdrFrnt_Length |
double | LdrFrnt_Offset |
std::vector< std::string > | materials_ |
double | micromodule_length |
int | nmat_ |
std::vector< double > | noLaddInCol_ |
double | rMax_Abs_Al_ |
std::vector< double > | rmaxVec |
std::vector< double > | rminVec |
std::vector< double > | startOfFirstLadd_ |
std::vector< double > | thickLayers_ |
double | thickness_ |
std::vector< std::string > | typeOfLaddRow0 |
std::vector< std::string > | typeOfLaddRow1 |
std::vector< std::string > | typeOfLaddRow2 |
std::vector< std::string > | typeOfLaddRow3 |
std::vector< std::string > | types_l4_ |
std::vector< std::string > | types_l5_ |
double | waf_active |
double | waf_inter_col_sep |
double | waf_intra_col_sep |
double | wedge_angle |
double | wedge_back_thick |
double | wedge_length |
double | wedge_offset |
double | yladder_1stwedge_diff |
double | ywedge_ceramic_diff |
double | zfoam1_ |
double | zfoam2_ |
double | zlead1_ |
double | zlead2_ |
double | zwedge_ceramic_diff |
Definition at line 10 of file DDEcalPreshowerAlgo.h.
DDEcalPreshowerAlgo::DDEcalPreshowerAlgo | ( | ) |
Definition at line 12 of file DDEcalPreshowerAlgo.cc.
References LogDebug.
: DDAlgorithm() { LogDebug("EcalGeom") << "DDEcalPreshowerAlgo info: Creating an instance" ; }
void DDEcalPreshowerAlgo::doLadders | ( | DDCompactView & | pos | ) | [private] |
Definition at line 269 of file DDEcalPreshowerAlgo.cc.
References abs, asym_ladd_, DDSolidFactory::box(), box_thick, ceramic_length, funct::cos(), dee_separation, getLaddMaterial(), getLadPrefix(), Exhume::I, i, j, ladd_l4_map_, ladd_l5_map_, ladder_length, ladder_thick, ladder_width, LdrBck_Length, LdrBck_Offset, LdrFrnt_Length, LdrFrnt_Offset, micromodule_length, noLaddInCol_, DDCompactView::position(), funct::sin(), startOfFirstLadd_, matplotRender::t, DDSolidFactory::trap(), typeOfLaddRow0, typeOfLaddRow1, typeOfLaddRow2, typeOfLaddRow3, types_l4_, types_l5_, DDSolidFactory::unionSolid(), waf_active, waf_inter_col_sep, waf_intra_col_sep, wedge_angle, wedge_back_thick, wedge_length, wedge_offset, ywedge_ceramic_diff, zlead1_, zlead2_, and zwedge_ceramic_diff.
Referenced by execute().
{ double xpos(0), ypos(0), zpos(0), sdx(0), sdy(0), sdz(0); double prev_length_(0), ladder_new_length_(0), ladd_shift_(0), ladder_length (0); int enb(0), swed_scopy_glob(0); double sdxe[50] = {0}, sdye[50] = {0}, sdze[50] = {0}; double sdxe2[50] = {0}, sdye2[50] = {0}, sdze2[50] = {0}, sdxe3[50] = {0}, sdye3[50] = {0}, sdze3[50] = {0}; for (int M=0; M<int(types_l5_.size() + types_l4_.size()); M++) { int scopy(0); double boxax(0), boxay(0), boxaz(0); int ladd_not_plain(0), ladd_subtr_no(0), ladd_upper(0), ladd_side(0); DDSolid solid_lfront = DDSolidFactory::trap(DDName("LDRFRNT","esalgo"), LdrFrnt_Length/2, // pDz -wedge_angle, // pTheta 0, // pPhi ladder_width/2, // pDy1 (ladder_thick)/2, // pDx1 (ladder_thick)/2, // pDx2 0, //pAlp1 ladder_width/2, //pDy2 (ladder_thick-ceramic_length*sin(wedge_angle*2))/2, // pDx3 (ladder_thick-ceramic_length*sin(wedge_angle*2))/2, // pDx4 0 ); DDSolid solid_lbck = DDSolidFactory::trap(DDName("LDRBCK","esalgo"), LdrBck_Length/2, // pDz -wedge_angle, // pTheta 0, // pPhi ladder_width/2, // pDy1 (box_thick/cos(wedge_angle*2)+0.02*mm)/2, // pDx1 (box_thick/cos(wedge_angle*2)+0.02*mm)/2, // pDx2 0, //pAlp1 ladder_width/2, //pDy2 (ladder_thick-wedge_back_thick)/2, // pDx3 (ladder_thick-wedge_back_thick)/2, // pDx4 0 ); DDSolid solid_lfhalf = DDSolidFactory::trap(DDName("LDRFHALF","esalgo"), LdrFrnt_Length/2, // pDz -wedge_angle, // pTheta 0, // pPhi (ladder_width/2)/2, // pDy1 (ladder_thick)/2, // pDx1 (ladder_thick)/2, // pDx2 0, //pAlp1 (ladder_width/2)/2, //pDy2 (ladder_thick-ceramic_length*sin(wedge_angle*2))/2, // pDx3 (ladder_thick-ceramic_length*sin(wedge_angle*2))/2, // pDx4 0 ); DDSolid solid_lbhalf = DDSolidFactory::trap(DDName("LDRBHALF","esalgo"), LdrBck_Length/2, // pDz -wedge_angle, // pTheta 0, // pPhi (ladder_width/2)/2, // pDy1 (box_thick/cos(wedge_angle*2)+0.02*mm)/2, // pDx1 (box_thick/cos(wedge_angle*2)+0.02*mm)/2, // pDx2 0, //pAlp1 (ladder_width/2)/2, //pDy2 (ladder_thick-wedge_back_thick)/2, // pDx3 (ladder_thick-wedge_back_thick)/2, // pDx4 0 ); DDSolid solid_lfhtrunc = DDSolidFactory::trap(DDName("LDRFHTR","esalgo"), (LdrFrnt_Length-waf_active)/2, // pDz -wedge_angle, // pTheta 0, // pPhi (ladder_width/2)/2, // pDy1 (ladder_thick)/2, // pDx1 (ladder_thick)/2, // pDx2 0, //pAlp1 (ladder_width/2)/2, //pDy2 (ladder_thick-(ceramic_length-waf_active)*sin(wedge_angle*2))/2, // pDx3 (ladder_thick-(ceramic_length-waf_active)*sin(wedge_angle*2))/2, // pDx4 0 ); // Creation of ladders with 5 micromodules length if(M<int(types_l5_.size())) { for (int i=0; i<=1; i++) { for (int j=0; j<=3; j++) { if(ladd_l5_map_[(i+j*2+M*10)]!=1){ ladd_not_plain=1; ladd_subtr_no++; if(j>1) ladd_upper=1; ladd_side=i; } } } DDName ddname(getLadPrefix(0)+types_l5_[M],"esalgo"); ladder_length = micromodule_length + 4*waf_active + 0.1*mm; if(ladd_not_plain) { // enb++; std::ostringstream tmp_name_5b, tmp_name_5c, tmp_name_5d; if(ladd_upper) { }//upper else { enb++; std::ostringstream tmp_name_5b, tmp_name_5c, tmp_name_5d; DDName dd_tmp_name_5a(getLadPrefix(2),"esalgo"); tmp_name_5b <<getLadPrefix(3)<< enb; DDName dd_tmp_name_5b(tmp_name_5b.str(),"esalgo"); tmp_name_5c <<getLadPrefix(4)<< enb; DDName dd_tmp_name_5c(tmp_name_5c.str(),"esalgo"); tmp_name_5d << getLadPrefix(5) << enb; DDName dd_tmp_name_5d(tmp_name_5d.str(),"esalgo"); DDName dd_tmp_name_5e(getLadPrefix(6),"esalgo"); boxay = ladder_length-LdrFrnt_Length-LdrBck_Length; boxax = ladder_width; boxaz = ladder_thick; DDSolid solid_5a = DDSolidFactory::box(dd_tmp_name_5a,boxax/2,boxay/2,boxaz/2.); if(ladd_side==0) sdxe[enb] = ladder_width/4; sdye[enb]= -boxay/2 - LdrFrnt_Length/2; sdze[enb] = -ladder_thick/2. + LdrFrnt_Offset; if(ladd_side==1) sdxe[enb] = -ladder_width/4; DDSolid solid_5b = DDSolidFactory::unionSolid(dd_tmp_name_5b,solid_5a,solid_lfhalf,DDTranslation(sdxe[enb],sdye[enb],sdze[enb]),DDRotation("esalgo:RM1299")); if(ladd_side==0) sdxe2[enb] = -ladder_width/4; sdye2[enb]= -boxay/2 - LdrFrnt_Length/2 + waf_active/2; sdze2[enb] = -ladder_thick/2. + LdrFrnt_Offset + (waf_active*sin(wedge_angle*2))/4; if(ladd_side==1) sdxe2[enb] = ladder_width/4; DDSolid solid_5c = DDSolidFactory::unionSolid(dd_tmp_name_5c,solid_5b,solid_lfhtrunc,DDTranslation(sdxe2[enb],sdye2[enb],sdze2[enb]),DDRotation("esalgo:RM1299")); sdxe3[enb] = 0; sdye3[enb] = boxay/2 + LdrBck_Length/2; sdze3[enb] = -ladder_thick/2. + LdrBck_Offset; DDSolid solid = DDSolidFactory::unionSolid(ddname,solid_5c,solid_lbck,DDTranslation(sdxe3[enb],sdye3[enb],sdze3[enb]),DDRotation("esalgo:RM1299")); DDLogicalPart ladder = DDLogicalPart(ddname,getLaddMaterial(),solid); DDName ddname2(getLadPrefix(1)+types_l5_[M],"esalgo"); DDLogicalPart ladder2 = DDLogicalPart(ddname2,getLaddMaterial(),solid); } } //end of not plain ladder shape else { DDName dd_tmp_name_5pa(getLadPrefix(2)+"5p","esalgo"); DDName dd_tmp_name_5pb(getLadPrefix(3)+"5p","esalgo"); boxay = ladder_length-LdrFrnt_Length-LdrBck_Length; boxax = ladder_width; boxaz = ladder_thick; DDSolid solid_5pa = DDSolidFactory::box(dd_tmp_name_5pa,boxax/2,boxay/2,boxaz/2.); sdx = 0; sdy= -boxay/2 - LdrFrnt_Length/2; sdz = -ladder_thick/2. + LdrFrnt_Offset; DDSolid solid_5pb = DDSolidFactory::unionSolid(dd_tmp_name_5pb,solid_5pa,solid_lfront,DDTranslation(sdx,sdy,sdz),DDRotation("esalgo:RM1299")); sdx = 0; sdy= boxay/2 + LdrBck_Length/2; sdz = -ladder_thick/2. + LdrBck_Offset; DDSolid solid = DDSolidFactory::unionSolid(ddname,solid_5pb,solid_lbck,DDTranslation(sdx,sdy,sdz),DDRotation("esalgo:RM1299")); DDLogicalPart ladder = DDLogicalPart(ddname,getLaddMaterial(),solid); DDName ddname2(getLadPrefix(1)+types_l5_[M],"esalgo"); DDLogicalPart ladder2 = DDLogicalPart(ddname2,getLaddMaterial(),solid); } } // Creation of ladders with 4 micromodules length if( M >= int(types_l5_.size()) ) { int d = M - types_l5_.size(); for (int i=0; i<=1; i++) { for (int j=0; j<=3; j++) { if(ladd_l4_map_[(i+j*2+(M-types_l5_.size())*8)]!=1 ){ ladd_not_plain=1; ladd_subtr_no++; if(j>1) ladd_upper=1; ladd_side=i; } } } DDName ddname(getLadPrefix(0)+types_l4_[d],"esalgo"); ladder_length = micromodule_length + 3*waf_active + 0.1*mm; if(ladd_not_plain) { std::ostringstream tmp_name_b, tmp_name_c, tmp_name_d; if(ladd_upper) { enb++; DDName dd_tmp_name_a(getLadPrefix(7),"esalgo"); tmp_name_b <<getLadPrefix(8)<< enb; DDName dd_tmp_name_b(tmp_name_b.str(),"esalgo"); tmp_name_c <<getLadPrefix(9)<< enb; DDName dd_tmp_name_c(tmp_name_c.str(),"esalgo"); tmp_name_d << getLadPrefix(10) << enb; DDName dd_tmp_name_d(tmp_name_d.str(),"esalgo"); DDName dd_tmp_name_e(getLadPrefix(11),"esalgo"); boxay = ladder_length-LdrFrnt_Length-LdrBck_Length; boxax = ladder_width; boxaz = ladder_thick; DDSolid solid_a = DDSolidFactory::box(dd_tmp_name_a,boxax/2,boxay/2,boxaz/2.); sdxe[enb] = 0; sdye[enb]= -boxay/2 - LdrFrnt_Length/2; sdze[enb] = -ladder_thick/2. + LdrFrnt_Offset; DDSolid solid_b = DDSolidFactory::unionSolid(dd_tmp_name_b,solid_a,solid_lfront,DDTranslation(sdxe[enb],sdye[enb],sdze[enb]),DDRotation("esalgo:RM1299")); if(ladd_side==0) sdxe2[enb] = ladder_width/4; sdye2[enb] = boxay/2 + LdrBck_Length/2; sdze2[enb] = -ladder_thick/2. + LdrBck_Offset; if(ladd_side==1) sdxe2[enb] = -ladder_width/4; DDSolid solid = DDSolidFactory::unionSolid(ddname,solid_b,solid_lbhalf,DDTranslation(sdxe2[enb],sdye2[enb],sdze2[enb]),DDRotation("esalgo:RM1299")); DDLogicalPart ladder = DDLogicalPart(ddname,getLaddMaterial(),solid); DDName ddname2(getLadPrefix(1)+types_l4_[d],"esalgo"); DDLogicalPart ladder2 = DDLogicalPart(ddname2,getLaddMaterial(),solid); }//upper else { if(ladd_subtr_no>1) { enb++; DDName dd_tmp_name_a(getLadPrefix(7),"esalgo"); tmp_name_b <<getLadPrefix(8)<< enb; DDName dd_tmp_name_b(tmp_name_b.str(),"esalgo"); tmp_name_c <<getLadPrefix(9)<< enb; DDName dd_tmp_name_c(tmp_name_c.str(),"esalgo"); tmp_name_d << getLadPrefix(10) << enb; DDName dd_tmp_name_d(tmp_name_d.str(),"esalgo"); DDName dd_tmp_name_e(getLadPrefix(11),"esalgo"); boxay = ladder_length-LdrFrnt_Length-LdrBck_Length; boxax = ladder_width; boxaz = ladder_thick; DDSolid solid_a = DDSolidFactory::box(dd_tmp_name_a,boxax/2,boxay/2,boxaz/2.); if(ladd_side==0) sdxe[enb] = ladder_width/4; sdye[enb]= -boxay/2 - LdrFrnt_Length/2; sdze[enb] = -ladder_thick/2. + LdrFrnt_Offset; if(ladd_side==1) sdxe[enb] = -ladder_width/4; DDSolid solid_b = DDSolidFactory::unionSolid(dd_tmp_name_b,solid_a,solid_lfhalf,DDTranslation(sdxe[enb],sdye[enb],sdze[enb]),DDRotation("esalgo:RM1299")); sdxe2[enb] = 0; sdye2[enb] = boxay/2 + LdrBck_Length/2; sdze2[enb] = -ladder_thick/2. + LdrBck_Offset; DDSolid solid = DDSolidFactory::unionSolid(ddname,solid_b,solid_lbck,DDTranslation(sdxe2[enb],sdye2[enb],sdze2[enb]),DDRotation("esalgo:RM1299")); DDLogicalPart ladder = DDLogicalPart(ddname,getLaddMaterial(),solid); DDName ddname2(getLadPrefix(1)+types_l4_[d],"esalgo"); DDLogicalPart ladder2 = DDLogicalPart(ddname2,getLaddMaterial(),solid); } else { enb++; DDName dd_tmp_name_a(getLadPrefix(7),"esalgo"); tmp_name_b <<getLadPrefix(8)<< enb; DDName dd_tmp_name_b(tmp_name_b.str(),"esalgo"); tmp_name_c <<getLadPrefix(9)<< enb; DDName dd_tmp_name_c(tmp_name_c.str(),"esalgo"); tmp_name_d << getLadPrefix(10) << enb; DDName dd_tmp_name_d(tmp_name_d.str(),"esalgo"); DDName dd_tmp_name_e(getLadPrefix(11),"esalgo"); boxay = ladder_length-LdrFrnt_Length-LdrBck_Length; boxax = ladder_width; boxaz = ladder_thick; DDSolid solid_a = DDSolidFactory::box(dd_tmp_name_a,boxax/2,boxay/2,boxaz/2.); if(ladd_side==0) sdxe[enb] = ladder_width/4; sdye[enb]= -boxay/2 - LdrFrnt_Length/2; sdze[enb] = -ladder_thick/2. + LdrFrnt_Offset; if(ladd_side==1) sdxe[enb] = -ladder_width/4; DDSolid solid_b = DDSolidFactory::unionSolid(dd_tmp_name_b,solid_a,solid_lfhalf,DDTranslation(sdxe[enb],sdye[enb],sdze[enb]),DDRotation("esalgo:RM1299")); if(ladd_side==0) sdxe2[enb] = -ladder_width/4; sdye2[enb]= -boxay/2 - LdrFrnt_Length/2 + waf_active/2; sdze2[enb] = -ladder_thick/2. + LdrFrnt_Offset + (waf_active*sin(wedge_angle*2))/4; if(ladd_side==1) sdxe2[enb] = ladder_width/4; DDSolid solid_c = DDSolidFactory::unionSolid(dd_tmp_name_c,solid_b,solid_lfhtrunc,DDTranslation(sdxe2[enb],sdye2[enb],sdze2[enb]),DDRotation("esalgo:RM1299")); sdxe3[enb] = 0; sdye3[enb] = boxay/2 + LdrBck_Length/2; sdze3[enb] = -ladder_thick/2. + LdrBck_Offset; DDSolid solid = DDSolidFactory::unionSolid(ddname,solid_c,solid_lbck,DDTranslation(sdxe3[enb],sdye3[enb],sdze3[enb]),DDRotation("esalgo:RM1299")); DDLogicalPart ladder = DDLogicalPart(ddname,getLaddMaterial(),solid); DDName ddname2(getLadPrefix(1)+types_l4_[d],"esalgo"); DDLogicalPart ladder2 = DDLogicalPart(ddname2,getLaddMaterial(),solid); } } } //end of not plain ladder shape else { DDName dd_tmp_name_pa(getLadPrefix(2)+"p","esalgo"); DDName dd_tmp_name_pb(getLadPrefix(3)+"p","esalgo"); boxay = ladder_length-LdrFrnt_Length-LdrBck_Length; boxax = ladder_width; boxaz = ladder_thick; DDSolid solid_pa = DDSolidFactory::box(dd_tmp_name_pa,boxax/2,boxay/2,boxaz/2.); sdx = 0; sdy= -boxay/2 - LdrFrnt_Length/2; sdz = -ladder_thick/2. + LdrFrnt_Offset; DDSolid solid_pb = DDSolidFactory::unionSolid(dd_tmp_name_pb,solid_pa,solid_lfront,DDTranslation(sdx,sdy,sdz),DDRotation("esalgo:RM1299")); sdx = 0; sdy= boxay/2 + LdrBck_Length/2; sdz = -ladder_thick/2. + LdrBck_Offset; DDSolid solid = DDSolidFactory::unionSolid(ddname,solid_pb,solid_lbck,DDTranslation(sdx,sdy,sdz),DDRotation("esalgo:RM1299")); DDLogicalPart ladder = DDLogicalPart(ddname,getLaddMaterial(),solid); DDName ddname2(getLadPrefix(1)+types_l4_[d],"esalgo"); DDLogicalPart ladder2 = DDLogicalPart(ddname2,getLaddMaterial(),solid); } } // insert SWED, SFBX and SFBY into ladders swed_scopy_glob++; if(M<int(types_l5_.size())) { DDName ddname(getLadPrefix(0)+types_l5_[M],"esalgo"); DDName ddname2(getLadPrefix(1)+types_l5_[M],"esalgo"); for (int i=0; i<=1; i++) { for (int j=0; j<=4; j++) { xpos = (i*2-1)*waf_intra_col_sep/2.; ypos = -ladder_length/2. + 0.05*mm -(LdrFrnt_Length-LdrBck_Length)/2 + wedge_length/2. + j*waf_active; zpos = -ladder_thick/2. + 0.005*mm + wedge_offset; if(ladd_l5_map_[(i+j*2+M*10)]==1) { scopy ++; cpv.position(DDLogicalPart("esalgo:SWED"), ddname, scopy+1000*swed_scopy_glob, DDTranslation(xpos,ypos,zpos), DDRotation("esalgo:RM1299")); cpv.position(DDLogicalPart("esalgo:SWED"), ddname2, scopy+1000*swed_scopy_glob+100, DDTranslation(xpos,ypos,zpos), DDRotation("esalgo:RM1299")); ypos = ypos + ywedge_ceramic_diff; zpos = -ladder_thick/2. + 0.005*mm + zwedge_ceramic_diff; cpv.position(DDLogicalPart("esalgo:SFBX"), ddname, scopy+1000*swed_scopy_glob, DDTranslation(xpos,ypos,zpos), DDRotation("esalgo:RM1298")); cpv.position(DDLogicalPart("esalgo:SFBY"), ddname2, scopy+1000*swed_scopy_glob, DDTranslation(xpos,ypos,zpos), DDRotation("esalgo:RM1300A")); } } } } else { int d = M - types_l5_.size(); DDName ddname(getLadPrefix(0)+types_l4_[d],"esalgo"); DDName ddname2(getLadPrefix(1)+types_l4_[d],"esalgo"); for (int i=0; i<=1; i++) { for (int j=0; j<=3; j++) { xpos = (i*2-1)*waf_intra_col_sep/2.; ypos = -ladder_length/2. + 0.05*mm - (LdrFrnt_Length-LdrBck_Length)/2 + wedge_length/2. + j*waf_active; zpos = -ladder_thick/2. + 0.005*mm + wedge_offset; if(ladd_l4_map_[(i+j*2+(M-types_l5_.size())*8)]==1) { scopy ++; cpv.position(DDLogicalPart("esalgo:SWED"), ddname, scopy+1000*swed_scopy_glob, DDTranslation(xpos,ypos,zpos), DDRotation("esalgo:RM1299")); cpv.position(DDLogicalPart("esalgo:SWED"), ddname2, scopy+1000*swed_scopy_glob+100, DDTranslation(xpos,ypos,zpos), DDRotation("esalgo:RM1299")); ypos = ypos + ywedge_ceramic_diff; zpos = -ladder_thick/2. + 0.005*mm + zwedge_ceramic_diff; cpv.position(DDLogicalPart("esalgo:SFBX"), ddname, scopy+1000*swed_scopy_glob, DDTranslation(xpos,ypos,zpos), DDRotation("esalgo:RM1298")); cpv.position(DDLogicalPart("esalgo:SFBY"), ddname2, scopy+1000*swed_scopy_glob, DDTranslation(xpos,ypos,zpos), DDRotation("esalgo:RM1300A")); } } } } } // Positioning of ladders std::string type; int icopy[100] = {0}; for(int I=-9; I<=9;++I) { prev_length_=0; int J=std::abs(I); for (int K=0; K<noLaddInCol_[J]; K++) { std::string type; ladder_new_length_ = micromodule_length + 3*waf_active; ladd_shift_ = 4*waf_active; if(K==0) type = typeOfLaddRow0[J]; if(K==1) type = typeOfLaddRow1[J]; if(K==2) type = typeOfLaddRow2[J]; if(K==3) type = typeOfLaddRow3[J]; for(int i=0;i<int(types_l5_.size());i++) if(type == types_l5_[i]) { ladder_new_length_ = micromodule_length + 4*waf_active; ladd_shift_ = 5*waf_active;} int j = 0; for(int t=0;t<int(types_l5_.size());t++) if(type == types_l5_[t]) {j = t; if(I<0 && asym_ladd_[t] == 1 ) {j = j + 1; type = types_l5_[j];}} for(int t=0;t<int(types_l4_.size());t++) if(type == types_l4_[t]) {j = t+types_l5_.size(); if(I<0 && asym_ladd_[(t+types_l5_.size())] == 1 ) {j = j + 1; type = types_l4_[j-types_l5_.size()];}} xpos = I*(2*waf_intra_col_sep + waf_inter_col_sep); if(I>0) xpos = xpos + dee_separation; if(I<0) xpos = xpos - dee_separation; int sz = 20; ypos = (sz-int(startOfFirstLadd_[J]))*waf_active - ladder_new_length_/2. + (LdrFrnt_Length-LdrBck_Length)/2 + micromodule_length + 0.05*cm - prev_length_; prev_length_ += ladd_shift_; zpos = zlead1_ + ladder_thick/2. + 0.01*mm; icopy[j] +=1; DDName ddname(getLadPrefix(0)+type,"esalgo"); cpv.position(DDLogicalPart(ddname), DDName("SF","esalgo"), icopy[j], DDTranslation(xpos,ypos,zpos), DDRotation()); DDName ddname2(getLadPrefix(1)+type,"esalgo"); xpos = I*(2*waf_intra_col_sep + waf_inter_col_sep); cpv.position(DDLogicalPart(ddname2), DDName("SF","esalgo"), icopy[j], DDTranslation(ypos,-xpos,zpos-zlead1_+zlead2_), DDRotation("esalgo:R270")); int changed = 0; for(int t=0;t<int(types_l5_.size());t++) if(type == types_l5_[t]) {j = t; if(asym_ladd_[t] == 2 && !changed) { j = j - 1; changed = 1;} if(asym_ladd_[t] == 1 && !changed) { j = j + 1; changed = 1;} type = types_l5_[j];} for(int t=0;t<int(types_l4_.size());t++) if(type == types_l4_[t]) {j = t+types_l5_.size(); if(asym_ladd_[(t+types_l5_.size())] == 2 && !changed) { j = j - 1; changed = 1;} if(asym_ladd_[(t+types_l5_.size())] == 1 && !changed) { j = j + 1; changed = 1;} type = types_l4_[j-types_l5_.size()]; } icopy[j] +=1; if(I>0) xpos = xpos + dee_separation; if(I<0) xpos = xpos - dee_separation; DDName ddname3(getLadPrefix(0)+type,"esalgo"); cpv.position(DDLogicalPart(ddname3), DDName("SF","esalgo"), icopy[j], DDTranslation(xpos,-ypos,zpos), DDRotation("esalgo:R180")); DDName ddname4(getLadPrefix(1)+type,"esalgo"); xpos = I*(2*waf_intra_col_sep + waf_inter_col_sep); cpv.position(DDLogicalPart(ddname4), DDName("SF","esalgo"), icopy[j], DDTranslation(-ypos,-xpos,zpos-zlead1_+zlead2_), DDRotation("esalgo:R090")); } } }
void DDEcalPreshowerAlgo::doLayers | ( | DDCompactView & | pos | ) | [private] |
Definition at line 95 of file DDEcalPreshowerAlgo.cc.
References abs, abs1stx, abs1sty, abs2ndx, abs2ndy, absAlX_subtr1_Xshift_, absAlX_subtr1_Yshift_, absAlX_X_, absAlX_Y_, absAlY_subtr1_Xshift_, absAlY_subtr1_Yshift_, absAlY_X_, absAlY_Y_, DDSolidFactory::box(), getLayName(), getMaterial(), Exhume::I, i, In_rad_Abs_Al, In_rad_Abs_Pb, dttmaxenums::L, LogDebug, dbtoconf::parent, DDCompactView::position(), rMax_Abs_Al_, rmaxVec, rminVec, DDSolidFactory::subtraction(), thickLayers_, thickness_, DDSolidFactory::tubs(), zlead1_, and zlead2_.
Referenced by execute().
{ double zpos = -thickness_/2., sdx(0), sdy(0), bdx(0),bdy(0);; for(size_t i = 0; i<thickLayers_.size(); ++i) { int I = int(i)+1; // FOTRAN I (offset +1) double rIn(0), rOut(0), zHalf(0); // create the name DDName ddname(getLayName(i),"esalgo"); // namespace:name // cone dimensions rIn = rminVec[i]; rOut = rmaxVec[i]; zHalf = thickLayers_[i]/2.; // create a logical part representing a single layer in the preshower DDSolid solid = DDSolidFactory::tubs(ddname, zHalf, rIn, rOut, 0.,360.*deg); DDLogicalPart layer = DDLogicalPart(ddname,getMaterial(i),solid); // position the logical part w.r.t. the parent volume zpos += zHalf; // create a logical part representing a single layer in the preshower // skip layers with detectors, front and rear window if (I==2 || I==28 || I==13 || I==23) { zpos += zHalf; continue; } if ( I==12 ) { zlead1_ = zpos + zHalf; } if ( I==22 ) { zlead2_ = zpos + zHalf; } if (I==10 || I==20) { // New lead shape int absz=0; double outalbx, outalby, shiftR, outalbx2, outalby2, shiftR2; absz = int(abs1stx.size()); if ( I==20) absz = int(abs2ndx.size()); int cutabsx=-1, cutabsy=-1; DDName dd_Alname_f(getLayName(i)+"LOutAl","esalgo"); DDName dd_Alname_g(getLayName(i)+"LOutAl2","esalgo"); DDName dd_Alname_h(getLayName(i)+"LOutAltmp","esalgo"); DDName dd_Alname_i(getLayName(i)+"LOutAltmp2","esalgo"); DDName dd_Alname_j(getLayName(i)+"LOutAltmp3","esalgo"); DDSolid Out_Al = DDSolidFactory::tubs(dd_Alname_f,zHalf-0.1*mm,rMax_Abs_Al_-20*cm,rMax_Abs_Al_,0.,90.*deg); outalbx = absAlX_X_; outalby = rMax_Abs_Al_+0.1*mm-absAlX_subtr1_Yshift_; shiftR = absAlX_subtr1_Yshift_; if ( I==20) { outalbx = absAlY_X_; outalby = rMax_Abs_Al_+0.1*mm-absAlY_subtr1_Yshift_; shiftR = absAlY_subtr1_Xshift_; } DDSolid OutAltmp = DDSolidFactory::box(dd_Alname_h,outalbx/2+0.1*mm,outalby/2+0.1*mm,zHalf); DDSolid Out_Altmp3 = DDSolidFactory::subtraction(dd_Alname_j,Out_Al,OutAltmp,DDTranslation(outalbx/2,outalby/2+shiftR,0),DDRotation()); outalby2 = absAlX_Y_; outalbx2 = rMax_Abs_Al_+0.1*mm-absAlX_subtr1_Xshift_; shiftR2 = absAlX_subtr1_Xshift_; if ( I==20) { outalby2 = absAlY_Y_; outalbx2 = rMax_Abs_Al_+0.1*mm-absAlY_subtr1_Xshift_; shiftR2 = absAlY_subtr1_Xshift_; } DDSolid OutAltmp2 = DDSolidFactory::box(dd_Alname_i,outalbx2/2+0.1*mm,outalby2/2+0.1*mm,zHalf); DDSolid Out_Al2 = DDSolidFactory::subtraction(dd_Alname_g,Out_Altmp3,OutAltmp2,DDTranslation(outalbx2/2+shiftR2,outalby2/2,0),DDRotation()); for (int L=0; L<absz; ++L) { int K=L; std::ostringstream tmp_name_b, tmp_name_b2, tmp_FAl_name_c, tmp_FAl_name_d; tmp_name_b << getLayName(i) << "L" << K; tmp_name_b2 << getLayName(i) << "Lb2" << K; if(L==0) tmp_FAl_name_c << getLayName(i)<<"LOutAl2"; if(L>0) tmp_FAl_name_c << getLayName(i) << "LtmpAl" << K-1; tmp_FAl_name_d << getLayName(i) << "LtmpAl" << K; DDName dd_tmp_name_b(tmp_name_b.str(),"esalgo"); DDName dd_tmp_name_b2(tmp_name_b2.str(),"esalgo"); DDName dd_FAl_name_c(tmp_FAl_name_c.str(),"esalgo"); DDName dd_FAl_name_d(tmp_FAl_name_d.str(),"esalgo"); if(L==0) bdx = std::abs(abs1stx[K])/2; if(L>0) bdx = std::abs(abs1stx[K]-abs1stx[K-1])/2; bdy=abs1sty[K]; if(abs1stx[K] < rIn+30*cm) { bdy=abs1sty[K]/2 - 30*cm; cutabsx = K;} if(I==20) { if(L==0) bdx = std::abs(abs2ndx[K])/2; if(L>0) bdx = std::abs(abs2ndx[K]-abs2ndx[K-1])/2; bdy=abs2ndy[K];} if((abs2ndx[K] < rIn+30*cm) && I==20) { bdy=abs2ndy[K]/2 - 30*cm; cutabsy = K;} DDSolid solid_b = DDSolidFactory::box(dd_tmp_name_b,bdx,bdy,zHalf); DDSolid solid_b2 = DDSolidFactory::box(dd_tmp_name_b2,bdx+0.1*mm,bdy+0.1*mm,zHalf); sdx = abs1stx[K]-bdx ; sdy = 0; if(abs1stx[K] < rIn+30*cm ) sdy = abs1sty[K]-bdy ; if(I==20) {sdx = abs2ndx[K]-bdx ; sdy = 0;} if((abs2ndx[K] < rIn+30*cm) && I==20 ) sdy = abs2ndy[K]-bdy ; DDLogicalPart layer = DDLogicalPart(dd_tmp_name_b,getMaterial(i),solid_b); cpv.position(layer, parent(), 1, DDTranslation(sdx,sdy, zpos), DDRotation()); cpv.position(layer, parent(), 2, DDTranslation(-sdx,sdy, zpos), DDRotation()); DDSolid solid_c = DDSolid(dd_FAl_name_c); DDSolid solid_d = DDSolidFactory::subtraction(dd_FAl_name_d,solid_c,solid_b2,DDTranslation(sdx,sdy,0),DDRotation()); if(((abs1stx[K] < rIn+30*cm) && I==10) || ((abs2ndx[K] < rIn+30*cm) && I==20) ) { cpv.position(layer, parent(), 3, DDTranslation(sdx,-sdy, zpos), DDRotation()); cpv.position(layer, parent(), 4, DDTranslation(-sdx,-sdy, zpos), DDRotation()); DDSolid solid_c = DDSolid(dd_FAl_name_c); DDSolid solid_d = DDSolidFactory::subtraction(dd_FAl_name_d,solid_c,solid_b2,DDTranslation(sdx,sdy,0),DDRotation()); } } DDName dd_tmp_name_b(getLayName(i)+"Lcut","esalgo"); DDName dd_tmp_name_c(getLayName(i)+"tmpb","esalgo"); DDName dd_tmp_name_d(getLayName(i)+"LinPb","esalgo"); DDName dd_tmp_name_e(getLayName(i)+"LinAl","esalgo"); DDName dd_tmp_name_f(getLayName(i)+"LOutAl","esalgo"); bdx = abs1stx[cutabsx]; bdy=2*30*cm; if(I==20) bdx = abs2ndx[cutabsy]; bdy=2*30*cm; DDSolid solidcut = DDSolidFactory::box(dd_tmp_name_b,bdx,bdy,zHalf); DDSolid iner = DDSolidFactory::tubs(dd_tmp_name_c,zHalf+0.1*mm,0,In_rad_Abs_Pb,0.,360.*deg); DDSolid final = DDSolidFactory::subtraction(dd_tmp_name_d,solidcut,iner,DDTranslation(0,0,0),DDRotation()); DDLogicalPart layer = DDLogicalPart(dd_tmp_name_d,getMaterial(i),final); cpv.position(layer, parent(), 1, DDTranslation(0,0, zpos), DDRotation()); DDSolid iner_Al = DDSolidFactory::tubs(dd_tmp_name_e,zHalf,In_rad_Abs_Al,In_rad_Abs_Pb-0.01*mm,0.,360.*deg); DDLogicalPart layerAl = DDLogicalPart(dd_tmp_name_e,getMaterial(i-1),iner_Al); cpv.position(layerAl, parent(), 1, DDTranslation(0,0, zpos), DDRotation()); std::ostringstream tmp_Alname_fin; tmp_Alname_fin << getLayName(i) << "LtmpAl" << absz-1; DDName dd_Alname_fin(tmp_Alname_fin.str(),"esalgo"); DDSolid Outer_Al = DDSolid(dd_Alname_fin); DDLogicalPart layerFinOutAl = DDLogicalPart(dd_tmp_name_f,getMaterial(i-1),Outer_Al); cpv.position(layerFinOutAl, parent(), 1, DDTranslation(0,0, zpos), DDRotation()); cpv.position(layerFinOutAl, parent(), 2, DDTranslation(0,0, zpos), DDRotation("esalgo:RABS90")); cpv.position(layerFinOutAl, parent(), 3, DDTranslation(0,0, zpos), DDRotation("esalgo:RABS180B")); cpv.position(layerFinOutAl, parent(), 4, DDTranslation(0,0, zpos), DDRotation("esalgo:R180")); } else { cpv.position(layer, parent(), 1, DDTranslation(0.,0., zpos), DDRotation()); LogDebug("SFGeom")<<" debug : tubs, Logical part: "<<DDLogicalPart(ddname,getMaterial(i),solid)<<"\n translation "<<DDTranslation(0.,0.,zpos)<<" rotation "<<DDRotation()<< "\n"; } zpos += zHalf; } }
void DDEcalPreshowerAlgo::doSens | ( | DDCompactView & | pos | ) | [private] |
Definition at line 673 of file DDEcalPreshowerAlgo.cc.
References i, LogDebug, DDCompactView::position(), and waf_active.
Referenced by execute().
{ double xpos(0), ypos(0); for(size_t i = 0; i<32; ++i) { xpos = -waf_active/2. + i*waf_active/32. + waf_active/64.; cpv.position(DDLogicalPart("esalgo:SFSX"), DDName("SFWX","esalgo"), i+1, DDTranslation(xpos,0., 0.),DDRotation()); LogDebug("SFGeom")<<" debug : SFSX, Logical part: "<<DDLogicalPart("esalgo:SFSX")<<"\n translation "<<DDTranslation(xpos,0.,0.)<<" rotation "<<DDRotation()<<" copy number= " <<i<<"\n"; ypos = -waf_active/2. + i*waf_active/32. + waf_active/64.; cpv.position(DDLogicalPart("esalgo:SFSY"),DDName("SFWY","esalgo"), i+1, DDTranslation(0.,ypos, 0.), DDRotation()); LogDebug("SFGeom")<<" debug : SFSY, Logical part: "<<DDLogicalPart("esalgo:SFSY")<<"\n translation "<<DDTranslation(0.,ypos,0.)<<" rotation "<<DDRotation()<< " copy number= " <<i<< "\n"; } }
void DDEcalPreshowerAlgo::execute | ( | DDCompactView & | pos | ) |
Definition at line 82 of file DDEcalPreshowerAlgo.cc.
References doLadders(), doLayers(), doSens(), and LogDebug.
DDMaterial DDEcalPreshowerAlgo::getLaddMaterial | ( | ) | const [inline] |
Definition at line 15 of file DDEcalPreshowerAlgo.h.
References LaddMaterial_.
Referenced by doLadders().
{ return DDMaterial(LaddMaterial_) ; }
std::string DDEcalPreshowerAlgo::getLadPrefix | ( | unsigned int | i | ) | const [inline] |
Definition at line 17 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders().
std::string DDEcalPreshowerAlgo::getLayName | ( | unsigned int | i | ) | const [inline] |
Definition at line 16 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers().
DDMaterial DDEcalPreshowerAlgo::getMaterial | ( | unsigned int | i | ) | const [inline] |
Definition at line 14 of file DDEcalPreshowerAlgo.h.
References materials_.
Referenced by doLayers().
{return DDMaterial(materials_[i]);}
void DDEcalPreshowerAlgo::initialize | ( | const DDNumericArguments & | nArgs, |
const DDVectorArguments & | vArgs, | ||
const DDMapArguments & | mArgs, | ||
const DDStringArguments & | sArgs, | ||
const DDStringVectorArguments & | vsArgs | ||
) |
Definition at line 17 of file DDEcalPreshowerAlgo.cc.
References abs1stx, abs1sty, abs2ndx, abs2ndy, absAlX_subtr1_Xshift_, absAlX_subtr1_Yshift_, absAlX_X_, absAlX_Y_, absAlY_subtr1_Xshift_, absAlY_subtr1_Yshift_, absAlY_X_, absAlY_Y_, asym_ladd_, box_thick, ceramic_length, dee_separation, In_rad_Abs_Al, In_rad_Abs_Pb, ladd_l4_map_, ladd_l5_map_, ladder_thick, ladder_width, LaddMaterial_, ladPfx_, layName_, LdrBck_Length, LdrBck_Offset, LdrFrnt_Length, LdrFrnt_Offset, LogDebug, materials_, micromodule_length, noLaddInCol_, rMax_Abs_Al_, rmaxVec, rminVec, startOfFirstLadd_, thickLayers_, thickness_, typeOfLaddRow0, typeOfLaddRow1, typeOfLaddRow2, typeOfLaddRow3, types_l4_, types_l5_, waf_active, waf_inter_col_sep, waf_intra_col_sep, wedge_angle, wedge_back_thick, wedge_length, wedge_offset, ywedge_ceramic_diff, and zwedge_ceramic_diff.
{ LogDebug("EcalGeom") << "DDEcalPreshowerAlgo info: Initialize" ; asym_ladd_ = vArgs["ASYMETRIC_LADDER"]; types_l5_ = vsArgs["TYPES_OF_LADD_L5"]; types_l4_ = vsArgs["TYPES_OF_LADD_L4"]; ladd_l5_map_ = vArgs["LADD_L5_MAP"]; ladd_l4_map_ = vArgs["LADD_L4_MAP"]; noLaddInCol_ = vArgs["NUMB_OF_LADD_IN_COL"]; startOfFirstLadd_ = vArgs["START_OF_1ST_LADD"]; typeOfLaddRow0 = vsArgs["TYPE_OF_LADD_1"]; typeOfLaddRow1 = vsArgs["TYPE_OF_LADD_2"]; typeOfLaddRow2 = vsArgs["TYPE_OF_LADD_3"]; typeOfLaddRow3 = vsArgs["TYPE_OF_LADD_4"]; thickLayers_ = vArgs["Layers"]; thickness_ = double(nArgs["PRESH_Z_TOTAL"]); materials_ = vsArgs["LayMat"]; layName_ = vsArgs["LayName"]; rmaxVec = vArgs["R_MAX"]; // inner radii rminVec = vArgs["R_MIN"]; // outer radii waf_intra_col_sep = double(nArgs["waf_intra_col_sep"]); waf_inter_col_sep = double(nArgs["waf_inter_col_sep"]); waf_active = double(nArgs["waf_active"]); wedge_length = double(nArgs["wedge_length"]); wedge_offset = double(nArgs["wedge_offset"]); zwedge_ceramic_diff = double(nArgs["zwedge_ceramic_diff"]); ywedge_ceramic_diff = double(nArgs["ywedge_ceramic_diff"]); ceramic_length = double(nArgs["ceramic_length"]); wedge_angle = double(nArgs["wedge_angle"]); wedge_back_thick = double(nArgs["wedge_back_thick"]); ladder_thick = double(nArgs["ladder_thick"]); ladder_width = double(nArgs["ladder_width"]); micromodule_length = double(nArgs["micromodule_length"]); box_thick = double(nArgs["box_thick"]); abs1stx = vArgs["1ST_ABSX"]; abs1sty = vArgs["1ST_ABSY"]; abs2ndx = vArgs["2ND_ABSX"]; abs2ndy = vArgs["2ND_ABSY"]; ladPfx_ = vsArgs["LadPrefix"]; LaddMaterial_ = sArgs["LadderMaterial"]; LdrFrnt_Length = double(nArgs["LdrFrnt_Length"]); LdrFrnt_Offset = double(nArgs["LdrFrnt_Offset"]); LdrBck_Length = double(nArgs["LdrBck_Length"]); LdrBck_Offset = double(nArgs["LdrBck_Offset"]); dee_separation = double(nArgs["dee_sep"]); In_rad_Abs_Al = double(nArgs["R_MIN_Abs_Al"]); In_rad_Abs_Pb = double(nArgs["R_MIN_Abs_Pb"]); rMax_Abs_Al_ = double(nArgs["R_MAX_Abs_Al"]); absAlX_X_ = double(nArgs["AbsAlX_X"]); absAlX_Y_ = double(nArgs["AbsAlX_Y"]); absAlX_subtr1_Xshift_ = double(nArgs["AbsAlX_subtr1_Xshift"]); absAlX_subtr1_Yshift_ = double(nArgs["AbsAlX_subtr1_Yshift"]); absAlY_X_ = double(nArgs["AbsAlY_X"]); absAlY_Y_ = double(nArgs["AbsAlY_Y"]); absAlY_subtr1_Xshift_ = double(nArgs["AbsAlY_subtr1_Xshift"]); absAlY_subtr1_Yshift_ = double(nArgs["AbsAlY_subtr1_Yshift"]); }
std::vector<double> DDEcalPreshowerAlgo::abs1stx [private] |
Definition at line 40 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
std::vector<double> DDEcalPreshowerAlgo::abs1sty [private] |
Definition at line 41 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
std::vector<double> DDEcalPreshowerAlgo::abs2ndx [private] |
Definition at line 42 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
std::vector<double> DDEcalPreshowerAlgo::abs2ndy [private] |
Definition at line 43 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
double DDEcalPreshowerAlgo::absAlX_subtr1_Xshift_ [private] |
Definition at line 61 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
double DDEcalPreshowerAlgo::absAlX_subtr1_Yshift_ [private] |
Definition at line 61 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
double DDEcalPreshowerAlgo::absAlX_X_ [private] |
Definition at line 61 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
double DDEcalPreshowerAlgo::absAlX_Y_ [private] |
Definition at line 61 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
double DDEcalPreshowerAlgo::absAlY_subtr1_Xshift_ [private] |
Definition at line 62 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
double DDEcalPreshowerAlgo::absAlY_subtr1_Yshift_ [private] |
Definition at line 62 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
double DDEcalPreshowerAlgo::absAlY_X_ [private] |
Definition at line 62 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
double DDEcalPreshowerAlgo::absAlY_Y_ [private] |
Definition at line 62 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
std::vector<double> DDEcalPreshowerAlgo::asym_ladd_ [private] |
Definition at line 44 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::box_thick [private] |
Definition at line 59 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::ceramic_length [private] |
Definition at line 63 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::dee_separation [private] |
Definition at line 59 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::In_rad_Abs_Al [private] |
Definition at line 59 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
double DDEcalPreshowerAlgo::In_rad_Abs_Pb [private] |
Definition at line 59 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
std::vector<double> DDEcalPreshowerAlgo::ladd_l4_map_ [private] |
Definition at line 52 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
std::vector<double> DDEcalPreshowerAlgo::ladd_l5_map_ [private] |
Definition at line 51 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::ladder_length [private] |
Definition at line 60 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders().
double DDEcalPreshowerAlgo::ladder_thick [private] |
Definition at line 60 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::ladder_width [private] |
Definition at line 60 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
std::string DDEcalPreshowerAlgo::LaddMaterial_ [private] |
Definition at line 38 of file DDEcalPreshowerAlgo.h.
Referenced by getLaddMaterial(), and initialize().
std::vector<std::string> DDEcalPreshowerAlgo::ladPfx_ [private] |
Definition at line 37 of file DDEcalPreshowerAlgo.h.
Referenced by getLadPrefix(), and initialize().
std::vector<std::string> DDEcalPreshowerAlgo::layName_ [private] |
Definition at line 36 of file DDEcalPreshowerAlgo.h.
Referenced by getLayName(), and initialize().
double DDEcalPreshowerAlgo::LdrBck_Length [private] |
Definition at line 63 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::LdrBck_Offset [private] |
Definition at line 63 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::LdrFrnt_Length [private] |
Definition at line 63 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::LdrFrnt_Offset [private] |
Definition at line 63 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
std::vector<std::string> DDEcalPreshowerAlgo::materials_ [private] |
Definition at line 35 of file DDEcalPreshowerAlgo.h.
Referenced by getMaterial(), and initialize().
double DDEcalPreshowerAlgo::micromodule_length [private] |
Definition at line 60 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
int DDEcalPreshowerAlgo::nmat_ [private] |
Definition at line 33 of file DDEcalPreshowerAlgo.h.
std::vector<double> DDEcalPreshowerAlgo::noLaddInCol_ [private] |
Definition at line 47 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::rMax_Abs_Al_ [private] |
Definition at line 61 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
std::vector<double> DDEcalPreshowerAlgo::rmaxVec [private] |
Definition at line 46 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
std::vector<double> DDEcalPreshowerAlgo::rminVec [private] |
Definition at line 45 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
std::vector<double> DDEcalPreshowerAlgo::startOfFirstLadd_ [private] |
Definition at line 48 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
std::vector<double> DDEcalPreshowerAlgo::thickLayers_ [private] |
Definition at line 39 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
double DDEcalPreshowerAlgo::thickness_ [private] |
Definition at line 34 of file DDEcalPreshowerAlgo.h.
Referenced by doLayers(), and initialize().
std::vector<std::string> DDEcalPreshowerAlgo::typeOfLaddRow0 [private] |
Definition at line 53 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
std::vector<std::string> DDEcalPreshowerAlgo::typeOfLaddRow1 [private] |
Definition at line 54 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
std::vector<std::string> DDEcalPreshowerAlgo::typeOfLaddRow2 [private] |
Definition at line 55 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
std::vector<std::string> DDEcalPreshowerAlgo::typeOfLaddRow3 [private] |
Definition at line 56 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
std::vector<std::string> DDEcalPreshowerAlgo::types_l4_ [private] |
Definition at line 50 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
std::vector<std::string> DDEcalPreshowerAlgo::types_l5_ [private] |
Definition at line 49 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::waf_active [private] |
Definition at line 59 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), doSens(), and initialize().
double DDEcalPreshowerAlgo::waf_inter_col_sep [private] |
Definition at line 59 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::waf_intra_col_sep [private] |
Definition at line 59 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::wedge_angle [private] |
Definition at line 59 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::wedge_back_thick [private] |
Definition at line 63 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::wedge_length [private] |
Definition at line 59 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::wedge_offset [private] |
Definition at line 59 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::yladder_1stwedge_diff [private] |
Definition at line 60 of file DDEcalPreshowerAlgo.h.
double DDEcalPreshowerAlgo::ywedge_ceramic_diff [private] |
Definition at line 59 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().
double DDEcalPreshowerAlgo::zfoam1_ [private] |
Definition at line 58 of file DDEcalPreshowerAlgo.h.
double DDEcalPreshowerAlgo::zfoam2_ [private] |
Definition at line 58 of file DDEcalPreshowerAlgo.h.
double DDEcalPreshowerAlgo::zlead1_ [private] |
Definition at line 58 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and doLayers().
double DDEcalPreshowerAlgo::zlead2_ [private] |
Definition at line 58 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and doLayers().
double DDEcalPreshowerAlgo::zwedge_ceramic_diff [private] |
Definition at line 59 of file DDEcalPreshowerAlgo.h.
Referenced by doLadders(), and initialize().