Message: RE: 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 RE: Most efficient way to store track info on particles as they enter a senstive detector  

Forum: Hits, Digitization and Pileup
Re: None Most efficient way to store track info on particles as they enter a senstive detector (Robert Penny)
Date: 03 Dec, 2009
From: Makoto Asai <Makoto Asai>

Hi Robert,

G4StepPoint has pretty much all the information of the step
(and the track) at that point.=20

> (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.

This is the *correct* place to get the track information.
What you should look at is *not* G4Track but G4StepPoint
object of pre-step point.

http://www-geant4.kek.jp/lxr/source/track/include/G4StepPoint.hh
You have all the necessary Get-methods.

Makoto


> -----Original Message-----
> From: Robert D. Penny [mailto:robert.d.penny@saic.com]
> Sent: Thursday, December 03, 2009 5:42 PM
> To: hitsdigits-g4hn
> Subject: Most efficient way to store track info on particles as they
> enter a senstive detector
>=20
>=20
> *** Discussion title: Hits, Digitization and Pileup
>=20
> Hi,
>=20
> 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.
>=20
> 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.
>=20
> 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.
>=20
>   if (post_pt->GetStepStatus () =3D=3D fGeomBoundary
>                  && post_pt->GetPhysicalVolume () =3D=3D myTrackerPV)
>=20
> 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.
>=20
> 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.
>=20
> However... the problem is:
>=20
> (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.)
>=20
> (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.
>=20
> (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.
>=20
> 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.
>=20
> 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?
>=20
> Thanks,
>=20
> --
> Robert D. Penny <robert.d.penny@saic.com>
>=20
> -------------------------------------------------------------
> Visit this GEANT4 at hypernews.slac.stanford.edu message (to reply or
> unsubscribe) at:
>
http://hypernews.slac.stanford.edu/HyperNews/geant4/get/hitsdigits/234.
> html

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   (Robert D. Penny - 03 Dec, 2009)
 Add Message Add Message
to: "RE: 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 ]