<Code Browser> Top of CDF Run2 source tree

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:



         CdfMet_ch metHandle;
         ...
         float myZVertex = metHandle->zVertex();

  - 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



IMPORTANT NOTE:  The x and y components of the missing Et are given by -exSum and -eySum.

    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.