Message: Re: Assigning regions in a nested parameterisation Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Re: Assigning regions in a nested parameterisation 

Forum: Geometry
Re: Question Assigning regions in a nested parameterisation (Jake Forster)
Date: 19 Aug, 2016
From: John Apostolakis <John Apostolakis>

Dear Jake,

A nested parameterization provides new capabilities for 
parameterisations by allow the user to parameterise the material type of 
the final ('leaf') volume.

But there is no capability to alter the region for what different 
final/leaf volumes - as these represent the same physical volume in memory.

Since the regions are allocated by logical volume, there is no way in 
which all the leaf volumes, which share the same logical volume, can be 
assigned to a different region.

I hope this clarifies the issue which you are encountering.

In order to have different production thresholds for different volumes, 
they must be represented by different logical volumes. This will mean 
that you will need to create a different logical volume for each volume 
for which you want to have different tuple of (material, cut) , and then 
reuse it in the different locations in which you want to place a volume.

Best regards,

John


On 22/07/16 08:57, Jake Forster wrote:
> *** Discussion title: Geometry
>
> Hello,
>   
> I would like to apply different physics to different voxels in a nested
> parameterisation. The nested parameterisation is done following the RE02
> example.
>
> In the physics list I have defined default physics as well as physics
> for the region "Target" (as in the microdosimetry example).
>
> In detector construction I define the region "Target" and apply cuts:
> G4Region* fpRegion = new G4Region("Target");
> G4ProductionCuts* cuts = new G4ProductionCuts();
> G4Double defCut = 1*nanometer;
> cuts->SetProductionCut(defCut,"gamma");
> cuts->SetProductionCut(defCut,"e-");
> cuts->SetProductionCut(defCut,"e+");
> cuts->SetProductionCut(defCut,"proton");
> fpRegion->SetProductionCuts(cuts);
>   
> Then in nested phantom parameterisation, in the ComputeMaterial function
> I add a voxel to the Target region by:
> G4Region* aRegion = G4RegionStore::GetInstance()->GetRegion("Target");
> G4LogicalVolume* logVolume = physVolume->GetLogicalVolume();
> aRegion->AddRootLogicalVolume(logVolume);
>   
> The code compiles and begins to run, but as soon as the particle enters
> the phantom it segmentation faults.
>   
> Is there something wrong with this approach? Is there another way to have different physics in different voxels?
>   
> Thank you.
> Kind regards,
> Jake
>
> -------------------------------------------------------------
> Visit this GEANT4 at hypernews.slac.stanford.edu message (to reply or unsubscribe) at:
> http://hypernews.slac.stanford.edu/HyperNews/geant4/get/geometry/1492.html

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

1 None: Re: Assigning regions in a nested parameterisation   (Jake Forster - 21 Aug, 2016)
 Add Message Add Message
to: "Re: Assigning regions in a nested parameterisation"

 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 ]