- // Nylon tubes
- gMC->Gsvolu("GNYL","TUBE", idtmed[1], NylonTube, 3); //support nylon tube
- Float_t wideSupport=zSi+3*zPCB+2*NylonTube[2]+zHoneyComb;
- cout<<" wideSupport "<<wideSupport<<endl;
-
- for (ifmd=0; ifmd<5; ifmd++)
- {
- sprintf(nameFMD,"FMD%d",ifmd+1);
- ppcon[0]=0;
- ppcon[1]=360;
- ppcon[2]=4;
-
- ppcon[3]=-wideSupport;
- ppcon[4]=rin[ifmd]-0.1;
- ppcon[5]=rout[ifmd]+0.1;
-
- ppcon[6]=ppcon[3]+2*zSi+2*zPCB+2*NylonTube[2];
- ppcon[7]=rin[ifmd]-0.1;
- ppcon[8]=rout[ifmd]+0.1;
-
- ppcon[9]=ppcon[6];
- ppcon[10]=RinHoneyComb[ifmd]-0.1;
- ppcon[11]=RoutHoneyComb[ifmd]+0.1;
-
- ppcon[12]=ppcon[9]+2*zHoneyComb+zPCB;
- ppcon[13]=RinHoneyComb[ifmd]-0.1;
- ppcon[14]=RoutHoneyComb[ifmd]+0.1;
- gMC->Gsvolu(nameFMD,"PCON",idtmed[0],ppcon,15);
- if (z[ifmd] >0){
- zFMD=z[ifmd]+wideSupport;
- gMC->Gspos(nameFMD,1,"ALIC",0,0,zFMD,0, "ONLY");}
- else {
- zFMD=z[ifmd]-wideSupport;
- gMC->Gspos(nameFMD,1,"ALIC",0,0,zFMD,idrotm[901], "ONLY");}
- //silicon
- sprintf(nameSi,"GSI%d",ifmd+1);
- sprintf(nameSector,"GSC%d",ifmd+1);
- sprintf(nameRing,"GRN%d",ifmd+1);
-
- //honeycomb support
- sprintf(nameHoney,"GSU%d",ifmd+1);
- gMC->Gsvolu(nameHoney,"TUBE", idtmed[0], par, 0); //honeycomb
- sprintf(nameHoneyIn,"GHI%d",ifmd+1);
- gMC->Gsvolu(nameHoneyIn,"TUBE", idtmed[7], par, 0); //honey comb inside
- sprintf(nameHoneyOut,"GHO%d",ifmd+1);
- gMC->Gsvolu(nameHoneyOut,"TUBE", idtmed[6], par, 0); //honey comb skin
- //PCB
- sprintf(namePCB,"GPC%d",ifmd+1);
- gMC->Gsvolu(namePCB,"TUBE", idtmed[0], par, 0); //PCB
- sprintf(nameCopper,"GCO%d",ifmd+1);
- gMC->Gsvolu(nameCopper,"TUBE", idtmed[3], par, 0); // Cooper
- sprintf(nameChips,"GCH%d",ifmd+1);
- gMC->Gsvolu(nameChips,"TUBE", idtmed[5], par, 0); // Si chips
- sprintf(nameG10,"G10%d",ifmd+1);
- gMC->Gsvolu(nameG10,"TUBE", idtmed[2], par, 0); //G10 plate
- //last PCB
- sprintf(nameLPCB,"GPL%d",ifmd+1);
- gMC->Gsvolu(nameLPCB,"TUBE", idtmed[0], par, 0); //PCB
- sprintf(nameLCopper,"GCL%d",ifmd+1);
- gMC->Gsvolu(nameLCopper,"TUBE", idtmed[3], par, 0); // Cooper
- sprintf(nameLChips,"GHL%d",ifmd+1);
- gMC->Gsvolu(nameLChips,"TUBE", idtmed[5], par, 0); // Si chips
- sprintf(nameGL10,"G1L%d",ifmd+1);
- gMC->Gsvolu(nameGL10,"TUBE", idtmed[2], par, 0); // Last G10
- par[0]=rin[ifmd]; // pipe size
- par[1]=rout[ifmd];
- par[2]=zSi/2;
- gMC->Gsvolu(nameSi,"TUBE", idtmed[4], par, 3);
- zInside=ppcon[3]+par[2];
- gMC->Gspos(nameSi,ifmd+1,nameFMD,0,0,zInside,0, "ONLY");
- //PCB 1
- zInside += par[2]+zPCB/2;
- par[2]=zPCB/2;
- gMC->Gsposp(namePCB,1,nameFMD,0,0,zInside,0, "ONLY",par,3);
- zInside += zPCB;
- gMC->Gsposp(namePCB,2,nameFMD,0,0,zInside,0, "ONLY",par,3);
- Float_t NulonTubeBegin=zInside+2.5*zPCB;
- par[2]=zPCB/2-0.02;
- Float_t zInPCB = -zPCB/2+par[2];
- gMC->Gsposp(nameG10,1,namePCB,0,0,zInPCB,0, "ONLY",par,3);
- zInPCB+=par[2]+zCooper/2 ;
- par[2]=zCooper/2;
- gMC->Gsposp(nameCopper,1,namePCB,0,0,zInPCB,0, "ONLY",par,3);
- zInPCB += zCooper/2 + zChips/2;
- par[2]=zChips/2;
- gMC->Gsposp(nameChips,1,namePCB,0,0,zInPCB,0, "ONLY",par,3);
- //HoneyComb
- zHoneyComb=0.8;
- par[0] = RinHoneyComb[ifmd];
- par[1] = RoutHoneyComb[ifmd];
- par[2] = zHoneyComb/2;
- zInside += 2*NylonTube[2]+par[2];
- gMC->Gsposp(nameHoney,1,nameFMD,0,0,zInside,0, "ONLY",par,3);
- par[2]=0.1/2;
- Float_t zHoney=-zHoneyComb/2+par[2];
- gMC->Gsposp(nameHoneyOut,1,nameHoney,0,0,zHoney,0,
- "ONLY",par,3); //shkurki
- zHoney=zHoneyComb/2-par[2];
- gMC->Gsposp(nameHoneyOut,2,nameHoney,0,0,zHoney,0, "ONLY",par,3);
- par[2]=(zHoneyComb-2.*0.1)/2; //soty vnutri
- gMC->Gsposp(nameHoneyIn,1,nameHoney,0,0,0,0, "ONLY",par,3);
-
- gMC->Gspos("GNYL",1,nameFMD,0,yNylonTube[ifmd],
- NulonTubeBegin+NylonTube[2]/2.,0, "ONLY");
- gMC->Gspos("GNYL",2,nameFMD,0,-yNylonTube[ifmd],
- NulonTubeBegin+NylonTube[2]/2.,0, "ONLY");
-
- //last PCB
- par[0]=RoutHoneyComb[ifmd]-9;
- par[1]=RoutHoneyComb[ifmd];
- par[2]=zPCB/2;
- zInside += zHoneyComb/2+par[2];
- gMC->Gsposp(nameLPCB,1,nameFMD,0,0,zInside,0, "ONLY",par,3);
-
- par[2]=zPCB/2-0.02;
- zInPCB = -zPCB/2+par[2];
- gMC->Gsposp(nameGL10,1,nameLPCB,0,0,zInPCB,0, "ONLY",par,3);
- zInPCB+=par[2]+zCooper/2 ;
- par[2]=zCooper/2;
- gMC->Gsposp(nameLCopper,1,nameLPCB,0,0,zInPCB,0, "ONLY",par,3);
- zInPCB += zCooper/2 + zChips/2;
- par[2]=zChips/2;
- gMC->Gsposp(nameLChips,1,nameLPCB,0,0,zInPCB,0, "ONLY",par,3);
-
-
- //Granularity
- fSectorsSi1=20;
- fRingsSi1=256*2;
- // fRingsSi1=3; // for drawing only
- fSectorsSi2=40;
- fRingsSi2=128*2;
- // fRingsSi2=3; //for drawing onl
- if(ifmd==1||ifmd==3)
- {
- gMC->Gsdvn(nameSector, nameSi , fSectorsSi2, 2);
- gMC->Gsdvn(nameRing, nameSector, fRingsSi2, 1);
- }
- else
- {
- gMC->Gsdvn(nameSector, nameSi , fSectorsSi1, 2);
- gMC->Gsdvn(nameRing, nameSector , fRingsSi1, 1);
- }
-
- }
-}