[Halld-offline] DBCALTruthShowers

Richard Jones richard.t.jones at uconn.edu
Mon Oct 20 11:42:58 EDT 2014


Hello Justin,

I agree 100% with your recommendation 2, and have checked in a fix for this.

For your recommendation 1, I think this needs further discussion. In the
hddm hitView record we currently distinguish between these MCThrown lookup
indices and the Geant track index scheme set up by Beni by using the
attribute "itrack" for the former and "track" for the latter. If you look
through the hddm header, you can see that there are many instances of each
of these in the truth information tags. I have not done a study of this,
but I guess that there are multiple places in various analysis codes that
make use of the "track" information as such, and also the "itrack" info as
such. In general I see "track" indices recorded for the TruthPoint and
TruthShower tags, whereas "itrack" indices are recorded for TruthHits and
for the bcal TruthFADC tags.

One thing we might consider is to go through the TruthShower and TruthPoint
tags and add new itrack attributes in addition to the existing track index.
This would involve changing the hddm model, which might be disruptive in
the near term. I could add an inner tag within the TruthShower / TruthPoint
tags just to contain the itrack, and doing it that way would maintain
compatibility with the existing generated files. What I don't want to do is
to change the meaning of existing attributes called "track" without
changing the name.

-Richard Jones

On Mon, Oct 20, 2014 at 9:05 AM, Justin Stevens <jrsteven at mit.edu> wrote:

