# Help with a G4Polycone cylinder

``````
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 -------

Z-sections should be specified in increasing order.

I tried it, still had the same error

It should be
` -(fLength/2 + 1)*mm`
` -(fLength/2 - 1)*mm`.
And if `fLength` is already in internal units, e.g, . `fLength = 2*cm`, this should be
``````-fLength/2+1.*mm
Also just to clarify in `(G4Colour(0.0,1.0,0.0,x)` increasing x close to 1 will make the component more transparent?
Last argument in `G4Colour` is opacity, not transparency. The default value is 1.0 = full opacity.