Hi Karl,
It is easy, but what you will have to intersect are not volumes as you
are trying - but shapes. You can do this in the following way:
TGeoTube *s1 = new TGeoTube("S1", 0.0, tubeOuterRGe,tubeGeHalfT);
TGeoPgon *s2 = new TGeoPgon("S2", 0,360,6,2);
s2->DefineSection(0,-tubeGeHalfT, 0, rOuterBase);
s2->DefineSection(1, tubeGeHalfT, 0, rOuterTop);
TGeoShape *cs = new TGeoCompositeShape("SU", "S1*S2");
TGeoVolume *solidGe = new TGeoVolume("solidInt", cs, med);
// here med is a pointer to a medium made from the material you want
// for the intersection.
Have also a look at the users guide at the chapter "Composite Shapes".
Regards,
Andrei
karl hauschild wrote:
>
> Hi,
>
> I would like to perform a intersection of 2 solids in the TGeomerty
> package.
>
>
> I have defined :
>
> TGeoVolume *ge_tub =
> gGeoManager->MakeTube("geTube",Ge,0.0,tubeOuterRGe,tubeGeHalfT);
>
>
> TGeoVolume *ge_pgon =
> gGeoManager->MakePgon("gePolygon", Al, 0,360,6,2);
> TGeoPgon *pgon = (TGeoPgon*)(ge_pgon->GetShape());
>
> pgon->DefineSection(0,-tubeGeHalfT, 0, rOuterBase);
> pgon->DefineSection(1, tubeGeHalfT, 0, rOuterTop);
>
>
> The question is : how do I use TGeoIntersection to obtain the same
> result as I have in Geant4 when using
>
> G4IntersectionSolid* solidGe =
> new G4IntersectionSolid("germanium",ge_tub,ge_pgon);
>
>
>
> Many thanks,
>
> Karl
>
> [v4.00/02, fedora]
>
>
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:06 MET