L1 Drift Tube Trigger Primitive Offline Software
Complete:
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.
Introduction
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.
Usage
Packages
DTTPG-specific Packages:
Other packages including code used by DTTPG:
Other relevant packages for DTTPG:
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.
L1Trigger/DTUtilities
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.
L1Trigger/DTBti
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).
+L1Trigger/DTTraco
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.
L1Trigger/DTTriggerServerTheta
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.
L1Trigger/DTTriggerServerPhi
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.
L1Trigger/DTSectorCollector
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.
L1Trigger/DTTrigger
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.
- 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.
- 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.
Configuration
Coding Rules
DTTPG specific coding rules:
Information sources
Review status
Responsible: Sara Vanini