Message: Most efficient way to store track info on particles as they enter a senstive detector Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Most efficient way to store track info on particles as they enter a senstive detector  

Forum: Hits, Digitization and Pileup
Date: 03 Dec, 2009
From: Robert Penny <Robert Penny>

Hi,

I'm looking for the most computationally efficient way of characterizing
a position sensitive detector.  I want to record both the energy
depositing events that take place within the volume of the detector, and
to record characteristics of the particles at the point that they
crossed into the detector.

For recording the interactions within the detector volume I can simply
define a sensitive-detector class and an energy-depositing hit class,
then generate and store the hits in a hit collection within the
sensitive detector.  The novice/N02 ExN02TrackerSD and ExN02TrackerHit
classes pretty much do exactly what I want.

To record the characteristics of the particles crossing into the
detector, I had initially installed a custom user stepping action and on
every step checked whether the particle had crossed into the volume of
my sensitive detector.

  if (post_pt->GetStepStatus () == fGeomBoundary
                 && post_pt->GetPhysicalVolume () == myTrackerPV)

This works fine.  However, of course it means this test has to run on
every step of every particle being tracked.  Probably not that big a
deal, but it does somewhat frustrate the way Geant tries to
compartmentalize things.

After attending the recent tutorial session at SLAC (which was great...
thank you so much guys!!!) I learned about the very slick voxelization
optimization that Geant uses when tracking particles.  Ideally my code
would only be executed for particles tracking within my sensitive
detector.

However... the problem is:

(1) The sensitive detector only gets steps where the step has traversed
through some finite length of the sensitive detector region.  The
sensitive detector doesn't get the step for the entry event where
post-step point was limited by entry to the sensitive detector volume.
(This is reasonable, because the energy loss along this step should be
associated with the volume the step came from, not the volume it has
just entered.  However, it frustrates my attempt to get track info on
entry this way.)

(2) If I trigger recording an hit where pre-step point was entry to the
sensitive detector region, it's too late to get the track information
for the particle on entry.  It's already suffered an interaction event
within the detector and the track parameters will not be the parameters
of the particle as it first crossed into the detector.

(3) To be able to reach back in time to the track status on the pre-step
point, I'll need to do a test on every step and record the track info on
the point of entry to the sensitive detector region.  For this, I go
back to requiring a user stepping action test that executes on every
step.

I suppose I could just define two separate sensitive detector; a
volumetric detector that gets the energy depositing hits, and a very
thin particle traversal detector that is a sliver of vacuum on the front
surface of my volumetric detector.  My particle traversal detector would
record hits on exit from its volume, triggered by post-step points that
lie on its surface.  This setup would, at least, make use of Geant's
voxelization tracking optimization.

However, this all seems somewhat kludgey.  Am I missing something?
Something like a property that could be set on a volume to trigger a
zero-length step on entry?

Thanks, 

-- 
Robert D. Penny <robert.d.penny@saic.com>

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

1 None: RE: Most efficient way to store track info on particles as they enter a senstive detector   (Asai, Makoto - 03 Dec, 2009)
(_ None: RE: Most efficient way to store track info on particles as they enter a senstive detector   (Robert D. Penny - 03 Dec, 2009)
 Add Message Add Message
to: "Most efficient way to store track info on particles as they enter a senstive detector "

 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 ]