CDF Run II Jet Reconstruction

This page contains information about the available Jet clustering modules and directions for running simple examples. If you have any questions or comments, please email me:

Jodi Lamoureux

Status of Jet Clustering Modules

Below is a list of modules which are or will be available in the jetMods area. Both the modules and this Web page documenting them are under construction.

  • JetcluModule ---- C++ wrappered fortran Jetclu. Available now.
  • JETCLU ------- C++ translation of the JetcluModule. Available now, beware a few bugs.
  • FAST_JETCLU -- optimized C++ cone clustering algorithm. Not yet available.
  • KT_JETCLU ---- C++ Kt clustering algorithm. Not yet available
  • JETANA ------ C++ example of accessing the calorimeter and jet data. Available now.
  • How To Run the Example Jet Clustering Job

    General directions for setting up the run II offline and running an example may be found in Rob Harris' documentation: Examples of Building Jobs

    The easiest way to run the current modules is to make a test release area with the jet modules in it:

    1. go to the directory of your choice
    2. source ~cdfsoft/cdf2.cshrc
    3. setup cdfsoft2 development
    4. newrel -t development testjob
    5. cd testjob
    6. addpkg -h jetMods
    7. gmake jetMods.lib
    8. gmake jetMods.bin
    9. bin/IRIX6/Jetclu_test
    10. source jetMods/run_C++_Jetclu.tcl
    11. bin/IRIX6/Jetclu_test
    12. source jetMods/run_wrappered_Jetclu.tcl

    This will produce a printout of the calorimeter towers and jets for a few 4-jet events. Check out the jetMods/run_*_Jetclu.tcl files for further ideas of things to do. The AC++ commands are documented in Commands Reference Manual You should be able to copy the jetMods/Jetana module to an area of your choice and then modify it to do the jet analysis of your choice.

    Documentation of the Jet Clustering Modules

    The Jet clustering modules are built around a number of different clustering algorithms. Each algorithm is or will be made into a module. This seems the most reasonable approach since only a small number of algorithms will be studied sufficiently to be used in publication. There are a number of parameters associated with each algorithm (example: minimum Et of object to be clustered.) Currently the ability to "talk" to a module isn't implemented, so you are stuck with the default parameter set. Things like cone size and ycut-min however, will be adjustable in the near future.

    The wrappered fortran algorithm (JetcluModule) copies the TOWE and SETA banks to an IW array which can be accessed from the fortran where the old jetclu routines are called. At the end of the event, the TOWE, SETA, CLSL, CALL, and JETS banks are copied back into the TRYBOS record.

    For the C++ modules, data access comes from the TOWE_Bank_Driver and the Annulus_Location classes from which it is possible to calculate the Et of the EM and HAD energies. An array of CAL_TOWERs is formed which contains the EM, HAD and TOTAL energies, Et, eta, phi, and sin(theta) for each tower with non-zero energy in the detector. This is then used by the clustering algorithm to form jets.

    In the near future it is desirable to run clustering algorithms on CAL_TOWERs, GENP particles, and tracks. The current design works only off of CAL_TOWERS and must be abstracted so that it may run off of particles and tracks too. Look here in the future for the details of the new design.

    The output of the clustering algorithms are jets. Fundamentally, a jet is a subset of the original list of input particles or towers. Each jet has a centroid and a bunch of other measurables such as the electro-magnetic fraction and charge fraction. For a given algorithm and input type (CAL_TOWER,track,GENP particle) a CLSL bank is made with the bank number of the first jet of that type and the number of jets. The CALL bank for each jet contains a list of indices for the towers(ieta,iphi) tracks(TRKS bank number) or particles(GENP particle number) in the jets. The JETS bank contains the measurables for the jet.

    Access to the TOWE bank, Annulus_locations, and CAL_TOWER classes can be easily made through the CAL class (cal/Cal.hh). Similarly, access to the jet data is facilitated by the CONE_JETS class (jet/Cone_jets.hh). An example of using these classes for analysis may be found in the JETANA module. In the future we plan to extend this scheme so that we can easily access Genp_cone_jets, Track_cone_jets, Kt_jets, Genp_Kt_jets, and Track_Kt_jets.

    PS. This page is still under construction. Not to mention the code.