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.TEMPLATEOR
TYPE DUCSSEARCH:PHSHAPP.TEMPLATE TYPE DUCSSEARCH:PHCLASS.TEMPLATEA 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 sideNotice 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 SDDXWDONotice 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 SDDXWDONotice 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.