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
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):
jet->totEt() <------------------------> jet->pt()
jet->eta() <------------------------> jet->rapidity()
jet->phi() <------------------------>
jet->phi()
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).
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).
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