{ int med_plawa = 2; float padl_dim[3] = { 1.2 , 10. , 1. }; float padl_pos[3] = { 25.0 , 0.0 , 6.9 }; float overlap = 2.0 ; float plawa_d0 = 3.3; float plawa_h0 = 2.4; float plawa_w0 = 1.8; float plawa_thetamin = 7.0 ; float plawa_lo1 = 440.0 ; float plawa_le1 = 433.5 ; float plawa_wm = 6.5 ; float plawa_wn = 6.5 ; float plawa_wmx = 6.5 ; float plawa_wmv = 6.5 ; float plawa_lgl = 10.0 ; float phi = 0.; float plawa_wc[4] = { 6.7 , 6.8 , 6.9 , 7.0 }; float plawa_wmy[5] = { 6.5 , 6.6 , 6.75 , 6.85 , 6.9 }; float pbox_pos[3] = {0.0 , 0.0 , 351.0 }; float padl_rot[6]; float sl[11][11][2],l[11][11][2] ; float weff[11][2] ; float theta[10][11][8]; float detheta[10][11][8]; float dw[11][2]; float dwm[11][2]; float dwn[11][2]; float dwmo[11][2]; float dwme[11][2]; float lhw[11][2]; float l[10][11][2]; float h[10][11][2]; float z[10][11][2]; float r[10][11][2]; float sl1[10][11][2]; float sl2[10][11][2]; float lgl1[10][11][2]; float d[10][11][2]; float delta[10][11][2]; float nul_rot[6] = {90.0 , 0.0 , 90.0 , 90.0, 0.0 , 0.0 }; int nsmax[2][11] = {{ 1,3,3,3,3,7,7,7,7,7,5},{3,3,3,3,5,7,7,7,7,9,0}}; sl[0][0][0] = 44.6591 ; sl[1][ 0][0] = 39.5658 ; sl[0][ 1][0] = 61.0938 ; sl[1][ 1][0] = 55.8640 ; sl[2][ 1][0] = 51.4613 ; sl[3][ 1][0] = 46.1433 ; sl[0][ 2][0] = 67.5388 ; sl[1][ 2][0] = 62.2553 ; sl[2][ 2][0] = 57.7295 ; sl[3][ 2][0] = 52.4998 ; sl[0][ 3][0] = 73.7893 ; sl[1][ 3][0] = 68.4248 ; sl[2][ 3][0] = 63.9358 ; sl[3][ 3][0] = 58.6257 ; sl[0][ 4][0] = 79.8209 ; sl[1][ 4][0] = 74.3672 ; sl[2][ 4][0] = 69.9176 ; sl[3][ 4][0] = 64.5197 ; sl[0][ 5][0] = 99.5377 ; sl[1][ 5][0] = 93.8730 ; sl[2][ 5][0] = 89.5616 ; sl[3][ 5][0] = 83.9675 ; sl[4][ 5][0] = 79.5679 ; sl[5][ 5][0] = 74.0871 ; sl[6][ 5][0] = 69.5391 ; sl[7][ 5][0] = 64.0578 ; sl[0][ 6][0] = 113.4673 ; sl[1][ 6][0] = 107.5895 ; sl[2][ 6][0] = 103.3630 ; sl[3][ 6][0] = 97.5449 ; sl[4][ 6][0] = 93.2192 ; sl[5][ 6][0] = 87.4609 ; sl[6][ 6][0] = 83.0361 ; sl[7][ 6][0] = 77.3377 ; sl[0][ 7][0] = 127.9465 ; sl[1][ 7][0] = 121.0129 ; sl[2][ 7][0] = 116.8684 ; sl[3][ 7][0] = 110.7986 ; sl[4][ 7][0] = 106.5439 ; sl[5][ 7][0] = 100.5329 ; sl[6][ 7][0] = 96.1660 ; sl[7][ 7][0] = 90.2198 ; sl[0][ 8][0] = 140.6101 ; sl[1][ 8][0] = 134.1880 ; sl[2][ 8][0] = 130.1206 ; sl[3][ 8][0] = 123.7623 ; sl[4][ 8][0] = 119.5707 ; sl[5][ 8][0] = 113.2783 ; sl[6][ 8][0] = 108.9625 ; sl[7][ 8][0] = 102.7318 ; sl[0][ 9][0] = 153.9179 ; sl[1][ 9][0] = 147.1681 ; sl[2][ 9][0] = 143.1704 ; sl[3][ 9][0] = 136.4884 ; sl[4][ 9][0] = 132.3538 ; sl[5][ 9][0] = 125.7396 ; sl[6][ 9][0] = 121.4634 ; sl[7][ 9][0] = 114.9170 ; sl[0][10][0] = 182.5757 ; sl[1][10][0] = 175.3018 ; sl[2][10][0] = 171.5222 ; sl[3][10][0] = 164.3184 ; sl[4][10][0] = 160.3863 ; sl[5][10][0] = 153.2521 ; sl[0][ 0][1] = 57.5704 ; sl[1][ 0][1] = 52.3971 ; sl[2][ 0][1] = 47.8137 ; sl[3][ 0][1] = 42.6923 ; sl[0][ 1][1] = 64.1645 ; sl[1][ 1][1] = 58.9206 ; sl[2][ 1][1] = 54.3739 ; sl[3][ 1][1] = 49.1823 ; sl[0][ 2][1] = 70.5263 ; sl[1][ 2][1] = 65.2048 ; sl[2][ 2][1] = 60.6962 ; sl[3][ 2][1] = 55.4285 ; sl[0][ 3][1] = 76.7747 ; sl[1][ 3][1] = 71.2676 ; sl[2][ 3][1] = 66.7969 ; sl[3][ 3][1] = 61.4456 ; sl[0][ 4][1] = 82.5881 ; sl[1][ 4][1] = 77.0862 ; sl[2][ 4][1] = 72.6538 ; sl[3][ 4][1] = 67.2098 ; sl[4][ 4][1] = 62.6906 ; sl[5][ 4][1] = 57.3044 ; sl[0][ 5][1] =106.5806 ; sl[1][ 5][1] =100.8173 ; sl[2][ 5][1] = 96.5509 ; sl[3][ 5][1] = 90.8473 ; sl[4][ 5][1] = 86.4848 ; sl[5][ 5][1] = 80.8410 ; sl[6][ 5][1] = 76.3843 ; sl[7][ 5][1] = 70.7976 ; sl[0][ 6][1] =120.4061 ; sl[1][ 6][1] =114.4051 ; sl[2][ 6][1] =110.2199 ; sl[3][ 6][1] =104.2797 ; sl[4][ 6][1] = 99.9913 ; sl[5][ 6][1] = 94.1109 ; sl[6][ 6][1] = 89.7164 ; sl[7][ 6][1] = 83.8958 ; sl[0][ 7][1] =133.9547 ; sl[1][ 7][1] =127.6801 ; sl[2][ 7][1] =123.5755 ; sl[3][ 7][1] =117.3646 ; sl[4][ 7][1] =113.1418 ; sl[5][ 7][1] =106.9959 ; sl[6][ 7][1] =102.6569 ; sl[7][ 7][1] = 96.5716 ; sl[0][ 8][1] =147.3184 ; sl[1][ 8][1] =140.7367 ; sl[2][ 8][1] =136.7006 ; sl[3][ 8][1] =130.1908 ; sl[4][ 8][1] =126.0291 ; sl[5][ 8][1] =119.5791 ; sl[6][ 8][1] =115.2866 ; sl[7][ 8][1] =108.9023 ; sl[0][ 9][1] =160.5302 ; sl[1][ 9][1] =153.603 ; sl[2][ 9][1] =149.638 ; sl[3][ 9][1] =142.778 ; sl[4][ 9][1] =138.669 ; sl[5][ 9][1] =131.878 ; sl[6][ 9][1] =127.620 ; sl[7][ 9][1] =120.896 ; sl[8][ 9][1] =116.476 ; sl[9][ 9][1] =109.836 ; for(int i=0;i<2;i++) { for(int j=0;j<11-i;j++) { if(j==8) { plawa_wm = plawa_wc[ 1 - (i+1)%2]; plawa_wmx = plawa_wmy[ 1 - (i+1)%2 ]; } else if(j==9) { plawa_wm = plawa_wc[2]; plawa_wmx = plawa_wmy[ 3 -(i+1)%2]; } else if(j==10) { plawa_wm = plawa_wc[3]; plawa_wmx = plawa_wmy[4]; } else { plawa_wm = plawa_wmv; plawa_wmx = plawa_wmv; } if(j==0) { weff[j][i] = sqrt(plawa_d0*plawa_d0 - plawa_h0*plawa_h0) + plawa_w0 + 2*plawa_h0*tan( 3.14/180*plawa_thetamin)*cos(3.14/180*plawa_thetamin); dw[j][i] = (plawa_wm - weff[j][i])/2; dwm[j][i] = (plawa_wm - weff[j][i])/2 + plawa_w0*cos(3.14/180*plawa_thetamin); dwmo[j][i] = dw[j][i] + plawa_w0*cos(3.14/180*plawa_thetamin); dwme[j][i] = dw[j][i] + plawa_h0*sin(3.14/180*plawa_thetamin); } else { weff[j][i] = sqrt(plawa_d0*plawa_d0 - plawa_h0*plawa_h0) + plawa_w0 + 2*plawa_h0*tan( 3.14/180* (theta[nsmax[i][j-1]][j-1][i]+detheta[nsmax[i][j-1]][j-1][i]))* cos(3.14/180*(theta[nsmax[i][j-1]][j-1][i]+detheta[nsmax[i][j-1]][j-1][i])); dw[j][i] = (plawa_wm - weff[j][i])/2; dwm[j][i] = (plawa_wm - weff[j][i])/2 + plawa_w0*cos(3.14/180*(theta[nsmax[i][j-1]][j-1][i]+detheta[nsmax[i][j-1]][j-1][i])); dwmo[j][i] = dw[j][i] + plawa_w0*cos(3.14/180*(theta[nsmax[i][j-1]][j-1][i]+detheta[nsmax[i][j-1]][j-1][i])); dwme[j][i] = dw[j][i] + plawa_h0*sin(3.14/180*(theta[nsmax[i][j-1]][j-1][i]+detheta[nsmax[i][j-1]][j-1][i])); } for(int k=0;k0 { if(pow((-1),(i+1))==-1) { if(pow((-1),(k+1))==-1) { lhw[j][i] = plawa_lo1 - 2*j*plawa_wn ; if(j==9) lhw[j][i] = lhw[j][i] - 0.5; if(j==10) lhw[j][i] = lhw[j][i] - 1.3; } else { lhw[j][i] = plawa_lo1 - (2*(j)+1)*plawa_wn ; if(j==8) lhw[j][i] = lhw[j][i] - 0.2; if(j==9) lhw[j][i] = lhw[j][i] - 0.9; if(j==10) lhw[j][i] = lhw[j][i] - 1.8; } } else { if(pow((-1),(k+1))==-1) { lhw[j][i] = plawa_le1 - 2*(j)*plawa_wn ; if(j==8) lhw[j][i] = lhw[j][i] - 0.2; if(j==9) lhw[j][i] = lhw[j][i] - 0.9; } else { lhw[j][i] = plawa_le1 - (2*(j)+1)*plawa_wn ; if(j==8) lhw[j][i] = lhw[j][i] - 0.5; if(j==9) lhw[j][i] = lhw[j][i] - 1.3; } } if(pow((-1),(k+1))==-1) { if(j==0) { d[k][j][i] = sqrt(plawa_d0*plawa_d0 - plawa_h0*plawa_h0) + 2.*plawa_h0 * tan(3.14/180*plawa_thetamin) ; } else { d[k][j][i] = sqrt(plawa_d0*plawa_d0 - plawa_h0*plawa_h0) + 2.*plawa_h0 * tan(3.14/180*(theta[nsmax[i][j-1]][j-1][i] + detheta[nsmax[i][j-1]][j-1][i])) ; } } else { d[k][j][i] = sqrt(plawa_d0*plawa_d0 + plawa_h0*plawa_h0 ); } l[k][j][i] = l[k-1][j][i] - plawa_h0 * sin(3.14/180*theta[k-1][j][i]) + (pow((-1),(k)))*d[k][j][i] * cos(3.14/180*(theta[k-1][j][i]+detheta[k-1][j][i])); h[k][j][i] = h[k-1][j][i] + plawa_h0 * cos(3.14/180*theta[k-1][j][i]) + (pow((-1),(k)))*d[k][j][i] * sin(3.14/180*(theta[k-1][j][i]+detheta[k-1][j][i])); if(pow((-1),(k+1))==1) { delta[k][j][i] = fabs( dwme[j][i] - fabs( lhw[j][i] - l[k][j][i] ) ) ; } else { delta[k][j][i] = fabs( dwmo[j][i] - fabs( lhw[j][i] - l[k][j][i] ) ) ; } l[k][j][i] = l[k][j][i] + delta[k][j][i] ; h[k][j][i] = h[k][j][i] + delta[k][j][i] * tan( 3.14/180 * (theta[k-1][j][i] + detheta[k-1][j][i])); detheta[k][j][i] = 180/3.14 * asin((plawa_h0/2.) / sqrt(pow(l[k][j][i],2) + pow(h[k][j][i],2))); theta[k][j][i] = theta[k-1][j][i] + detheta[k-1][j][i] + detheta[k][j][i]; z[k][j][i] = l[k][j][i] - sqrt( pow(plawa_h0/2.,2) + pow(plawa_w0/2.,2)) * cos(atan(plawa_h0/plawa_w0) + 3.14/180*theta[k][j][i]); r[k][j][i] = h[k][j][i] + sqrt( pow(plawa_h0/2.,2) + pow(plawa_w0/2.,2)) * sin(atan(plawa_h0/plawa_w0) + 3.14/180*theta[k][j][i]); sl1[k][j][i] = sl[k][j][i] + 2.*overlap ; sl2[k][j][i] = sl2[1][j][i] ; lgl1[k][j][i] = (sl2[k][j][i] - sl1[k][j][i])/2. ; } padl_dim[1] = sl1[k][j][i]/2; padl_pos[0] = r[k][j][i] * cos(3.14/180*phi); padl_pos[1] = r[k][j][i] * sin(3.14/180*phi); padl_pos[2] = z[k][j][i] - pbox_pos[2]; TGeoVolume *pbox = gGeoManager -> MakeBox("pbox",medium[med_plawa-1],padl_dim[0],padl_dim[1],padl_dim[2]); gGeoManager->SetVolumeAttribute("pbox","seen",1); gGeoManager->SetVolumeAttribute("pbox","colo",15); padl_rot[0] = nul_rot[0] + theta[k][j][i]; padl_rot[2] = nul_rot[2]; padl_rot[4] = nul_rot[4] + theta[k][j][i]; for(int ii=0;ii<4;ii++) { if(i==0) { phi = float(ii-1)*90; padl_rot[1] = nul_rot[1] + phi; padl_rot[3] = nul_rot[3] + phi; padl_rot[5] = nul_rot[5] + phi; } if(i==1) { phi = float(ii-1)*90+45; padl_rot[1] = nul_rot[1] + phi; padl_rot[3] = nul_rot[3] + phi; padl_rot[5] = nul_rot[5] + phi; } padl_pos[0] = r[k][j][i] *cos(3.14/180*phi); padl_pos[1] = r[k][j][i] *sin(3.14/180*phi); PBOX->AddNode( pbox , 100000*ii+10000*i+100*j+k , new TGeoCombiTrans(padl_pos[0],padl_pos[1],padl_pos[2],new TGeoRotation("rot1",padl_rot[0],padl_rot[1],padl_rot[2],padl_rot[3],padl_rot[4],padl_rot[5]))); } } } } }