DØ Trigger Studies Group
Home | Meetings Info | Tools | Data Samples | Results | How-to | To-Do List | Useful Links | Help | Contact us





How to check the L1 And/Or terms mapping

And/Or terms used in a trigger list

The assignment of And/Or terms can vary from run to run. You can use --> --the following script provided by Marco to access the run database and get the proper mapping for a particular run:

GetL1AndOrTerms.py

Note: Again, only the And/Or terms that are mapped (used) in the trigger list are stored in the run database.

And/Or terms not used in the trigger list

If you want to know the position of And/Or terms NOT used in the trigger list, well it's a bit more tricky.

L1CTT: Info about the current L1CTT And/Or term mapping can be found at L1CTT online webpage (This mapping represent the current status and is not necessarily representative of the mapping in earlier runs)

L1Muon: The L1 And/Or terms are located in terms 80-95 and 192-207.

The following mapping are the "stable" mapping for the And/Or terms used in the trigger list (of course that can always chance, please check against the information contained in the database, see script above):

Term80 - mu1ptxctxx
Term81 - mu1ptxbtxx
Term82 - mu2ptxbtxx
Term83 - mu2ptxctxx
Term84 - mu1ptxwtxx
Term85 - mu1ptxatxx
Term86 - mu2ptxwtxx
Term87 - mu2ptxatxx
Term88 - mu1ptxclxa
Term89 - mu2ptxctxl
Term90 - mu2ptxclxx
Term91 - mu1ptxwtlx
Term92 - mu2ptxalxx
Term93 - mu1ptxatlx
Term94 - mu2pt1clxx
Term95 - mu2ptxcllx

Term192 - mu1ptxctlx
Term193 - OR of all BOTs
Term194 - AND of all BOTs
Term195 - mu1pt4wlxx
Term196 - mu2pt4wlxx 
Term197 - mu1pt4wllx
Term198 - mu1pt4wtxx
Term23 - mu1pt3wtlx
Term24 - mu2pt1cllx
Term25 - mu1pt2wtlx 

All the other L1Muon And/Or terms are for debugging/testing purposes and change all the time.



How to make a custom level3.sim file

From Gustaaf's e-mail to the d0trigsim-users mailing list: (level3.sim example)
Here's an explanation for the level3.sim file (note the useL2=no, which
means ScriptRunner will try all triggers on all events, if you set this
to "yes", ScriptRunner will only run specific L3 triggers on events that
fired specific L2 triggers, see below):

begin_store 1
set_client 0 global_CMT-12.20
trigger_list 0 SRDirective (useL2=no)|
        SRDirective (monitorinfo=10)|
        SRDirective (sendmoninfo=no)|
        SRDirective (allowInclusiveMonitorStream=yes)|
        L3ERR_online L3ErrHandle(
 ...
(this is the list of tools, and you would have to insert a new tool here,
for example:

        PrVTX3 L3TCFTVertex(
                TRACKER=GlobalTracker,
                ptcut=3.,
                UsePt=FALSE,
                tooltype="data")|

is an instance of tool L3TCFTVertex named PrVtx3.  It uses tracks from a
L3TGlobalTracker instance named GlobalTracker, and has a few other
parameters).  The list of tools is sequential, and tools using other tools
(like PrVtx3 using GlobalTracker) need to come _after_ the tools they use
in this list.

After the tool list comes the filter list (or trigger list).  Here's a
hand-made example:

        L2trig 13^E1_ELE_MP|
        filter E1_SHT7_T5 |
        L3FEle key=t15s1_Ele     refset=ELE_NLV_SHT number=1 MinEt=7. MinEta=0. MaxEta=3.6 MinEoverp=-99. MaxEoverp=99. Stream="ALL" |
        L3FTrack key=t15s2_Track  refset=PhTrk1 number=1 MinPt=5. MaxDCA=1. MinXYHits=10 MinZHits=0 Stream="ALL" |


 Line-by-line:
-L2Trig tells ScriptRunner which L2 trigger this trigger hangs off of.
This is not very important if useL2=no, but critical otherwise: in that
case, ScriptRunner will only try this trigger if the corresponding L2
trigger fired.  In simulation mode, I wouldn't do this.  This is more
useful for verification.


-        filter E1_SHT7_T5 |
 is the actual L3 trigger name, the one you use to determine if this
trigger passed or failed.  This is written in the TMB if the trigger
passes (in principle, but we've seen problems in MC).

-This particular trigger uses two filters, the first one is
        L3FEle key=t15s1_Ele     refset=ELE_NLV_SHT number=1 MinEt=7. MinEta=0. MaxEta=3.6 MinEoverp=-99. MaxEoverp=99. Stream="ALL" |

This is an instance of the electron filter named t15s1_Ele, which looks at
the candidates found by the tool named ELE_NLV_SHT for at least 1
candidate with at least 7 GeV ET, and |eta| <= 3.6.  Events that pass
would go to stream "ALL".  If this filter passes, the next one is tried
(t15s2_Track).  If that one passes, the event is accepted and is written
out.

For simulation purposes, it is generally useful to also have those events
that failed all triggers (for turn-on curves, accounting x-checks etc.),
so at the very top of the trigger part I have

        L2trig 1^min_bias_NCU|
        filter min_bias_NCU |
        L3FPassFraction key=t1s1_PassFraction    passFraction=1. Stream="ALL" |

which passes all events.

That part is followed by a lot of technical lines ScriptRunner requires:

        L2trig 159^MWLT10_2EM3_SHT7|
        filter MWLXT10_2EM3_L12 |
        L3FEle key=t160s1_Ele    refset=ELE_NLV number=1 MinEt=12. MinEta=0. MaxEta=3.6 MinEoverp=-99. MaxEoverp=99. Stream="ALL" |
 ||
farm_nodes 0 regular 0
l1bit 0 Afastz_ncu 16:17 19:20 22:25 31:37 48:59 64:74 76 80:83 96:107 112:117 l
...
l2bit 0 1^min_bias_NCU
...

Each L1 and L2 bit needs to be defined (with name here).  For pure
simulation, this could be kept to 2 triggers at each level.  Each L1
trigger is followed by a list of crates (16:17...), which is not really
relevant in simulation mode.

define_trigger 0 0 0 0 min_bias_NCU
...
define_trigger 4 0 2 2 E1_SHT7_T5
..

This is important: the first digit is the trigger number, the second I
don't remember, and the third and 4th are the level 1 and two trigger
numbers as defined above.

Finally:

stream 1 0 all
stream 2 0 monitor
configure
runinfo 0 1
start_run 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

defines the existing streams, etc. (the last line has all the level 3
triggers).

I have attached an example hacked level3.sim file.



Where to find the online prescale files

The online prescale files are stored on the online system in

/online/data/coor/configurations/official/



How to OR triggers

Discussions and tutorials on how to properly OR triggers were presented at the June 2004 Workshop in Fresno. See slides and notes on Agenda server under the parallele session "Triggers and Data Analysis", Friday 11 June, 2-4pm.

Information on how to calculate luminosity can be found on the luminosity group webpage



Last Modified, 16 November 2004