Message: Step crosses a geometrical boundary and does not stop (from Run and Event forum) Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question Step crosses a geometrical boundary and does not stop (from Run and Event forum) 

Forum: Geometry
Date: 22 Apr, 2010
From: Ioannis Sechopoulos <Ioannis Sechopoulos>

Sorry for the double post, but after posting this issue in the Run and Event category, it was suggested that I should post this here:

I have a volume assigned to a sensitive detector. Once in a while, the sensitive detector's ProcessHits function is called for a step that I know crossed a boundary between the sensitive volume and its mother, although it appears in the tracking output that the postStepPoint is inside the sensitive volume. I placed the following code in the ProcessHits to verify this:

G4ThreeVector worldPos = aStep->GetPostStepPoint()->GetPosition();

G4TouchableHistory* theTouchable = (G4TouchableHistory*) (aStep->GetPostStepPoint()->GetTouchable());

G4ThreeVector localPos = theTouchable->GetHistory()->GetTopTransform().TransformPoint(worldPos);

G4cout << "### Local Position: " << localPos.x() << " " << localPos.y() << " " << localPos.z() << G4endl;
G4cout << "### World Position: " << worldPos.x() << " " << worldPos.y() << " " << worldPos.z() << G4endl;

G4Navigator* theNavigator = G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking();

G4VPhysicalVolume* currentVolume = theNavigator->LocateGlobalPointAndSetup(worldPos, 0, false, true);

G4cout << "navigator volume: " << currentVolume->GetName() << G4endl;

and this is the output for one of the hits that is wrong:

*********************************************************************************************************
* G4Track Information:   Particle = gamma,   Track ID = 1,   Parent ID = 0
*********************************************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0        0     -150      660      0.02        0        0         0       World initStep
    1     67.4     -191       67      0.02        0      598       598 physiCompression Transportation
    2     67.6     -191       65      0.02        0     2.02       600   physiSkin Transportation
    3     68.1     -191       61      0.02        0     4.04       604 physiBreast Transportation
    4     68.8     -192     54.3    0.0188 1.36e-05     6.72       611 physiBreast compt
    :----- List of 2ndaries - #SpawnInStep=  1(Rest= 0,Along= 0,Post= 1), #SpawnTotal=  1 ---------------
    :      68.8      -192      54.3    0.0012                 e-
    :----------------------------------------------------------------- EndOf2ndaries Info ---------------
### Local Position: 68.80902495440318 -41.89539546471676 14.33532473714037
### World Position: 68.80902495440318 -191.8953954647168 54.33532473714037
navigator volume: physiBreast
    5     72.9     -196     62.4    0.0184 1.42e-05     9.76       621 physiBreast compt     <-------------
    :----- List of 2ndaries - #SpawnInStep=  1(Rest= 0,Along= 0,Post= 1), #SpawnTotal=  2 ---------------
    :      72.9      -196      62.4  0.000367                 e-
    :----------------------------------------------------------------- EndOf2ndaries Info ---------------
### Local Position: 72.85229590945139 -45.71556280146035 22.35389344721722
### World Position: 72.85229590945139 -195.7155628014604 62.35389344721722
navigator volume: physiSkin     <-------------
    6     75.3     -194       65    0.0184        0     4.18       625 physiCompression Transportation
    7     77.1     -192       67    0.0184        0     3.16       628       World Transportation
    8      500      189      533    0.0184        0      736  1.36e+03  OutOfWorld Transportation

*********************************************************************************************************
* G4Track Information:   Particle = e-,   Track ID = 3,   Parent ID = 1
*********************************************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0     72.9     -196     62.4  0.000367        0        0         0   physiSkin initStep     <-------------
    1     72.9     -196     62.4         0 0.000367 1.28e-05  1.28e-05   physiSkin eIoni

*********************************************************************************************************
* G4Track Information:   Particle = e-,   Track ID = 2,   Parent ID = 1
*********************************************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0     68.8     -192     54.3    0.0012        0        0         0 physiBreast initStep
    1     68.8     -192     54.3         0   0.0012 6.67e-05  6.67e-05 physiBreast eIoni
### Local Position: 68.80901973269513 -41.89538981378192 14.33529135203892
### World Position: 68.80901973269513 -191.8953898137819 54.33529135203892
navigator volume: physiBreast

As you can see, (I added arrows to the appropriate lines) the regular tracking output says that the second compton scatter happened in the "physiBreast" (the sensitive volume), but the navigator volume output I added in the hit reports that that worldPos is in "physiSkin". I know that physiBreast finishes at Z=61 mm and that Z=62.4 mm is in "physiSkin", so the latter output is the correct one. Furthermore, TrackID 3 starts in the same position where the compton scatter happened, and it is reported in "physiSkin". So it seems that after the first compton scatter in the physibreast, the gamma should have stopped at the border of physiBreast and physiSkin before undergoing the second compton (which might not have happened if the last portion of the step were computed correctly as being in physiSkin), and the step between the boundary and the second compton should not be registered by this sensitive detector since it would be outside the SD. Might this be a bug with the navigator or solid definition, or am I doing something wrong?

Both physiSkin and physiBreast are G4Ellipsoids to which I've subtracted half of the solid (in the x direction) using G4SubtractionSolid. According to the built-in overlap check in G4PVPlacement, there are no overlaps:

Checking overlaps for volume physiSkin ... OK! Checking overlaps for volume physiBreast ... OK!

Also, physibreast is smaller than physiSkin, it is the only volume in physiSkin, and it is positioned in the center of physiSkin, so I don't believe the geometry has any overlaps or similar problems:

physiBreast = new G4PVPlacement(0,0,
				logicBreast,
				"physiBreast",
				detectorConst->GetlogicSkin(),
				false,
			        0,
				detectorConst->GetOverlapCheck());

Let me know if any more information is needed. Thanks!

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 Question: Re: Step crosses a geometrical boundary and does not stop (from Run and Event forum)   (John Apostolakis - 28 Apr, 2010)
 Add Message Add Message
to: "Step crosses a geometrical boundary and does not stop (from Run and Event forum)"

 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 ]