How to test a new HLT menu

Goals of this page

New software menus need to be tested. A first test of a new HLT menu, can be done by following the instructions on this page. It has to be read as a road-map, which links to the relevant Workbook pages for more thorough explanation.


  • The CMS environment and the necessary HLT package
  • Where to find the menu and obtain your configuration file (python file)
  • Where to find and include your input data (root file)
  • Run your job

The CMS environment and the necessary HLT package

Before you can run a job, you need to set up an environment and add a specific package for the HLT.

First, you log in to the lxplus5 machine at CERN, and go to your tmp/ or scratch0/ directory (or anywhere else where you want to run the job). To create an area for your release, you give the command: cmsrel CMSSW_3_6_3, where CMSSW_3_6_3 can be replaced by any release you want to test (for example CMSSW_3_5_7_hltpatch4). Open the directory and give the command cmsenv to start working in the CMS environment. More complete information about setting up your environment is to be found at the page Workbook: Set Computer Node.

In this directory, you add the necessary HLT package with: addpkg HLTrigger/Configuration. The test directory where you are going to run your job is now available. To go there, type: cd src/HLTrigger/Configuration/test.

Where to find the menu and obtain your configuration file (python file)

A configuration file defines which modules are used in your job. While constructing the command to obtain this file, you need to know where the menu is stored that you want to test. All the HLT menus are put in the configuration database (ConfDB): link to ConfDB. For testing you can have a look at the tab HLT development. A menu for CMSSW_3_6_3 is for example stored at /online/collisions/2010/week24/v8/HLT/V1.

If you go back to the test directory in your terminal, you find the files you need to get the configuration file. First, you can have a look at the shell script It states what command to give to obtain a configuration file, for different types of menus. For example, if you want to test offline data, you look at the second line: ./ --process TEST --full --offline --data --l1 $L1T $HLT TEST

In this line, you can add --unprescale if you want to run without any HLT prescales (you can look this up in the file). After --data you need to put the link to the menu you found in ConfDB. If you don't specify the version of the menu (remove V1 from the link above), the program takes the latest one. What version is used in the end, you can check at the top of the configuration file. The last word of the line (TEST) you can replace by something convenient (for example: HLT_unprescaled), if you want to get more configuration files later.

To summarise: if you want to get a configuration file for offline data, unprescaled, you can give the following command in the test directory:

./ --process TEST --full --offline --unprescale --data /online/collisions/2010/week24/v8/HLT HLT_unprescaled

The file you created is named and you can rename if you want:


Where to find and include your input data (root file)

The configuration file uses a root file as default input data. If you want to use your own data, you need to change the fragment of the file starting with process.source. CMS data is stored in a database, that lists all data with their logical filenames: link to webpage input database. In the HELP page at this website, you will find the syntax of the very useful 'query language'. It provides a quick way to locate the right data file. An explanation about the database and its query language (dbsql) is to be found at Workbook: Locating Data Samples. For now, it is convenient to know that you can type a command in your terminal that uses dbsql to find a data file immediately. An example:

dbsql "find file where run = 137028 and dataset = *MinimumBias*RAW*"

A logical filename looks like this: /store/data/Run2010A/MinimumBias/RAW/v1/000/137/028/FE71135A-1B71-DF11-91CD-001D09F252E9.root. Copy and paste this in your python file, and it will use it as its input.

Another useful fragment of the configuration file is process.maxEvents. Here you can instruct the program how many events it accepts.

Run your job

The only step left is to run the test job. To run a job in the CMS environment, you use the executable cmsRun, followed by your configuration file ( and a request to create a log if you want (>& log). For more information about this statement you can look at Workbook: CMSSW Framework.

-- AagjeHendriks - 17-Jun-2010

Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r5 - 2010-06-24 - unknown
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback