Print

Print


Hello hps-software,

While performing hodoscope studies, Rafo and and I have stumbled on some
odd output when attempting to obtain track momenta. I'm not sure if this is
an issue with what I'm doing to obtain it, or if it's something odd
happening with the momentum calculations. Note that this is done on the
iss166 branch with the hodoscope detector, so it is also possible that
something here is causing an issue. To see the issue, consider the momentum
distribution for the initial MC particles for all events in the data set
(pure tridents). We see the following:



This is reasonable for 2.3 GeV data. Now, consider the momentum of the
observed tracks (using track state "0"):



We see that virtually all of the momentum is in the x-direction. This is
reasonable - we expect most of the momentum to be in the direction of the
beam line. However, we can see that the track momenta are dramatically
lower than what we would expect, with almost nothing above 500 MeV.

I checked to make sure this wasn't a field map issue, and verified that all
steps in the process (SLIC, readout, and recon) used the correct field map (
209acm2_5kg_corrected_unfolded_scaled_1.04545.dat), so this is not the
issue. Rafo suggested manually calculating the momentum from the track
parameters using the following method:

            final double aa = 3.e-4;
            final double B_PSpec = 0.5242301;
            final double a_Bz = aa*B_PSpec;

            double phi = track.getTrackStates().get(0).getPhi();
            double omega = track.getTrackStates().get(0).getOmega();
            double tanLambda = track.getTrackStates().get(0).getTanLambda();

            double magP = a_Bz / Math.abs(omega);

            double px = magP * Math.cos(phi);
            double py = magP * Math.sin(phi);
            double pz = magP * tanLambda;

Using this method, we obtain a more reasonable total momentum distribution.



This suggests to me that there might be something weird going on with the
momentum calculation in HPS-Java (or at least this branch of it). Another
sign that this may be the case can be observed by looking at the track
state at the calorimeter. I obtain this with the following method suggested
by Miriam:

             TrackUtils.getTrackStateAtECal(Track)

When calling "Track.getMomentum()", I see two classes of outcome. One where
the momentum is absurdly high, and one where it is absurdly low. Some
examples from actual data are included below, with the format "EcalState(px,
py, pz) << >> State0(px, py, pz)":

             (  0.004,   0.001,  -0.000) << >> (0.315, 0.007, -0.005)

>              (  0.003,  -0.001,  -0.000) << >> (0.208, 0.011, -0.006)
             (  0.004,   0.001,   0.000) << >> (0.285, 0.006,  0.006)

>
>              (458.765, -133.711,   9.243) << >> (0.160, 0.005,  0.003)

>              (453.831,  149.604, - 9.234) << >> (0.174, 0.005, -0.003)

>              (447.438,  167.760,  11.122) << >> (0.149, 0.003,  0.004)
             (459.146, -132.398, -18.623) << >> (0.165, 0.004, -0.006)

Clearly, something quite odd is going on, since it is completely
unreasonable for a track to have the greater part of 500 GeV momentum in a
2.3 GeV beam. Likewise, I would not really expect us to see tracks with
nearly no momentum at all. This suggests to me that the track state
calculations for states other than "track state 0" (the target?) may be
incorrect.

I'm hoping someone more knowledgeable on the SVT side of things can give
some insight into what is going on here, and correct me if I'm doing
something wrong.  Also, if there are any tests I can do or files that would
be useful to have access to, let me know.

Thanks,

Kyle

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the HPS-SOFTWARE list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1