Offline Calorimetry Documentation : Calor package
 

To go to the calorimetry packages page, click here.


Contents :
................. 1- Introduction
................. 2- Tower Summer (used for jet calculations)
                         i - SnowMassSummer
                         ii- FourVectorSummer
................. 3- Tower Calculator (used for PhysicsTower calculations)

................. 4- Miscellaneous utilities
................. 5- PhysicsTowerDataMaker


1- Introduction

    The Calor package contains different utilities including the calculation of PhysicsTower which are used to create
    higher level objects like jets, electrons and missing Et for example. It also contains the classes that calculate
    the jets variablesjets. Most of the classes defined in this package are rather technical. However, some of
    them are know for common user, and we'll describe them here.
 

2- Tower Summer (used for jets calculations)

    The TowerSummer classes are the FourVectorSummer and SnowMassSummer classes. They all inherit from
    the TowerSummer, which is a purely virtual class.

    These classes are used by the jet finding algorithms (defined in JetMods doc.) to calculate the centroid and
    the kinematics variables of the jets. During the jet finding phase of the JetClu algorithm, the jet centroid
    are calculated using the snowmass convention. When the jets are found and clustered, the four-vector summer
     is used to calculate the jet 4-vector. For all other jet algorithms, the four-vector summer is used both for jet
    finding and final kinematic calculation. We describe both of these below.

    CAUTION: be careful to use the proper jet variables with the proper algorithm (more details here):



             JetClu               <------------------------>   MidPoint, Kt, Seedless

            jet->totEt()      <------------------------>   jet->pt()

            jet->eta()         <------------------------>   jet->rapidity()

            jet->phi()         <------------------------>   jet->phi()



 

i - FourVectorSummer

  Used by SeedlessConeModule, MidPointModule and KtClusModule for both jet finding and final 4-vector calculation.
   Used by JetCluModule for 4-vector calculation.

    Unlike the SnowMassSummer, the four-vector summer starts by calculating a four-vector of the jet and then calculates the
    centroid components. The formulas for the jet four-vector and other jet variables are found here.

    The calculation of the four-vector before the centroid avoids the use of Et in the calculations of the position of the centroid,
    which is not a true energy variables, which makes comparison with theory more difficult (detailed discussion can be found
    in CDF 5293).
 

ii - SnowMassSummer

   Used by JetClu module only for centroid calculation.

    Centroid calculation:

    The summer calculates an Et-weighted centroid. The formulas used to calculate the eta, phi and Et of the centroid can be
    found on this .ps file.

*3- Preclustering (or PhysicsTower kinematics calculation)

    The definition of kinematics of clusters, like towers, charged tracks or partons, are a very important part of jet
    clustering algorithms. For easier comparison of experiment to theory expectations, this step is important to
    ensure as much as possible the independence of the jet clustering from  the particular geometry of the detector.

    The preclustering is made by "calculators". The input for these calculators can be either calorimeter towers
    (the default) or tracks or HEPG hadrons or partons for dedicated studies (see here for info on other input than
    CalData). The Run I calculator (StandardCalculator) is used for JetClu preclustering. For the new Run II
    jet algo. (MidPoint,Kt, Seedless), an improved preclustering is used (FourVectorCalculator). A summary
    of the PhysicsTower kinematics calculation can be found in calc.ps. The preclustering for missing Et
    (MetCalculator) is identical to StandardCalculator except that the threshold for calculation is on both EM and
    HAD energy instead of Et (StandardCalculator) or Pt (FourVectorCalculator).

4- Miscellaneous utilities

    An exemple of utility classes is shown at the end of CalorExampleModule.cc in the CalorMods package (line 195 to 202).
    The example uses classes defined in TowerPredicates.hh and the class calorMakeView. CalorExampleModule
    speaks by itself:

           #include "Calor/TowerPredicates.hh"
           #include "Calor/calorMakeView.hh"
            ...

    CalData_ch data;
            ...
            vector<const CalTower* > towerList;

            calorMakeView(data,towerList,HasCalorimeter(WHA));
            cout << "there are " << towerList.size() << " WHA towers with energy" << endl;

            towerList.clear();
            calorMakeView(data,towerList,EmEnergyGreater(3.0));
            cout << "there are " << towerList.size() << " Towers with EM energy above 3.0 GeV" << endl;

    In the example, the calorMakeView function will use the empty list towerList to create a list of towers with
    WHA detector in the first case and towers with EM energy > 3.0 GeV in the second case, using the classes
    (defined in TowerPredicates.hh) HasCalorimeter and EmEnergyGreater, respectively. The other utility class
    defined in TowerPredicate.hh is HadEnergyGreater.

    The CalorPredicates classes can also be used on list of PhysicsTower or CdfJets. This piece of code shows an example
    of how to use them on jets (from JetExampleModule.cc)

           sort(jets.begin(), jets.end(), EtGreater());
           JetIter iter15GeV = find_if(jets.begin(),jets.end(),EtLessThan(15.0));

           JetList highEtJets;

           for(JetIter iter = jets.begin(); iter != iter15GeV; ++iter)
           highEtJets.push_back(*iter);

    Where the class EtLessThan, from CalorPredicates has been used. Other classes defined in CalorPredicates.hh are (with
    explicit names):

       - HadEnergyGreater
       - TotEnergyGreater
       - HadEtGreater
       - EmEtGreater
       - EtaGreater
       - EtaLess
       - IndexMatch
       - NeighborsInCone
 

5- PhysicsTowerDataMaker

    The documentation about PhysicsTowerDataMaker can be found in the CalorObjects documentation here.
 

To go to the calorimetry packages page, click here.
 

Page maintained by Jean-Francois Arguin (UofT)
Last update: September 26,  2003