Message: Making solid by subtraction implies some other volumes be subtracted. Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Making solid by subtraction implies some other volumes be subtracted. 

Forum: Geometry
Date: Apr 12, 13:22
From: Bogdan Sikach <Bogdan Sikach>

I have the following geometric setup:

Cylindrical crystal wrapped in teflon. There is a hole in the wrapper. Photodetector plate. Between the plate and crystal there is a thin gap.

I make a hole in the wrapper by subtraction a tube from covering solid. The length of the tube is larger than the thickness of the wrapper so it intersects crystal, gap and photodetector plate.

When I draw all the things I also see that the subtracted tube also subtracted from the crystal BUT not the gap or photodetector.

However, it seems that this hole in crystal is "invisible" for optical processes. All seems as it would seem if there were no hole in the crystal.

I don't understand how the subtraction works.

I attach the pictures.

Here is only a part where I define wrapper solid.

    #elif defined CYLINDER_CRYSTAL
        G4EllipticalTube* outerSolid =
            new G4EllipticalTube( "OuterSolid",
                                  crystal::radius + wrapper::thickness,
                                  crystal::radius + wrapper::thickness,
                                  0.5*( crystal::height + wrapper::thickness ) ); 

        G4EllipticalTube* innerSolid =
            new G4EllipticalTube( "InnerSolid",
                                  crystal::radius,
                                  crystal::radius,
                                  0.5*crystal::height ); 

        G4RotationMatrix* rotMatrix = new G4RotationMatrix();
        G4ThreeVector zTrans( 0., 0., -0.5*wrapper::thickness );

        G4VSolid* solidWrapperDefault =
            new G4SubtractionSolid( "WrapperDefault", outerSolid, innerSolid, rotMatrix, zTrans );

        G4bool makeHole = true;
        if( makeHole )
        {
            G4EllipticalTube* holeCylinder =
                new G4EllipticalTube( "HoleCylinder",
                                      hole::radius,
                                      hole::radius,
                                      //0.52*wrapper::thickness );
                                      crystal::height );
            G4ThreeVector zTransHole( 0., 0., 0.5*crystal::height );
            G4RotationMatrix* rotMatrixHole = new G4RotationMatrix();
            //solidWrapper =
            //    new G4SubtractionSolid( "WrapperHole", solidWrapperDefault, holeCylinder, rotMatrixHole, zTransHole );
            solidWrapper =
                new G4SubtractionSolid( "WrapperHole", solidWrapperDefault, holeCylinder, rotMatrixHole, G4ThreeVector() );
        }
        else
        {
            solidWrapper = solidWrapperDefault;
        }
        solidWrapper->SetName( "Wrapper" );

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2019/04/12/13.20-52344-9_13.04.2019_1366x768.png

 Add Message Add Message
to: "Making solid by subtraction implies some other volumes be subtracted."

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]