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:
EVE DUCSSEARCH:PHSHAPP.TEMPLATE
EVE DUCSSEARCH:PHCLASS.TEMPLATE
OR
TYPE DUCSSEARCH:PHSHAPP.TEMPLATE
TYPE DUCSSEARCH:PHCLASS.TEMPLATE
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.
VAR KALTHRU,TRKTHRU,EKAL,ETRK,KALPHI,TRKPHI
PROCESSOR PHSHAP ! Initialize Processor
POINTER P_PHCLASS -->PHCLASS ! Declare pointer
DEF EVANAL
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
TITLE "DIFFERENCE IN THRUST TRK-KAL @"
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
ENDIF
ENDIF
ENDDEF
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
HOUT 170 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.