[Halld-offline] problem with spread of values for particle gun
Beni Zihlmann
zihlmann at jlab.org
Tue Mar 22 08:39:36 EDT 2011
Hi Kei,
the behavior you see is actually a FORTRAN thing. Any number without a
decimal point is viewed
as an integer in FORTRAN. Therefore any FORTRAN programmer early on
learned to put a decimal
point on any number he intends to be non integer. ;-)
cheers,
Beni
> Dear Richard,
>
> Thank you for the various tips. Although this
> behavior is quite baffling, it is good to know
> that there are experts available.
>
> Cheers,
> Kei
>
> (3/21/11 3:18 PM), Richard Jones wrote:
>> Kei,
>>
>> Another one of those follies from FFREAD that I recently re-learned is that it matters how
>> many letters you put in the leading word in the lines of control.in. If the full command
>> name is more than 4 characters then any string of 4 or more characters that coincides with
>> the name works. For example, any of the following cards will work for the INFILE command:
>>
>> * INFI 'rhop.hddm'<--<< ok
>> * INFIL 'rhop.hddm'<--<< ok
>> * INFILE 'rhop.hddm'<--<< ok
>>
>>
>> HOWEVER, if the specification is a shortened form, then spelling out the complete word
>> fails. For example, the command for debug output is spelled DEBU (without the G). The
>> first one below works, while the second one is silently ignored.
>>
>> * DEBU 1 10 1000<--<< ok
>> * DEBUG 1 10 1000<--<< bad form
>>
>> Just thought you might like to know.
>>
>> -Richard J.
>>
>>
>>
>> On 3/21/2011 2:43 PM, Kei Moriya wrote:
>>> Dear offliners,
>>>
>>> I wanted to let you know that there is a little bug
>>> when generating particles with a spread in
>>> momentum and angle with the particle gun.
>>>
>>> When generating events with the particle gun,
>>> I specify the central value of p, theta, and phi,
>>> along with the full width of each value.
>>> What I have noticed is that if I specify for
>>> example
>>> c particle momentum theta phi delta_momentum delta_theta delta_phi
>>> KINE 114 5.0 30. 0. 0.5 30 360.
>>>
>>> which means generate protons(offset=100+PID=14) with
>>> p = 5.0 +/- 5
>>> theta = 30 +/- 15
>>> phi = 0 +/- 180.
>>>
>>> What I have noticed is that the decimal point for
>>> the momentum values are essential, since without
>>> the decimal point, the spread becomes 0!
>>> I assume this is a simple bug of taking the value
>>> as an int instead of a float.
>>>
>>> The plot attachd show the difference when
>>> a "." is added to delta_momentum so that the
>>> top plot (with decimal point) has a full width
>>> of 5 (2.5<p<7.5), while the bottom (without decimal
>>> point) has no width.
>>>
>>> I assume the place to correct this is within
>>> gukine.F in sim-recon/sim-recon/src/programs/Simulations/HDGeant/
>>> but I'll let the experts fix this so I don't
>>> break anything.
>>>
>>> One thing that comes as a consequence of this is that
>>> the plots I showed last week had theta exactly
>>> at 0.25,0.75,1.25, ... degrees, and NO spread.
>>> I'm not sure how many other people are using the
>>> particle gun, but you may want to check that you
>>> are actually getting a spread in your values.
>>>
>>> Kei
>>>
>>
>>
>> _______________________________________________
>> Halld-offline mailing list
>> Halld-offline at jlab.org
>> https://mailman.jlab.org/mailman/listinfo/halld-offline
> _______________________________________________
> Halld-offline mailing list
> Halld-offline at jlab.org
> https://mailman.jlab.org/mailman/listinfo/halld-offline
More information about the Halld-offline
mailing list