-
- // gMC->Gsvolu("GSI","TUBE", idtmed[1], par, 0);
- gMC->Gsvolu("GEL ","TUBE", idtmed[4], par, 0);
- gMC->Gsvolu("GSUP","TUBE", idtmed[2], par, 0);
-
- for (ifmd =0; ifmd < 5; ifmd++){
-
- sprintf(name,"FMD%d",ifmd+1);
- sprintf(nameSi,"GSI%d",ifmd+1);
- sprintf(nameSector,"GSC%d",ifmd+1);
- sprintf(nameRing,"GRN%d",ifmd+1);
- printf(name,nameSi);
-
- zfmd=TMath::Abs(z[ifmd]);
- AliFMD::Eta2Radius(etain[ifmd],zfmd,&rin[ifmd]);
- AliFMD::Eta2Radius(etaout[ifmd],zfmd,&rout[ifmd]);
-
- par[0]=rin[ifmd]; // pipe size
- par[1]=rout[ifmd];
- par[2]=zFMD/2;
- gMC->Gsvolu(name,"TUBE", idtmed[3], par, 3);
- gMC->Gsvolu(nameSi,"TUBE", idtmed[1], par, 0);
-
- if (z[ifmd] < 0){
- gMC->Gspos(name,1,"ALIC",0,0,z[ifmd],0, "ONLY");}
- else {
- gMC->Gspos(name,1,"ALIC",0,0,z[ifmd],idrotm[901], "ONLY");}
- //Silicon detector
- par[2]=zDet/2;
- zpos=zFMD/2 -par[2];
- gMC->Gsposp(nameSi,ifmd+1,name,0,0,zpos,0, "ONLY",par,3);
+
+
+ // 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);
+
+