Introduction:
At Level 1 the calorimeter triggers are divided into 2 types: object triggers ( electrons, photons and jets) and global triggers ( E_T total and missing energy).
The object triggers are formed by applying thresholds to individual towers while thresholds for the global triggers are applied after summing energies from all towers.
The digitized calorimeter data are summed into trigger tower energies and weighted by sin(theta) on the front-end cards to produce the transverse E_T. Data are processed in the 6 L1CAL crates with final global sums and trigger summaries made in the Global L1 crate. The data are then forwarded to the L2 cluster finder after a L1 accept.
At Level 2 the clustering algorithms loops over all of the trigger towers,
first comparing the transverse energies with different thresholds for the
seeds. If a seed is found the information on eta, phi, and energy is stored
in an array of information for a cluster. The seed is masked off, and four
surrounding towers are flagged for the shoulder threshold passes. This
continues until there are no more towers to be included in a given cluster.
For each tower a word is created, containing the result of the clustering
algorithm. (each tower can be seed or cluster member for a given pass).
A schematic representation of the data flow in the Calorimeter code is
shown below:
Code
The following classes have been designed and coded (package CalTrigger):
It contains the array of trigger towers, arrays of L1 boards
( 96 DIRAC and 12 CRATESUM cards) and quantities resulting from the L1
simulation and L2 clustering and isolation algorithms.
Through methods of CalTriggerData the emulation of the digitization
stage is performed ( methods: FillTower, CorrectTransEnergy), L1 is emulated
through the methods: dirac_sim, cratesum_sim, L2 clustering through the
methods: DoClustering() and DoIsolationSums(). Modifiers and accessors
are of course provided plus a number of utilities like the method TC1D_output_conversion
to convert the output of dirac_sim and cratesum_sim into the right TC1D
bank format.
Some information on DIRAC
CalTriggerData does not implement streamers.
When running CalTriggerDataMaker, always remember to include the talk-to to CalibrationManager and CalorimetryModule . An example of talk-to to CalTriggerDataMaker, CalibrationManager and CalorimetryModule is in run_TRGSim++.tcl.
CalTrigger input and output
CalTrigger reads in input the calorimeter D-banks: CEMD, CHAD, PEMD,
PHAD, WHAD.
It can also get its input from CalData, but in this case we need to
control that the verb makeDbanks
is set t true in the CalorimetryModule talk-to. To get CalData, one
might need to puff it, via the talk to to PuffModule:
module talk PuffModule
puffonly add CalData
exit
CalTrigger gets also the track input from XTRD_StorableBank.
It is now possible to use the following verbs to run on real or simulated data:
use_software_CAL_banks :
this verb allows the user to select real or simulated CALORIMETR data (
CEMD, CHAD,PEMD,PHAD,WHAD or CalData)
use_xtrp
: this verb allows to use the XTRP track input, if it is set to f then
no XTRP input is present ( --> no ELCTRONS!)
use_hardware_xtrd:
this verb allows the user to select real or simulated XTRP data ( namely
real or simulated XTRD_StorableBank)
use_hardware_L1:
this verb allows the user to select real or simulated trigger tower energies
in the clustering simulation ( namely real TC2D or simulated energies)
So, for example to run on simulated data without XTRP ( old standalone option) the user will need to set the following talk-to:
use_software_CAL_banks set t
use_xtrp set
f
use_hardware_xtrd set f
use_hardware_L1 set f
To run on simulated data with XTRP the user will need to set the following talk-to:
use_software_CAL_banks set t
use_xtrp set
t
use_hardware_xtrd set f
use_hardware_L1 set f
CalTrigger produces in output the following banks:
Last updated Sept 04 2001; Simona Rolli