- z_ps = - dpara_emm1[2] + sm_thick/2.;
- gMC->Gspos("ESMB", 1, "EMM1", 0., 0., z_ps, 0, "ONLY");
- z_pb=z_ps+sm_thick/2.+dpara_pb1[2];
- gMC->Gspos("EPB1", 1, "EMM1", 0., 0., z_pb, 0, "ONLY");
- z_fe=z_pb+dpara_pb1[2]+dpara_fe1[2];
- gMC->Gspos("EFE1", 1, "EMM1", 0., 0., z_fe, 0, "ONLY");
- z_cv=z_fe+dpara_fe1[2]+sm_thick/2.;
- gMC->Gspos("ESMA", 1, "EMM1", 0., 0., z_cv, 0, "ONLY");
-
-
-
- // EMM2 : special master module having full row of cells but the number
- // of rows limited by hole.
-
- Float_t dpara_emm2[6] = {12.5,12.5,0.8,30.,0.,0.};
- dpara_emm2[0] = sm_length/2.;
- dpara_emm2[1] = (ncell_sm - ncell_hole + 0.25) * cell_radius * root3_2;
- dpara_emm2[2] = dm_thick/2.;
-
- gMC->Gsvolu("EMM2","PARA", idtmed[698], dpara_emm2, 6);
- gMC->Gsatt("EMM2", "SEEN", 1);
-
-
- // Pb Convertor for EMM2
- Float_t dpara_pb2[6] = {12.5,12.5,8.,30.,0.,0.};
- dpara_pb2[0] = dpara_emm2[0];
- dpara_pb2[1] = dpara_emm2[1];
- dpara_pb2[2] = th_lead/2.;
-
- gMC->Gsvolu("EPB2","PARA", idtmed[600], dpara_pb2, 6);
- gMC->Gsatt ("EPB2", "SEEN", 0);
-
- // Fe Support for EMM2
- Float_t dpara_fe2[6] = {12.5,12.5,8.,30.,0.,0.};
- dpara_fe2[0] = dpara_pb2[0];
- dpara_fe2[1] = dpara_pb2[1];
- dpara_fe2[2] = th_steel/2.;
-
- gMC->Gsvolu("EFE2","PARA", idtmed[618], dpara_fe2, 6);
- gMC->Gsatt ("EFE2", "SEEN", 0);
-
-
-
- // position supermodule ESMX, ESMY inside EMM2
-
- z_ps = - dpara_emm2[2] + sm_thick/2.;
- gMC->Gspos("ESMY", 1, "EMM2", 0., 0., z_ps, 0, "ONLY");
- z_pb = z_ps + sm_thick/2.+dpara_pb2[2];
- gMC->Gspos("EPB2", 1, "EMM2", 0., 0., z_pb, 0, "ONLY");
- z_fe = z_pb + dpara_pb2[2]+dpara_fe2[2];
- gMC->Gspos("EFE2", 1, "EMM2", 0., 0., z_fe, 0, "ONLY");
- z_cv = z_fe + dpara_fe2[2]+sm_thick/2.;
- gMC->Gspos("ESMX", 1, "EMM2", 0., 0., z_cv, 0, "ONLY");
- //
-
-
- // EMM3 : special master module having truncated rows and columns of cells
- // limited by hole.
-
- Float_t dpara_emm3[6] = {12.5,12.5,0.8,30.,0.,0.};
- dpara_emm3[0] = dpara_emm2[1]/root3_2;
- dpara_emm3[1] = (ncell_hole + 0.25) * cell_radius *root3_2;
- dpara_emm3[2] = dm_thick/2.;
-
- gMC->Gsvolu("EMM3","PARA", idtmed[698], dpara_emm3, 6);
- gMC->Gsatt("EMM3", "SEEN", 1);
-
-
- // Pb Convertor for EMM3
- Float_t dpara_pb3[6] = {12.5,12.5,8.,30.,0.,0.};
- dpara_pb3[0] = dpara_emm3[0];
- dpara_pb3[1] = dpara_emm3[1];
- dpara_pb3[2] = th_lead/2.;
-
- gMC->Gsvolu("EPB3","PARA", idtmed[600], dpara_pb3, 6);
- gMC->Gsatt ("EPB3", "SEEN", 0);
-
- // Fe Support for EMM3
- Float_t dpara_fe3[6] = {12.5,12.5,8.,30.,0.,0.};
- dpara_fe3[0] = dpara_pb3[0];
- dpara_fe3[1] = dpara_pb3[1];
- dpara_fe3[2] = th_steel/2.;
-
- gMC->Gsvolu("EFE3","PARA", idtmed[618], dpara_fe3, 6);
- gMC->Gsatt ("EFE3", "SEEN", 0);
-
-
-
- // position supermodule ESMP, ESMQ inside EMM3
-
- z_ps = - dpara_emm3[2] + sm_thick/2.;
- gMC->Gspos("ESMQ", 1, "EMM3", 0., 0., z_ps, 0, "ONLY");
- z_pb = z_ps + sm_thick/2.+dpara_pb3[2];
- gMC->Gspos("EPB3", 1, "EMM3", 0., 0., z_pb, 0, "ONLY");
- z_fe = z_pb + dpara_pb3[2]+dpara_fe3[2];
- gMC->Gspos("EFE3", 1, "EMM3", 0., 0., z_fe, 0, "ONLY");
- z_cv = z_fe + dpara_fe3[2] + sm_thick/2.;
- gMC->Gspos("ESMP", 1, "EMM3", 0., 0., z_cv, 0, "ONLY");
- //
-
- // EHOL is a tube structure made of air
- //
- //Float_t d_hole[3];
- //d_hole[0] = 0.;
- //d_hole[1] = ncell_hole * cell_radius *2. * root3_2 + boundary;
- //d_hole[2] = dm_thick/2.;
- //
- //gMC->Gsvolu("EHOL", "TUBE", idtmed[698], d_hole, 3);
- //gMC->Gsatt("EHOL", "SEEN", 1);
-
- //Al-rod as boundary of the supermodules
-
- Float_t Al_rod[3] ;
- Al_rod[0] = sm_length * 3/2. - gaspmd[5]/2 - boundary ;
- Al_rod[1] = boundary - 0.5*cell_radius*root3_2;
- Al_rod[2] = dm_thick/2.;
-
- gMC->Gsvolu("EALM","BOX ", idtmed[698], Al_rod, 3);
- gMC->Gsatt ("EALM", "SEEN", 1);
- Float_t xalm[3];
- xalm[0]=Al_rod[0] + gaspmd[5] + 3.0*boundary;
- xalm[1]=-xalm[0]/2.;
- xalm[2]=xalm[1];
-
- Float_t yalm[3];
- yalm[0]=0.;
- yalm[1]=xalm[0]*root3_2;
- yalm[2]=-yalm[1];
-
- // delx = full side of the supermodule
- Float_t delx=sm_length * 3.;
- Float_t x1= delx*root3_2 /2.;
- Float_t x4=delx/4.;
-
-
- // placing master modules and Al-rod in PMD
-
- Float_t dx = sm_length;
- Float_t dy = dx * root3_2;
-
- Float_t xsup[9] = {-dx/2., dx/2., 3.*dx/2.,
- -dx, 0., dx,
- -3.*dx/2., -dx/2., dx/2.};
-
- Float_t ysup[9] = {dy, dy, dy,
- 0., 0., 0.,
- -dy, -dy, -dy};
-
- // xpos and ypos are the x & y coordinates of the centres of EMM1 volumes
-
- Float_t xoff = boundary * TMath::Tan(pi/6.);
- Float_t xmod[3]={x4 + xoff , x4 + xoff, -2.*x4-boundary/root3_2};
- Float_t ymod[3] = {-x1 - boundary, x1 + boundary, 0.};
- Float_t xpos[9], ypos[9], x2, y2, x3, y3;
-
- Float_t xemm2 = sm_length/2. -
- (ncell_sm + ncell_hole + 0.25) * cell_radius * 0.5
- + xoff;
- Float_t yemm2 = -(ncell_sm + ncell_hole + 0.25) * cell_radius * root3_2
- - boundary;
-
- Float_t xemm3 = (ncell_sm + 0.5 * ncell_hole + 0.25) * cell_radius + xoff;
- Float_t yemm3 = - (ncell_hole - 0.25) * cell_radius * root3_2 - boundary;
-
- Float_t theta[3] = {0., 2.*pi/3., 4.*pi/3.};
- Int_t irotate[3] = {0, jhrot12, jhrot13};
-
- num_mod=0;
- for (j=0; j<3; ++j)
- {
- gMC->Gsposp("EALM", j+1, "EPMD", xalm[j],yalm[j], 0., irotate[j], "ONLY", Al_rod, 3);
- x2=xemm2*TMath::Cos(theta[j]) - yemm2*TMath::Sin(theta[j]);
- y2=xemm2*TMath::Sin(theta[j]) + yemm2*TMath::Cos(theta[j]);
-
- gMC->Gsposp("EMM2", j+1, "EPMD", x2,y2, 0., irotate[j], "ONLY", dpara_emm2, 6);
-
- x3=xemm3*TMath::Cos(theta[j]) - yemm3*TMath::Sin(theta[j]);
- y3=xemm3*TMath::Sin(theta[j]) + yemm3*TMath::Cos(theta[j]);
-
- gMC->Gsposp("EMM3", j+4, "EPMD", x3,y3, 0., irotate[j], "ONLY", dpara_emm3, 6);
-
- for (i=1; i<9; ++i)
- {
- xpos[i]=xmod[j] + xsup[i]*TMath::Cos(theta[j]) - ysup[i]*TMath::Sin(theta[j]);
- ypos[i]=ymod[j] + xsup[i]*TMath::Sin(theta[j]) + ysup[i]*TMath::Cos(theta[j]);
-
- printf("%f %f \n", xpos[i], ypos[i]);
-
- num_mod = num_mod+1;
-
- printf("\nNum_mod %d\n",num_mod);
-
- gMC->Gsposp("EMM1", num_mod + 6, "EPMD", xpos[i],ypos[i], 0., irotate[j], "ONLY", dpara_emm1, 6);
-
- }
- }
-
-
- // place EHOL in the centre of EPMD
- // gMC->Gspos("EHOL", 1, "EPMD", 0.,0.,0., 0, "ONLY");
-