{ float cdc_pangle = 8.0; int mfv_modules = 35; int mfv_detects = 5; int cbox_medium = 17; int rgas_medium = 41; int rtub_medium = 6; int rld_medium = 19; int r_medium = 20; int rsup_medium = 35 ; int rgl1_medium = 37 ; int rgl2_medium = 37 ; float cbox_dim[3] = { 9.15, 2.825, 45.75 }; float rgas_dim[3] = { 9.10, 2.775, 45.70 }; float rtub_pos[3] = { 0.0 , 0.0 , 80.0 }; float rpc_phi0 = 0.5 * 360./(mfv_modules-3); float rpc_dphi = 360./(mfv_modules-3); float rpc_rad = 97.2; float dist_targ_rd2 = 96.1 ; float cbox_rot[6]; float cbox_pos[3]; float glass_thick_Y1 = 0.166; float glass_thick_dY = 0.122; float rdet_dx[5] = { -6.0, 0. , 6.0, -3.0 , 3.0 } ; float rdet_dy[5] = { 1.4, 1.4, 1.4, -0.66, -0.66 }; float ldet_dim[3] = {2.6 , 0.9 , 45. } ; float angle_dim[3] = {2.3 , 0.025, 45. } ; float supp_dim[3] = { 2.5 , 0.1 , 45.}; float rgl1_dim[3] = {angle_dim[0] , angle_dim[1] , angle_dim[2] }; float rgl2_dim[3] = { 2.3 , 0.05 , 45. }; float rtub_dim[3] = {dist_targ_rd2 -7 , dist_targ_rd2 + 7 , 160. }; TGeoVolume *RTUB = gGeoManager -> MakeTube("RTUB",medium[rtub_medium-1],rtub_dim[0],rtub_dim[1],rtub_dim[2]); gGeoManager->SetVolumeAttribute("RTUB","seen",0); gGeoManager->SetVolumeAttribute("RTUB","colo",15); CTUB->AddNode(RTUB,1,new TGeoTranslation(rtub_pos[0] , rtub_pos[1] , rtub_pos[2])); TGeoVolume *RLD = gGeoManager -> MakeBox("RLD",medium[rld_medium-1],ldet_dim[0],ldet_dim[1],ldet_dim[2]); gGeoManager->SetVolumeAttribute("RLD","seen",1); gGeoManager->SetVolumeAttribute("RLD","colo",15); TGeoVolume *R = gGeoManager -> MakeBox("R",medium[r_medium-1],angle_dim[0],angle_dim[1],angle_dim[2]); gGeoManager->SetVolumeAttribute("R","seen",1); gGeoManager->SetVolumeAttribute("R","colo",15); TGeoVolume *CBOX = gGeoManager -> MakeBox("CBOX",medium[cbox_medium-1],cbox_dim[0],cbox_dim[1],cbox_dim[2]); gGeoManager->SetVolumeAttribute("CBOX","seen",1); gGeoManager->SetVolumeAttribute("CBOX","colo",15); TGeoVolume *RGAS = gGeoManager -> MakeBox("RGAS",medium[rgas_medium-1],rgas_dim[0],rgas_dim[1],rgas_dim[2]); gGeoManager->SetVolumeAttribute("RGAS","seen",1); gGeoManager->SetVolumeAttribute("RGAS","colo",15); TGeoVolume *RSUP = gGeoManager -> MakeBox("RSUP",medium[rsup_medium-1],supp_dim[0],supp_dim[1],supp_dim[2]); gGeoManager->SetVolumeAttribute("RSUP","seen",1); gGeoManager->SetVolumeAttribute("RSUP","colo",15); TGeoVolume *RGL1 = gGeoManager -> MakeBox("RGL1",medium[rgl1_medium-1],rgl1_dim[0],rgl1_dim[1],rgl1_dim[2]); gGeoManager->SetVolumeAttribute("RSUP","seen",1); gGeoManager->SetVolumeAttribute("RSUP","colo",15); TGeoVolume *RGL2 = gGeoManager -> MakeBox("RGL2",medium[rgl2_medium-1],rgl2_dim[0],rgl2_dim[1],rgl2_dim[2]); gGeoManager->SetVolumeAttribute("RSUP","seen",1); gGeoManager->SetVolumeAttribute("RSUP","colo",15); RLD->AddNode(RSUP,1,new TGeoTranslation( 0. , 0.71 , 0. )); RLD->AddNode(RSUP,2,new TGeoTranslation( 0. , -0.66 , 0. )); RLD->AddNode(RGL1,1,new TGeoTranslation( 0. , 0.072 , 0. )); RLD->AddNode(RGL1,2,new TGeoTranslation( 0. , -0.072 , 0. )); for(int iGlas=0;iGlas<4;iGlas++) { RLD->AddNode(RGL2,iGlas,new TGeoTranslation( 0. , glass_thick_Y1 + iGlas * glass_thick_dY , 0. )); RLD->AddNode(RGL2,4+iGlas,new TGeoTranslation( 0. , -(glass_thick_Y1 + iGlas * glass_thick_dY) , 0. )); } for (int iRdet = 0; iRdetAddNode( RLD , iRdet ,new TGeoTranslation( rdet_dx[iRdet] , rdet_dy[iRdet] , 0. ) ); } CBOX->AddNode(RGAS,1,new TGeoTranslation( 0. , 0. , 0. )); for(int iSM=0;iSM360) cbox_rot[1] = cbox_rot[1]-360.; cbox_rot[2] = 90. ; cbox_rot[3] = cbox_rot[1] + 90.; if(cbox_rot[3]>360) cbox_rot[3] = cbox_rot[3]-360.; cbox_rot[4] = 0. ; cbox_rot[5] = 0. ; cbox_pos[0] = rpc_rad*cos(phi*3.14/180); cbox_pos[1] = rpc_rad*sin(phi*3.14/180); cbox_pos[2] = 0. ; RTUB->AddNode( CBOX , iSM , new TGeoCombiTrans(cbox_pos[0],cbox_pos[1],cbox_pos[2],new TGeoRotation("rot1",cbox_rot[0],cbox_rot[1],cbox_rot[2],cbox_rot[3],cbox_rot[4],cbox_rot[5]))); } } }