> Hi Richard, All,
>
> Thanks for the fix and reporting it here.  I would like to propose two
> additional changes:
>
> 1) When the scheme for keeping track of particle geneology was updated
> last year, hitCDC.c and hitFDC.c were changed to label the truth hits by
> their global track ID in the new scheme instead of the internal geant track
> ID.  I suggest we do the same for hitBCAL.cc and hitFCAL.c using something
> like
>
> showers->in[0].track = gidGetId(track);
>
> This way the truth showers can be matched to DMCThrown objects and their
> parentage tracked accurately in more complicated events (eg. bggen).
>
> 2) In gustep.F there are two places (code pasted at the bottom of this
> message) where particles are checked to be in the BCAL or FCAL to decide
> whether to: a) place secondaries on the stack and b) save the vertex and
> decay particles.
>
> Currently, the checks for the BCAL is if radius < 65 and
> (cnames(NLEVEL).ne.'BCAL').  To be consistent with the correction for the
> aluminum plate on the front of the BCAL, I think these should be changed to
> radius < 64.2485 (?) and
> (cnames(NLEVEL).ne.'BCAL').and.(cnames(NLEVEL).ne.'BCAM').  Do you agree?
>
> Thanks,
> Justin
>
> gustep.F code snippet:
>
> * Place any secondaries generated during this step onto the stack
>
>       if (nosecondaries.eq.0) then
>         do i=1,NGKINE
> c          make primary except if in calorimeter volume and not hadronic
> c          interaction, or except if produced in cave upstream of Hall D
>            iflgk(i) = 1
>            cint = KCASE
>            rx = sqrt(VERT(1)**2+VERT(2)**2)
>            if ((((rx>65.).and.((VERT(3)>-17.).and.(VERT(3)<390.))) !BCAL
>      >         .or.(VERT(3)>625.)                                  !FCAL
>      >         .or.(VERT(3)<-500.))                                !CAVE
>      >         .and.(cchar.ne.'HADR')) then
>               iflgk(i) = 0
>            endif
>            call GSKING(i)
>         enddo
>       endif
>
> * check if particle did decay in which case save vertex and particles
>
>       if (ISTOP .eq. 1) then
>          mechanism = KCASE
>          if ((NGKINE>0) .and. (chcase.eq.'DCAY')) then
>             if ((cnames(NLEVEL).ne.'BCAL').and.
>      +          (cnames(NLEVEL).ne.'FCAL').and.
>      +          (sqrt(VERT(1)**2+VERT(2)**2)<65.).and.
>      +          (VERT(3)<500.).and.(VERT(3)>-500.)) then
>                call savenewvertex(KCASE,NGKINE,GKIN,VECT,
>      +              TOFG,iflgk,IPART,ITRA,ISTAK)
>             endif
>          endif
>       endif
>
> On Oct 17, 2014, at 7:12 PM, Richard Jones wrote:
>
> > Hello Justin,
> >
> > You are right to be surprised by this behavior. It was not there when I
> first set up this "truth shower" recording mechanism in hdgeant. I looked
> into it, and was able to reproduce what you are seeing.
> >
> > The problem is unique to the bcal. It came about primarily (there was
> another minor issue that I fixed at the same time, that will reduce the
> fragmentation of the fcalTruthShower info as well) because at some point we
> added a relatively thick aluminum structure to the front of the bcal, which
> serves as a primary mechanical support for the module. Because of its
> thickness, a large fraction of the incident gammas convert and preshower in
> this aluminum bar, and so what actually reaches the first active layer of
> the bcal is often a gazillion low-energy shower particles clustered around
> the incident gamma direction. That is why you were seeing fragmentation in
> the bcalTruthShower tags.
> >
> > I added a fix to gustep.F in the HDGeant directory in both the trunk and
> commissioning branches. Please check out the latest update of whichever you
> are using and try it. This code catches any particles incident on the bcal
> and records the TruthShower info before they enter the aluminum support
> beam. There are still a few conversions that take place in the CDC and the
> FDC cables around the CDC, but you should see that most of your 2 GeV
> gammas at 50 degrees now generate just a single bcalTruthShower in hdgeant.
> For those that shower in the CDC and FDC cable material, I think we should
> not try to merge them into a single bcalTruthShower because the magnetic
> field will have a significant dispersive effect on them.
> >
> > Thank you for reporting this problem. I hope this helps with bcal
> reconstruction.
> >
> > -Richard Jones
> >
> > On Tue, Oct 14, 2014 at 3:30 PM, Justin Stevens <jrsteven at mit.edu>
> wrote:
> > Hi Richard,
> >
> > I was hoping to follow up on what we talked about briefly at the
> collaboration meeting regarding BCAL truth showers.  I'm looking at some
> simulation events with single photons generated at theta = 50 degrees and E
> = 2 GeV.  From an earlier thread about hadronic showers on the offline list
> https://mailman.jlab.org/pipermail/halld-offline/2014-May/001677.html
> >
> > > Once a primary particle has entered the BCAL and had its TruthShower
> recorded, it is marked with a spot of red dye (colloquially). Any
> secondaries that are generated from interactions by that particle inherit
> its red spot, even if they escape from that module and enter another one.
> >
> >
> > I was expecting there should be only one BCAL truth shower in each event
> which contain a single photon.  This is the case for some events like this
> one from hd_dump:
> >
> > DBCALTruthShower:
> >  ptype: track: primary:    phi:      r:     z:     t:     p:     E:
> > -------------------------------------------------------------------
> >      1      1        1  -1.419  65.042  119.6  2.832  2.000  2.000
> >
> > However, for most events there are many DBCALTruthShowers listed, like
> in the example below:
> >
> > DBCALTruthShower:
> >  ptype: track: primary:   phi:      r:     z:     t:     p:     E:
> > ------------------------------------------------------------------
> >      1      1        1  0.686  65.042  119.6  2.832  2.000  2.000
> >      3      3        0  0.686  66.617  120.9  2.901  1.595  1.595
> >      3      3        0  0.686  66.979  121.2  2.917  0.001  0.001
> >      1      3        0  0.686  66.766  121.0  2.907  0.054  0.054
> >      2      2        0  0.686  66.617  120.9  2.901  0.405  0.405
> >      1      2        0  0.686  66.894  121.1  2.913  0.018  0.018
> >      1      2        0  0.686  66.806  121.1  2.909  0.005  0.005
> >      1      2        0  0.686  66.709  121.0  2.905  0.201  0.201
> >      3      2        0  0.686  67.005  121.2  2.918  0.158  0.158
> >      1      2        0  0.686  67.021  121.2  2.918  0.068  0.068
> >      2      2        0  0.686  67.005  121.2  2.918  0.042  0.042
> >      1      2        0  0.686  67.060  121.3  2.920  0.016  0.016
> >      1      2        0  0.686  67.021  121.2  2.918  0.001  0.001
> >
> > So first of all, is this the expected behavior?  That there are many
> DBCALTruthShowers where many of them appear to be secondaries of the
> primary single generated photon in the event?
> >
> > And if the answer to the questions about is yes, for a general bggen
> event (where there are many particles incident to the BCAL) how should I
> best associate reconstructed BCAL showers with these DBCALTruthShowers?
> >
> > Thanks,
> > Justin
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mailman.jlab.org/pipermail/halld-offline/attachments/20141020/50b6c512/attachment-0001.html 


More information about the Halld-offline mailing list