Missing
Et software user guide page
To
go to the Calorimeter Reconstruction page, click here.
This page
gives an introduction on how to use and access the Missing Et (Met) information
in an analysis
program.
This page is oriented for beginner users.
The code
related to the missing Et in the CDF software is separated into three packages:
MetObjects, MetMods
and Met.
MetObjects contains the CdfMet object, MetMods contains the module that
fills the CdfMet class and
Met contains
various utilities used to calculate CdfMet quantities. This page can be
found in the /doc directory
of the
MetObjects package.
Contents
:
..................
1 - Description of the Met packages
..................
2 - Accessing the Missing Et information in your analysis
..................
3 - The member functions of CdfMet
..................
4 - Customizing the CdfMet object
1- Description of the Met packages
MetMods:
Contains CdfMetModule where the missing Et information is calculated and
the CdfMet object is created.
You have to include this module in your path in order to access CdfMet
information (see next section about that). It also
contains an example module that shows how to use the missing Et information:
CdfMetExampleModule.cc. We'll follow this
example in this page.
Met:
Contains different classes that are used to manipulate a CdfMet object
during its creation. This package contains
no classes that should be used directly in an analysis program.
MetObjects:
Contains the CdfMet class from which you can access the missing Et information.
2- Accessing the Missing Et information in your analysis
What we describe here is in complete analogy with what is done to access
the jets and towers information,
(see CalorObjects
and JetObjects
doc. pages), with the obvious difference that here there is only one CdfMet
object
per event, while there
is many towers and jets. In their cases, we access a collection of objects.
This example is inspired by CdfMetExampleModule.cc (click here
for a link to code browser) found in the
MetMods package. First,
in your file MyAnalysis.cc in the "test" directory, you have to declare
the CalorimetryModule,
which fills the towers,
the CdfMetModule, which calculates the Missing Et and your MyAnalysisModule:
AppUserBuild::AppUserBuild(
AppFramework* theFramework )
: AppBuild( theFramework )
{
...
AppModule* aModule;
aModule = new CdfMetModule( "CdfMetModule",
"Uncorrected Missing ET Module");
add( aModule );
aModule = new CdfMetExampleModule( "CdfMetExampleModule",
"Example Using Uncorrected Missing ET Module");
add( aModule );
}
Then, in your analysis module, start by declaring a handle on the CdfMet storable object:
AppResult MyAnalysisModule::event(
AbsEvent* anEvent )
{
CdfMet_ch metHandle; // For a constant handle
or
CdfMet_h metHandle; // For a non-constant handle
Note: These types are templates of the more general function ConstHandle and Handle (defined in CdfMet.hh):
typedef Handle<CdfMet> CdfMet_h;
and
typedef ConstHandle<CdfMet>
CdfMet_ch;
You can now fill the handle using the function find:
// this will return the first Met object it finds:
CdfMet::Error metStatus = CdfMet::find(metHandle);
if(metStatus == CdfMet::ERROR){
ERRLOG(ELerror,"CdfMetExampleModule: ") << "Error in CdfMetExampleModule:
could not find CdfMet" << endmsg;
return AppResult::ERROR;
}
The function "find"
returns a "CdfMet::Error" equals to OK if
there was a CdfMet in the event, or ERROR
if none was found.
In the case it returns OK, "metHandle" contains now the missing Et information
of the event.
3- The member functions of CdfMet
We
now describe the information that is accessible from a CdfMet object, with
for example the following syntax:
- float zVertex() const;
-> z vertex
- float met() const;
-> scalar missing Et
- float phi() const;
-> phi angle of the missing Et vector
- float eSum() const;
-> total energy in the calorimeter
- float etSum() const;
-> total transverse energy in the calorimeter
- float exSum() const;
-> sum of x component of energy in the calorimeter
- float eySum() const;
-> sum of y component of energy in the calorimeter
The following functions returns values for a specific tower type (see Calor
software page for description of the
different types). The variable "size_t type" is just an integer corresponding
to the tower type.
- float eSumType(size_t type)
const;
- float etSumType(size_t
type) const;
- float metXType(size_t
type) const;
- float metYType(size_t
type) const;
- float etEmXType(size_t
type) const;
- float etEmYType(size_t
type) const;
- float etHadXType(size_t
type) const;
- float etHadYType(size_t
type) const;
The following functions returns values for a specific ieta annulus in the calorimeter.
- float eSumIeta(size_t ieta)
const;
- float etSumIeta(size_t
ieta) const;
- float metXIeta(size_t
ieta) const;
- float metYIeta(size_t
ieta) const;
- float etEmIeta(size_t
ieta) const;
- float etHadIeta(size_t
ieta) const;
4- Customizing the CdfMet object
There are four CdfMet parameters that can be customized at running time
in the AC++ environment:
vertexStrategy , fullVertexStrategy, towerThreshold, and useOfflineLers.
vertexStrategy:
Used
to choose a way to find the primary z-vertex. By default,
vertexStrategy is set to 0, which means the software uses a z primary vertex
= 0.0.
vertexStrategy 1 uses the vertex from ZVertexColl with a minimum quality
of 12.
vertexStrategy 2 uses MC true vertices from OBSV vertex.
vertexStrategy 3 uses the main vxprim vertex. A vertexStrategy of
4 or greater is
interpreted as the minimum quality for the vertex from ZVertexColl to be
used (so
vertexStrategy 12 gives the same results at vertexStrategy 1.)
fullVertexStrategy:
Used
to choose a way to find the x- and y-vertices, as well as the
beam slopes dx/dz and dy/dz, for reconstruction of the CdfMet object using
a 3-D vertex.
Again, by default, fullVertexStrategy is set to 0, which means the software
sets the x-
and y-vertices and slopes to zero. fullVertexStrategy 1 will use
the information from the
COTBeam object, while fullVertexStrategy 2 uses SVXBeam information.
More information
on 3-D vertex reconstruction in the Met software will be in CDF note 6700.
towerThreshold:
Chooses the threshold in energy (in GeV) for a tower to be considered.
0.1 GeV is the
default value.
useOfflineLers:
Selects whether offline LERs (tower-by-tower corrections determined offline)
are applied. This is set to true by default.
In your tcl file, the syntax for these parameters is:
module
talk CdfMetModule
verbose
set false
vertexStrategy
set 0
fullVertexStrategy
set 0
towerThreshold
set 0.2
useOfflineLers
set true
exit
Click
here
for top of the page.
Page maintained by
Jean-Francois
Arguin (UofT)
Last update: September 26, 2003;
using release 4.11.1.