L1 Drift Tube Trigger Primitive Offline Software

Complete: 1

Note: this page is out of date to some extent; it will be updated asap. Please contact the subsystem responsible for confirmation of details on this page.


This page describes the code of the DT Trigger Primitives emulator in CMSSW. Below is included the description of each subpackage and of the EDProducer/EDAnalyzer used by DTTPG.



DTTPG-specific Packages:

Other packages including code used by DTTPG:

Other relevant packages for DTTPG:

  • (\TODO)

Description of the packages

Each electronic part of the L1 DT Local Trigger (BTI,TRACO...) has its CMSSW counterpart in a separated package, in addition the DTTPG emulator includes a L1Trigger/DTUtilities package that contains some general-pourpose classes, not strictly related with the emulation of a specific part of the trigger electronics. A L1Trigger/DTTrigger package with the trigger steering (as well as the various EDAnalyzer/EDProducer) is also provided.


This package includes some helpful classes that are not strictly related to the emulation of the trigger electronics. Below is given a brief description of every class included in the package.

  • DTBtiId : the BTI identifier class, includes methods that returns BTIs station, sector, wheel, superlayer and BTI number in SL.
  • DTCache : a virtual class that includes the general cache structure used by each L1 DT local trigger subsystem to store trigger data.
  • DTConfig: it contains some common parameters used in all the configuration classes described later. More information about these parameter can be found in DTTPG config parameters page.
  • DTGeomSupplier : a virtual class that defines the ability to calculate coordinates for DTTPG objects.
  • DTTracoId : a TRACO identifier class, the same as DTBtiId but for TRACOs.
  • DTTrigData : a virtual class common to all DTTPG trigger objects.
  • DTTrigGeom : a Geometry package used to calculate geometrical parameters (TRACOs and BTI coordinates ...).
  • L1TriggerLutFile : a look up table class.


This package includes the BTI electronics description.

  • DTBtiCard : contains the list of single DTBtiChips that generated a trigger signal.
  • DTBtiChip : this class describes the single BTI chip.
  • DTBtiHit : contains a single BTI hit generated from DT digis.
  • DTBtiTrig : a class derived from DTBtiTrigData contains trigger data and info from the BTI Chip that generated the data.
  • DTBtiTrigData : define BTI trigger data (step, code, K, X ...).
  • DTConfigBti : this class contains BTI configuration parameters (more informations can be found here).


This package contains the TRACO electronics description.

  • DTConfigTraco : includes TRACO configuration parameters (more informations can be found here).
  • DTTracoCand : description of the TRACO candidate used in TRACO's algorithm.
  • DTTracoCard : contains the list of all DTTracoChips that generated a trigger signal.
  • DTTracoChip : describes the single TRACO chip and runs TRACO algorithm.
  • DTTracoLuts : TRACO look up tables inside the detector.
  • DTTracoTrig : contains trigger data and information from the TRACO that generated the data.
  • DTTracoTrigData : TRACO data generated from a trigger (code, step, position ...).
  • Lut : TRACO luts used in Test Beams.


This package describes the Trigger Server Theta electronics

  • DTChambThSegm : theta segment candidate data.
  • DTConfigTSTheta : describes TS Theta configuration parameters (more informations can be found here) .
  • DTTSTheta : description of the TS theta algorithm.


This package describes the Trigger Server Phi electronics.

  • DTChambPhSegm : contains the TS Phi trigger data.
  • DTConfigTSPhi : includes the TSPhi (both TSS and TSM) configuration parameters (more informations can be found here) .
  • DTTSCand : description of the candidate for the TS.
  • DTTSM : implementation of the TSM algorithm.
  • DTTSPhi : implementation of the whole TS algorithm.
  • DTTSS : implementation of the TSS algorithm.


This package contains the Sector Collector electronics description.

  • DTConfigSectColl : interface to the Sector Collector parameters (more informations can be found here) .
  • DTSC : implementation of the sector collector sorting algorithm for single/double stations.
  • DTSCCand : DTSC candidate used during DTSC sorting.
  • DTSCTrigUnit : describes the station Trigger Unit (includes BTIs, TRACOs, TSTheta and TSPhi).
  • DTSectColl : describes the full Sector Collector (include all the DTSC).
  • DTSectCollId : the Sector Collector Identifier class, returns sector and wheel of a Sector Collector.
  • DTSectCollPhCand : implementation of the Sector Collector Phi candidate.
  • DTSectCollPhSegm : defines the Sector Collector Phi trigger data.
  • DTSectCollThCand : implementation of the Sector Collector Theta candidate.
  • DTSectCollThSegm : defines the Sector Collector Theta trigger data.


This package contains the main DTTPG steering and the various EDProducer/EDAnalyzer.

  • DTTrig : this is the DTTPG steering.
  • DTTrigProd : EDProducer used to generate data for the DTTF (Usage described here).
  • DTTrigTest : EDAnalyzer used make detailed analysis on DTTPG performance (Usage described here).

DTTPG Data Formats

  • DTTPG emulator uses collection of DT digis as input. Their DataFormat can be found into the DataFormats/DTDigi package (look at DTDigi and DTDigiCollection classes).
  • The DTTPG produces two different kind of collections, one for the theta segments (L1MuDTChambThDigi and L1MuDTChambThDigiContainer ) and one for the phi segments (L1MuDTChambPhDigi and L1MuDTChambPhDigiContainer). All the DataFormats can be found into the DataFormats/CMS.L1DTTrackFinder package.

All the intermediate-step formats (such as DTBtiTrigData, DTTracoTrigData ...) are not persistent and are just used in the intermediate steps of the DTTPG chain (anyway they're available into the DTTrigTest output file).

DTTPG Producer and Analyzer

The L1Trigger/DTTrigger package includes some instruments useful to to analyze trigger data and produce DT trigger primitives. The default configuration files for each CMSSW module can be found under the L1Trigger/DTTrigger/data directory.

  1. dttpgprod.cfi is used to configure an EDProducer that generates the trigger primitives used to feed the DTTF and makes data persistent into the event.
  2. dttriganalyzer.cfi is used to configure an EDAnalyzer that generates a rootfile with trigger related results useful for analysis (eg. to compare DTTPG performance under different configurations).

Both the modules accept a untracked bool debug parameter used to increase verbosity and present the include "L1Trigger/DTTrigger/data/dttpg_conf.cff" statement. The last inclusion is necessary because it allows the DTTPG to read configuration parameters from pSet (In future the configuration will be read from Event Setup and DB so the previous statement will not be needed anymore). The dttpgprod.cfi also accepts the following parameters:

Type Name Description
int32 BXOffset Allow to set the correct BX to 0 into the DTTPG output, is used to simplify the DTTF algorithm and the DT-CSC data exchange
bool DTTFSectorNumbering This parameter allows to write data using the DTTF sector numbering [0-11] instead of the default CMMSW sector numbering

In addition the dttriganalizer.cfi accepts the untracked string outputFileName parameter that allows to select the output filename for the Analyzer's results.

The configuration parameters for each subsystem are located in a .cff file into the data directory of the subsystem's package and, among other things these .cff allow to set a different debug level for every part of the trigger system.


Coding Rules

DTTPG specific coding rules:

Information sources

Review status

Responsible: Sara Vanini

Reviewer/Editor and Date (copy from screen) Comments
VasileGhete - 15 Jan 2009 created wiki page
Last reviewed by: VasileGhete - 15 Jan 2009 copy/paste from CarloBattilanaSandbox
Edit | Attach | Watch | Print version | History: r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r1 - 2009-01-16 - VasileGhete
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2023 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