Message: Re: daughter volumes not sensitive but should be pointed to? Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Note Re: daughter volumes not sensitive but should be pointed to? 

Keywords: hits nested SD volumes daughter sensitive detector volumes
Forum: Hits, Digitization and Pileup
Re: Question daughter volumes not sensitive but should be pointed to? (Blair Smith)
Re: None Re: daughter volumes not sensitive but should be pointed to? (Makoto Asai)
Date: 08 Nov, 2005
From: Blair Smith <bmsmith@lsu.edu>

Here is a copy of some off-forum communications that I thought would 
be helpful to other newbies.  This I think clears up this thread pretty 
completely, thanks to Makoto Asai.

---From Makoto Asai---
Hi Blair, 
> ---From Blair Smith ---
> What I meant by the following...
>	
>> It is still true that when a daughter volume's boundary
>> is crossed the SD calls ProcessHits() for the parent volume.  I see 
>> that in the log output. But within ProcessHits() it seems I loose
>> the information about any daughter volumes, unless I inspect by 
>> looking at the hit position and infer the deepest volume at 
>> that point by brute force inspection.
>>			    
>> Here I do not understand what you meant. Even if a step is limited by
>> the daughter volume's bounday, the step belongs to that daughter
>> volume and thus the SD associated to the daughter volume is invoked.
>>
> ...was that supposing the daughter in this case is NOT a SD, say I neglected to make it sensitive, 
> then the touchable history pointer in ProcessHits() will not 
> point to the daughter, is that correct?  It can only point to a sensitive PV.  


In the case that NO SD is assigned to the "immediate" PV, then NO SD 
would be invoked.
	

> ---From Blair Smith---
> Then for example when you say,
>	
>> As I wrote above, you can assign the same SD object to both mother
>> and daughter volumes. Then you have only one hits collection.
>>
> I assume that means I can use the same SD name, to get just one hit collection, is that right?
> So in my G4UserDetectorConstruction::Construct() method I can write simply the following,
>	
> G4VSensitiveDetector* ecrdVoxelSD = new CZTEcrdSD( "/ECRD/VoxelSD" );
> SDman->AddNewDetector( ecrdVoxelSD );
> logicVoxelElement->SetSensitiveDetector( ecrdVoxelSD );
> logicPixel->SetSensitiveDetector( ecrdVoxelSD );
>	
> so that hits received in a "physPixel" go into the same collection as those received in a 
> mother "physVoxelElement"?  If I had logixPixel as a daughter of logicVoxelElement?
> This would be rather than having two different collections as in,
>	
> G4VSensitiveDetector* ecrdVoxelSD = new CZTEcrdSD( "/ECRD/VoxelSD" );
> SDman->AddNewDetector( ecrdVoxelSD );
> logicVoxelElement->SetSensitiveDetector( ecrdVoxelSD );
> G4VSensitiveDetector* ecrdPixelSD = new CZTEcrdSD( "/ECRD/PixelSD" );
> SDman->AddNewDetector( ecrdPixelSD );
> logicPixel->SetSensitiveDetector( ecrdPixelSD );
>	
> is this so?  If so then I think I'm all set and you have been a great help!

Yes, once you assign THE SAME OBJECT to both the mother and the 
daughter as you wrote:

> logicVoxelElement->SetSensitiveDetector( ecrdVoxelSD );
> logicPixel->SetSensitiveDetector( ecrdVoxelSD );

your "ecrdVoxelSD" will be invoked for all steps in both 
"logicVoxelElement" and "logicPixel".

Cheers,
Makoto

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

 Add Message Add Message
to: "Re: daughter volumes not sensitive but should be pointed to?"

 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 ]