Workbook for SLD Offline Users - Processors Ex.3: The Shapefinder

Another Processor closely related to the jetfinder is the shapefinder. From the shapefinder we can get some very useful information like thrust axis (also major and minor axis), thrust variable, oblateness and sphericity of the event.

The purpose of this exercise is

The following example uses the shapefinder PHSHAP.PREPMORT its parameter bank PHSHAPP.TEMPLATE and its output bank PHCLASS.TEMPLATE. It is recommended that you look at a copy of PHSHAPP.TEMPLATE and PHCLASS.TEMPLATE while you are doing this exercise. You may do this by typing:

A word of warning: some of the information in PHCLASS is unreliable. Specifically, you can not trust anything appearing above the following lines:
! energy summary
   Real      EVIS             "Total visible energy"
   Real      EVISKAL          "Total visible energy (KAL only)"
   Real      PVEC(3)          "Total visible momentum vector"
   Real      PVECMOD          "Modulus of PVEC"
! event shape summary
   Real      Thrust(9)        "Thrust, Minor, major axis"
   Real      Thrustv(3)       "Thrust, Major, minor value"
   Real      Obl              "Oblatenes                "
   Real      Spher(9)         "Spericity axis           "
   Real      Spherv(3)        "Sphericty eigenvalues    "
   Real      Apl              "Aplanarity               "
The part of PHCLASS above those lines should not be used for analysis. It is there for historical reasons and, unfortunately, cannot be removed.

In the following exercise we will use both tracking and calorimetry to compute cos(theta) of the thrust axis and the visible energy in the event. We will plot these quantities in different combinations in an attempt to observe the different behavior of the different modes. Like the Jetfinder the Shapefinder may be called multiple times per event with different parameters each time filling the PHCLASS Bank.

This exercise may be done interactively by entering each line at the Ida prompt or by copying it to a file and issuing the @ command.


      PROCESSOR PHSHAP                       ! Initialize Processor
      POINTER P_PHCLASS -->PHCLASS           ! Declare pointer


         IF BANKCNT(_PHKLUS)>=3   !Shape finder needs at least 2 tracks or
         IF BANKCNT(_PHCHRG)>=3   !clusters to find thrust we will choose a
                                  !minimum of 3 just to be safe.
           POKE PHSHAPP.MODE=KAL     ! set shapefinding mode to use clusters
           CALL PHSHAP(DOIT)         ! Find thrust and other variables

           P_PHCLASS=_PHCLASS                   ! set value of pointer
           EKAL=P_PHCLASS%(EVISKAL)             ! visible calorimetric energy
           KALTHRU=P_PHCLASS%(THRUST(3))        ! Costheta of thrust axis

           POKE PHSHAPP.MODE=TRK     ! set shapefinding mode to use tracking
           CALL PHSHAP(DOIT)
           P_PHCLASS=_PHCLASS                   ! set value of pointer
           ETRK=P_PHCLASS%(EVIS)             ! visible tracking energy
           TRKTHRU=P_PHCLASS%(THRUST(3))        ! Costheta of thrust axis

          ! Book and fill Histograms to study results.
           HIST KALTHRU FROM -1 TO 1 MS R*4 ID 100 -  !plot costh of Kal thrust
              TITLE "COSTH THRUST KAL @"              !axis

           HIST TRKTHRU FROM -1 TO 1 MS R*4 ID 110 -  !plot costh of trk thrust
              TITLE "COSTH THRUST TRK @"              !axis

           SCAT KALTHRU FROM -1 TO 1 VS TRKTHRU FROM -1 TO 1 -  !Plot kal vs
             MS R*4S  ID 120 TITLE "KAL THRUST VS TRK THRUST @" !trk cos thrust

          HIST EKAL FROM 0 TO 120  MS R*4 ID 130 -    !Plot energy spectrum
             TITLE "KAL VISIBLE ENERGY @"             !for Kal

          HIST ETRK FROM 0 TO 120  MS R*4 ID 140 -    !Plot energy spectrum
             TITLE "TRK VISIBLE ENERGY @"             !for trk

          SCAT EKAL FROM 0 TO 120 VS KALTHRU FROM -1 TO 1 MS R*4S ID 150 -
             TITLE "KAL ENERGY VS COSTH THRUST @" !plot kal Energy vs kal thrust

           SCAT ETRK FROM 0 TO 120 VS KALTHRU FROM -1 TO 1 MS R*4S ID 160 -
             TITLE "TRKENERGY VS KALCOS THRUST @" !Plot trk energy vs kal thrust

           DELTATHR = ABS(TRKTHRU)-ABS(KALTHRU)  ! Compute the difference
                                                 ! between axis found.

           HIST DELTATHR FROM -1 TO 1 MS R*4 ID 170 -  !plot difference

           SCAT ETRK FROM 0 TO 120 VS DELTATHR FROM -1 TO 1 - !plot difference
              MS R*4S ID 180 TITLE "DELTA THRUST VS TRKENERGY @ " !vs energy
      OPENTAPE READ REC94_MDST STAGE WAIT    !open data file

      GO 500      ! run for 500 events (statistics look nice here)

If you have entered the above into a file please start an Ida session and issue the @ command.

Now lets view the output.

      HOUT 100 110 HALF SDDXWDO !display costh kal and trk side by side
Notice the cos(theta) distribution of the KAL Thrust Axis looks much more like 1+(COS(theta))**2 then the TRK distribution. Careful examination reveals they are relatively the same between COS(th)=+/-(0.3 to 0.6). However at large values of COS(th) the tracking seems inefficient and there appear to be more entries around COS(th)=0. This results from the unfortunate fact that tracking is not very efficient in the endcap. So if a jet has a few hits in the Barrel Drift Chamber and the rest are unfound in the endcap the shape finder may assign the thrust axis anywhere in the barrel.
      HOUT 120 SDDXWDO
      HOUT 130 140 HALF SDDXWDO
Notice the KAL energy resolution is narrower than the TRK's as it should be. You should have also noticed when you plotted KAL vs. TRK COS(theta) Thrust, you got a big X . This is because the TRK energy resolution isn't so great there is a good chance of having the jet point in the wrong direction. Furthermore if you look at the KALTHRU COS(theta) axis around 1 and -1 you will see a splattering of points not falling on the X. These are the end cap points that the tracking messed up on.

     HOUT 150 160 SDDXWDO
Notice the KAL visible energy for both the Kal and Trk Thrust axis are basically the same (except where trk blows it). In both cases we see the response dropping off at COS(theta)=0.65 . Which is where are efficiency in the LAC begins to drop off.


The preceeding exercise was designed to demonstrate how to use the shapefinder. It attempted to demonstrate the differences between using MODE KAL and TRK. From it one finds that it is not a good idea to use MODE TRK beyond COS(theta)=0.7. Also if you are attempting to get the same results as a previous analysis you better know which MODE was used because you may get an opposite sign on the thrust axis.
Eric Weiss
7 February 1995