G4double rout[7] = {(fRadius+5)*mm, (fRadius+5)*mm, (fRadius+3)*mm, (fRadius+3)*mm, (fRadius+3)*mm, (fRadius+5)*mm, (fRadius+5)*mm};
G4double rin[7] = {0.0*mm, 0.0*mm, (fRadius+2)*mm, (fRadius+2)*mm, (fRadius+2)*mm, 0.0*mm, 0.0*mm};
G4double z[7] = {(fLength/2 + 1)*mm, (fLength/2)*mm, (fLength/2)*mm, 0.0, -(fLength/2)*mm, -(fLength/2)*mm, -(fLength/2 - 1)*mm};
G4Polycone* Enclosure = new G4Polycone("Enclosure", 0.0, 2*pi, 7, z, rin, rout);
I have this snippet that I am using to create a hollow cylinder with a solid disc on top and bottom that are wider than the radius of the cylinder.
My logic here was :
The first and the last two values of rin
are 0 because I want the top and bottom disc to be solid, the middle four are the inner radii of the cylinder I want
Similarly, for rout
the first and the last two values denote the width of the disc (2mm larger than the cylinder), the rest four denote the outer radii of the cylinder
z
I want the cylinder from -fLength/2 to fLength/2 and the disc to be on top and bottom of it with thickness 1mm
Please help me figuring out where my logic was incorrect as I am getting this error when I run the code
-------- EEEE ------- G4Exception-START -------- EEEE -------
*** G4Exception : GeomSolids0002
issued by : G4Polycone::Create()
Illegal input parameters - Enclosure
R/Z segments cross !
*** Fatal Error In Argument *** core dump ***
**** Track information is not available at this moment
**** Step information is not available at this moment-------- EEEE -------- G4Exception-END --------- EEEE -------