+ //
+ // The aymmetric flat frame in the middle
+ //
+
+ // The envelope volume (aluminum)
+ parTRD[0] = 87.60/2.0;
+ parTRD[1] = 114.00/2.0;
+ parTRD[2] = 1.20/2.0;
+ parTRD[3] = 71.30/2.0;
+ TVirtualMC::GetMC()->Gsvolu("USDB","TRD1",idtmed[1301-1],parTRD,kNparTRD);
+ // Empty spaces (air)
+ parTRP[ 0] = 1.20/2.0;
+ parTRP[ 1] = 0.0;
+ parTRP[ 2] = 0.0;
+ parTRP[ 3] = 27.00/2.0;
+ parTRP[ 4] = 50.60/2.0;
+ parTRP[ 5] = 5.00/2.0;
+ parTRP[ 6] = 3.5;
+ parTRP[ 7] = 27.00/2.0;
+ parTRP[ 8] = 50.60/2.0;
+ parTRP[ 9] = 5.00/2.0;
+ parTRP[10] = 3.5;
+ TVirtualMC::GetMC()->Gsvolu("USD1","TRAP",idtmed[1302-1],parTRP,kNparTRP);
+ xpos = 18.0;
+ ypos = 0.0;
+ zpos = 27.00/2.0 - 71.3/2.0;
+ TVirtualMC::GetMC()->Gspos("USD1",1,"USDB", xpos, ypos, zpos,matrix[2],"ONLY");
+ // Empty spaces (air)
+ parTRP[ 0] = 1.20/2.0;
+ parTRP[ 1] = 0.0;
+ parTRP[ 2] = 0.0;
+ parTRP[ 3] = 33.00/2.0;
+ parTRP[ 4] = 5.00/2.0;
+ parTRP[ 5] = 62.10/2.0;
+ parTRP[ 6] = 3.5;
+ parTRP[ 7] = 33.00/2.0;
+ parTRP[ 8] = 5.00/2.0;
+ parTRP[ 9] = 62.10/2.0;
+ parTRP[10] = 3.5;
+ TVirtualMC::GetMC()->Gsvolu("USD2","TRAP",idtmed[1302-1],parTRP,kNparTRP);
+ xpos = 21.0;
+ ypos = 0.0;
+ zpos = 71.3/2.0 - 33.0/2.0;
+ TVirtualMC::GetMC()->Gspos("USD2",1,"USDB", xpos, ypos, zpos,matrix[2],"ONLY");
+ // Empty spaces (air)
+ parBOX[ 0] = 22.50/2.0;
+ parBOX[ 1] = 1.20/2.0;
+ parBOX[ 2] = 70.50/2.0;
+ TVirtualMC::GetMC()->Gsvolu("USD3","BOX ",idtmed[1302-1],parBOX,kNparBOX);
+ xpos = -25.75;
+ ypos = 0.0;
+ zpos = 0.4;
+ TVirtualMC::GetMC()->Gspos("USD3",1,"USDB", xpos, ypos, zpos, 0,"ONLY");
+ // Empty spaces (air)
+ parTRP[ 0] = 1.20/2.0;
+ parTRP[ 1] = 0.0;
+ parTRP[ 2] = 0.0;
+ parTRP[ 3] = 25.50/2.0;
+ parTRP[ 4] = 5.00/2.0;
+ parTRP[ 5] = 65.00/2.0;
+ parTRP[ 6] = -1.0;
+ parTRP[ 7] = 25.50/2.0;
+ parTRP[ 8] = 5.00/2.0;
+ parTRP[ 9] = 65.00/2.0;
+ parTRP[10] = -1.0;
+ TVirtualMC::GetMC()->Gsvolu("USD4","TRAP",idtmed[1302-1],parTRP,kNparTRP);
+ xpos = 2.0;
+ ypos = 0.0;
+ zpos = -1.6;
+ TVirtualMC::GetMC()->Gspos("USD4",1,"USDB", xpos, ypos, zpos,matrix[6],"ONLY");
+ // Empty spaces (air)
+ parTRP[ 0] = 1.20/2.0;
+ parTRP[ 1] = 0.0;
+ parTRP[ 2] = 0.0;
+ parTRP[ 3] = 23.50/2.0;
+ parTRP[ 4] = 63.50/2.0;
+ parTRP[ 5] = 5.00/2.0;
+ parTRP[ 6] = 16.0;
+ parTRP[ 7] = 23.50/2.0;
+ parTRP[ 8] = 63.50/2.0;
+ parTRP[ 9] = 5.00/2.0;
+ parTRP[10] = 16.0;
+ TVirtualMC::GetMC()->Gsvolu("USD5","TRAP",idtmed[1302-1],parTRP,kNparTRP);
+ xpos = 36.5;
+ ypos = 0.0;
+ zpos = -1.5;
+ TVirtualMC::GetMC()->Gspos("USD5",1,"USDB", xpos, ypos, zpos,matrix[5],"ONLY");
+ // Empty spaces (air)
+ parTRP[ 0] = 1.20/2.0;
+ parTRP[ 1] = 0.0;
+ parTRP[ 2] = 0.0;
+ parTRP[ 3] = 70.50/2.0;
+ parTRP[ 4] = 4.50/2.0;
+ parTRP[ 5] = 16.50/2.0;
+ parTRP[ 6] = -5.0;
+ parTRP[ 7] = 70.50/2.0;
+ parTRP[ 8] = 4.50/2.0;
+ parTRP[ 9] = 16.50/2.0;
+ parTRP[10] = -5.0;
+ TVirtualMC::GetMC()->Gsvolu("USD6","TRAP",idtmed[1302-1],parTRP,kNparTRP);
+ xpos = -43.7;
+ ypos = 0.0;
+ zpos = 0.4;
+ TVirtualMC::GetMC()->Gspos("USD6",1,"USDB", xpos, ypos, zpos,matrix[2],"ONLY");
+ xpos = 0.0;
+ ypos = fgkClength[5][2]/2.0;
+ zpos = 0.04;
+ TVirtualMC::GetMC()->Gspos("USDB",1,"UTI1", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USDB",2,"UTI1", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USDB",3,"UTI2", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USDB",4,"UTI2", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USDB",5,"UTI3", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USDB",6,"UTI3", xpos,-ypos, zpos, 0,"ONLY");
+ // Upper bar (aluminum)
+ parBOX[0] = 95.00/2.0;
+ parBOX[1] = 1.20/2.0;
+ parBOX[2] = 3.00/2.0;
+ TVirtualMC::GetMC()->Gsvolu("USD7","BOX ",idtmed[1301-1],parBOX,kNparBOX);
+ xpos = 0.0;
+ ypos = fgkClength[5][2]/2.0;
+ zpos = fgkSheight/2.0 - fgkSMpltT - 3.00/2.0;
+ TVirtualMC::GetMC()->Gspos("USD7",1,"UTI1", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD7",2,"UTI1", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD7",3,"UTI2", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD7",4,"UTI2", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD7",5,"UTI3", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD7",6,"UTI3", xpos,-ypos, zpos, 0,"ONLY");
+ // Lower bar (aluminum)
+ parBOX[0] = 90.22/2.0;
+ parBOX[1] = 1.20/2.0;
+ parBOX[2] = 1.74/2.0;
+ TVirtualMC::GetMC()->Gsvolu("USD8","BOX ",idtmed[1301-1],parBOX,kNparBOX);
+ xpos = 0.0;
+ ypos = fgkClength[5][2]/2.0 - 0.1;
+ zpos = -fgkSheight/2.0 + fgkSMpltT + 2.27;
+ TVirtualMC::GetMC()->Gspos("USD8",1,"UTI1", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD8",2,"UTI1", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD8",3,"UTI2", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD8",4,"UTI2", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD8",5,"UTI3", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD8",6,"UTI3", xpos,-ypos, zpos, 0,"ONLY");
+ // Lower bar (aluminum)
+ parBOX[0] = 82.60/2.0;
+ parBOX[1] = 1.20/2.0;
+ parBOX[2] = 1.40/2.0;
+ TVirtualMC::GetMC()->Gsvolu("USD9","BOX ",idtmed[1301-1],parBOX,kNparBOX);
+ xpos = 0.0;
+ ypos = fgkClength[5][2]/2.0;
+ zpos = -fgkSheight/2.0 + fgkSMpltT + 1.40/2.0;
+ TVirtualMC::GetMC()->Gspos("USD9",1,"UTI1", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD9",2,"UTI1", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD9",3,"UTI2", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD9",4,"UTI2", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD9",5,"UTI3", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USD9",6,"UTI3", xpos,-ypos, zpos, 0,"ONLY");
+ // Front sheet (aluminum)
+ parTRP[ 0] = 0.10/2.0;
+ parTRP[ 1] = 0.0;
+ parTRP[ 2] = 0.0;
+ parTRP[ 3] = 74.50/2.0;
+ parTRP[ 4] = 31.70/2.0;
+ parTRP[ 5] = 44.00/2.0;
+ parTRP[ 6] = -5.0;
+ parTRP[ 7] = 74.50/2.0;
+ parTRP[ 8] = 31.70/2.0;
+ parTRP[ 9] = 44.00/2.0;
+ parTRP[10] = -5.0;
+ TVirtualMC::GetMC()->Gsvolu("USDF","TRAP",idtmed[1302-1],parTRP,kNparTRP);
+ xpos = -32.0;
+ ypos = fgkClength[5][2]/2.0 + 1.20/2.0 + 0.10/2.0;
+ zpos = 0.0;
+ TVirtualMC::GetMC()->Gspos("USDF",1,"UTI1", xpos, ypos, zpos,matrix[2],"ONLY");
+ TVirtualMC::GetMC()->Gspos("USDF",2,"UTI1", xpos,-ypos, zpos,matrix[2],"ONLY");
+ TVirtualMC::GetMC()->Gspos("USDF",3,"UTI2", xpos, ypos, zpos,matrix[2],"ONLY");
+ TVirtualMC::GetMC()->Gspos("USDF",4,"UTI2", xpos,-ypos, zpos,matrix[2],"ONLY");
+ TVirtualMC::GetMC()->Gspos("USDF",5,"UTI3", xpos, ypos, zpos,matrix[2],"ONLY");
+ TVirtualMC::GetMC()->Gspos("USDF",6,"UTI3", xpos,-ypos, zpos,matrix[2],"ONLY");
+
+ //
+ // The flat frame in front of the chambers
+ //
+
+ // The envelope volume (aluminum)
+ parTRD[0] = 90.00/2.0 - 0.1;
+ parTRD[1] = 114.00/2.0 - 0.1;
+ parTRD[2] = 1.50/2.0;
+ parTRD[3] = 70.30/2.0;
+ TVirtualMC::GetMC()->Gsvolu("USCB","TRD1",idtmed[1301-1],parTRD,kNparTRD);
+ // Empty spaces (air)
+ parTRD[0] = 87.00/2.0;
+ parTRD[1] = 10.00/2.0;
+ parTRD[2] = 1.50/2.0;
+ parTRD[3] = 26.35/2.0;
+ TVirtualMC::GetMC()->Gsvolu("USC1","TRD1",idtmed[1302-1],parTRD,kNparTRD);
+ xpos = 0.0;
+ ypos = 0.0;
+ zpos = 26.35/2.0 - 70.3/2.0;
+ TVirtualMC::GetMC()->Gspos("USC1",1,"USCB",xpos,ypos,zpos,0,"ONLY");
+ // Empty spaces (air)
+ parTRD[0] = 10.00/2.0;
+ parTRD[1] = 111.00/2.0;
+ parTRD[2] = 1.50/2.0;
+ parTRD[3] = 35.05/2.0;
+ TVirtualMC::GetMC()->Gsvolu("USC2","TRD1",idtmed[1302-1],parTRD,kNparTRD);
+ xpos = 0.0;
+ ypos = 0.0;
+ zpos = 70.3/2.0 - 35.05/2.0;
+ TVirtualMC::GetMC()->Gspos("USC2",1,"USCB",xpos,ypos,zpos,0,"ONLY");
+ // Empty spaces (air)
+ parTRP[ 0] = 1.50/2.0;
+ parTRP[ 1] = 0.0;
+ parTRP[ 2] = 0.0;
+ parTRP[ 3] = 37.60/2.0;
+ parTRP[ 4] = 63.90/2.0;
+ parTRP[ 5] = 8.86/2.0;
+ parTRP[ 6] = 16.0;
+ parTRP[ 7] = 37.60/2.0;
+ parTRP[ 8] = 63.90/2.0;
+ parTRP[ 9] = 8.86/2.0;
+ parTRP[10] = 16.0;
+ TVirtualMC::GetMC()->Gsvolu("USC3","TRAP",idtmed[1302-1],parTRP,kNparTRP);
+ xpos = -30.5;
+ ypos = 0.0;
+ zpos = -2.0;
+ TVirtualMC::GetMC()->Gspos("USC3",1,"USCB", xpos, ypos, zpos,matrix[4],"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC3",2,"USCB",-xpos, ypos, zpos,matrix[5],"ONLY");
+ xpos = 0.0;
+ ypos = fgkClength[5][2]/2.0 + fgkClength[5][1] + fgkClength[5][0];
+ zpos = 0.0;
+ TVirtualMC::GetMC()->Gspos("USCB",1,"UTI1", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USCB",2,"UTI1", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USCB",3,"UTI2", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USCB",4,"UTI2", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USCB",5,"UTI3", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USCB",6,"UTI3", xpos,-ypos, zpos, 0,"ONLY");
+ // Upper bar (aluminum)
+ parBOX[0] = 95.00/2.0;
+ parBOX[1] = 1.50/2.0;
+ parBOX[2] = 3.00/2.0;
+ TVirtualMC::GetMC()->Gsvolu("USC4","BOX ",idtmed[1301-1],parBOX,kNparBOX);
+ xpos = 0.0;
+ ypos = fgkClength[5][2]/2.0 + fgkClength[5][1] + fgkClength[5][0];
+ zpos = fgkSheight/2.0 - fgkSMpltT - 3.00/2.0;
+ TVirtualMC::GetMC()->Gspos("USC4",1,"UTI1", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC4",2,"UTI1", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC4",3,"UTI2", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC4",4,"UTI2", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC4",5,"UTI3", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC4",6,"UTI3", xpos,-ypos, zpos, 0,"ONLY");
+ // Lower bar (aluminum)
+ parBOX[0] = 90.22/2.0;
+ parBOX[1] = 1.50/2.0;
+ parBOX[2] = 2.00/2.0;
+ TVirtualMC::GetMC()->Gsvolu("USC5","BOX ",idtmed[1301-1],parBOX,kNparBOX);
+ xpos = 0.0;
+ ypos = fgkClength[5][2]/2.0 + fgkClength[5][1] + fgkClength[5][0];
+ zpos = -fgkSheight/2.0 + fgkSMpltT + 2.60;
+ TVirtualMC::GetMC()->Gspos("USC5",1,"UTI1", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC5",2,"UTI1", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC5",3,"UTI2", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC5",4,"UTI2", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC5",5,"UTI3", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC5",6,"UTI3", xpos,-ypos, zpos, 0,"ONLY");
+ // Lower bar (aluminum)
+ parBOX[0] = 82.60/2.0;
+ parBOX[1] = 1.50/2.0;
+ parBOX[2] = 1.60/2.0;
+ TVirtualMC::GetMC()->Gsvolu("USC6","BOX ",idtmed[1301-1],parBOX,kNparBOX);
+ xpos = 0.0;
+ ypos = fgkClength[5][2]/2.0 + fgkClength[5][1] + fgkClength[5][0];
+ zpos = -fgkSheight/2.0 + fgkSMpltT + 1.60/2.0;
+ TVirtualMC::GetMC()->Gspos("USC6",1,"UTI1", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC6",2,"UTI1", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC6",3,"UTI2", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC6",4,"UTI2", xpos,-ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC6",5,"UTI3", xpos, ypos, zpos, 0,"ONLY");
+ TVirtualMC::GetMC()->Gspos("USC6",6,"UTI3", xpos,-ypos, zpos, 0,"ONLY");
+