configtype PROTECTED, PHYSICS; trigger_defaults readout d0_detector l2_type regular; filter_defaults stream spc filters l2jt (size_min=-1, size_max=1000, empct_min=-999, empct_max=999) & l2mu ( track_in_road = 'L10_(y4)') & l2setup (raw_to_drop = CDD1_CDD2_CDD3, banks_to_drop = CAEP_MUOH_MUHP_SAMH, banks_to_drop_2 = SAPH_MUHM_EMSV_SAMT, l2_hitfind = true ); define dead_time { skip_one_beamx & not lv1_dbl_buffered & not calne_pls }; ! this is for triggers without L0_fast_z_good... same as DEAD_TIME define nol0_beam { skip_one_beamx & not lv1_dbl_buffered & not calne_pls }; ! this is standard L0 condition define beam { l0_fast_z_good & skip_one_beamx & not lv1_dbl_buffered & not calne_pls}; ! this is standard L0 condition with multiply interation flag define mi_beam {beam & l0_mi_flag_0 & l0_slow_inter & l0_slow_z_good }; define sd_beam {not l0_fast_z_good & not l0_slow_z_good & not l0_slow_inter & skip_one_beamx & not lv1_dbl_buffered & not calne_pls}; define dpom_beam {not l0_fast_z_good & not l0_slow_z_good & not l0_slow_inter & not fzn & not fzs & skip_one_beamx & not lv1_dbl_buffered & not calne_pls}; ! this is max live Main Ring Veto condition define max_live { not mrbs_and_microbl }; ! this is good_cal veto Main Ring Veto Condition define good_cal { not mrbs_and_microbl & not mr_veto_low }; ! this is mu_recovery veto Main Ring Veto Condition define mu_recovery { not mrbs_and_microbl & not mr_veto_low }; ! this is good_beam veto Main Ring Veto Condition -- veto on MRBS & uBlank define good_beam { not mrbs_loss & not micro_blank }; ! this is main_beam veto Main Ring Veto Condition -- veto on MRBS define main_beam { not mrbs_loss }; ! this is mu scintilator veto (at Level 1) -- CS in trigger list define mu_scint { not sc_veto_cnfm_bar }; ! define use to specify data to gm & express streams define gm_stream { stream spc stream gms_gmstream }; define nul { }; ! define terms for L2EM scripts define eis100 {ele, track_match=ignore, do_isolation=true, cone_fract_max=1.0}; define eistr {ele, track_match=require, do_isolation=true, cone_fract_max=1.0}; define eistrcc {ele, track_match=cdc_only, do_isolation=true, cone_fract_max=1.0}; define eis {ele, track_match=ignore, do_isolation=true}; define iso {esc, track_match=ignore, do_isolation=true}; define trkcc {track_match=cdc_only}; define notrk {track_match=ignore}; define trk {track_match=require}; define eis40 {ele, track_match=ignore, do_isolation=true, cone_fract_max=0.4}; define eistrk40 {ele, track_match=require, do_isolation=true cone_fract_max=0.4}; define eistrkcc40 {ele, track_match=cdc_only, do_isolation=true cone_fract_max=0.4}; ! define terms for L2MU scripts define mq_good {muon_quality=good}; define mq_best {muon_quality=best}; define cal_confirm {cal_on_track=true}; define no_cal_confirm {cal_on_track=false}; ! these four definitions define 2x2 matrix of cosmic veto conditions define no_cos_rej {cosmic_reject=false, scint_on_track=false}; define mutag_only {cosmic_reject=true, scint_on_track=false}; define l2_scint {cosmic_reject=false, scint_on_track=true }; define cos_rej {cosmic_reject=true, scint_on_track=true }; ! these define L2mu track_in_road parameters... ! mu_track_xx uses L1 seeds ! mu_all_xx tracks everywhere, unpacking everything, requires much CPU define mu_highpt_y1 {track_in_road='L15_(y1)high'}; define mu_highpt_y2 {track_in_road='L15_(y2)high'}; define mu_highpt_y3 {track_in_road='L15_(y3)high'}; define mu_lowpt_y1 {track_in_road='L15_(y1)low'}; define mu_lowpt_y2 {track_in_road='L15_(y2)low'}; define mu_lowpt_y3 {track_in_road='L15_(y3)low'}; define mu_lowpt_y4 {track_in_road='L15_(y4)low'}; define mu_track_y1 {track_in_road='L10_(y1)'}; define mu_track_y2 {track_in_road='L10_(y2)'}; define mu_track_y3 {track_in_road='L10_(y3)'}; define mu_track_y4 {track_in_road='L10_(y4)'}; define mu_all_y1 {track_in_road='all_(y1)'}; define mu_all_y2 {track_in_road='all_(y2)'}; define mu_all_y3 {track_in_road='all_(y3)'}; define mu_all_y4 {track_in_road='all_(y4)'}; define mu_lowpt_x3 {track_in_road='L15_(x3)low'}; define mu_track_x3 {track_in_road='L10_(x3)'}; refset jet_low.rs key 3 type l1jt; ! 3 GeV refset jet_pls_2-lowl.rs key 2pls type l1jt{ ! 2 GeV Jet TT threshold TT_ETA(-20:8) TT_PHI(1:32) THRESH_ET # (1000.0) GeV TT_ETA(9:20) TT_PHI(1:32) THRESH_ET # (2.0) GeV }; refset jet_mns_2-lowl.rs key 2mns type l1jt{ ! 2 GeV Jet TT threshold TT_ETA(-20:-9) TT_PHI(1:32) THRESH_ET # (2.0) GeV TT_ETA(-8:20) TT_PHI(1:32) THRESH_ET # (1000.0) GeV }; refset jet_2-lowl.rs key 2 type l1jt{ ! 2 GeV Jet TT threshold TT_ETA(-20:20) TT_PHI(1:32) THRESH_ET # (2.0) GeV }; refset ljt_6.rs key 6 type l1lt; ! 6 GeV refset ljt_10.rs key 10 type l1lt; ! 10 GeV refset ljt_15.rs key 15 type l1lt; ! 15 GeV refset ljt_12gap.rs key 12gap type l1lt; ! 12 GeV Gap refset ljt_4-lowl.rs key 4 type l1lt{ ! 4 large tile GeV TT_ETA(-20:20) TT_PHI(1:32) THRESH_ET # (4.0) GeV }; refset ljt_5c-lowl.rs key 5c type l1lt{ ! 5c large tile GeV TT_ETA(-20:-9) TT_PHI(1:32) THRESH_ET # (1000.0) GeV TT_ETA(-8:8) TT_PHI(1:32) THRESH_ET # (5.0) GeV TT_ETA(9:20) TT_PHI(1:32) THRESH_ET # (1000.0) GeV }; refset em_low.rs key 2.5 type l1em; ! 2.5 GeV Et EM Reference Set -- All Eta refset em_low_cc-lowl.rs key 2.5CC type l1em{ ! 2.5 GeV Et EM Reference Set for CC only. TT_ETA(-20:-7) TT_PHI(1:32) THRESH_ET # (1000.0) GeV TT_ETA(-6:-1) TT_PHI(1:32) THRESH_ET # (2.5) GeV TT_ETA(1:6) TT_PHI(1:32) THRESH_ET # (2.5) GeV TT_ETA(7:20) TT_PHI(1:32) THRESH_ET # (1000.0) GeV }; refset em_med-lowl.rs key 7 type l1em{ ! 7 GeV Et EM Reference Set - All Eta TT_ETA(-20:20) TT_PHI(1:32) THRESH_ET # (7.0) GeV }; refset no_had_veto.rs key none type l1em-hadveto; refset had_veto_low-lowl.rs key 1 type l1em-hadveto{ !had veto refset TT_ETA(-20:-14) TT_PHI(1:32) THRESH_ET # (1000) GeV TT_ETA(-13:-1) TT_PHI(1:32) THRESH_ET # (1.25) GeV TT_ETA(1:13) TT_PHI(1:32) THRESH_ET # (1.25) GeV TT_ETA(14:20) TT_PHI(1:32) THRESH_ET # (1000) GeV }; ! trigger bit 0 is always free for test trigger trig_bit samx3_1_pass-lowl spec_trig spec_trig_1 prescale 1000000 terms beam & good_beam & mu (1, x3) & mu15(1,sn+ss,low); filt_bit samx3_1-lowl filters l2_confirm_l15(1,sn+ss,low) & l2mu (1, 9, 1.0, mq_good,cos_rej,cal_confirm,mu_lowpt_x3); trig_bit samx3_mi1-lowl spec_trig spec_trig_2 prescale 1000000 terms good_beam & mi_beam & mu (1, x3) & mu15(1,sn+ss,low); filt_bit samx3_mi0-lowl filters l2_confirm_l15(1,sn+ss,low) & l2mu (1, 9, 1.0, mq_good,cos_rej,cal_confirm,mu_lowpt_x3); trig_bit samx3_2_pass-lowl spec_trig spec_trig_3 prescale 1000000 terms beam & good_beam & mu (2, x3) & mu15(1,sn+ss,low); filt_bit samx3_2-lowl filters l2_confirm_l15(1,sn+ss,low) & l2mu (1, 9, 1.0, mq_good,cos_rej,cal_confirm,mu_lowpt_x3) & l2mu (2, 9, 1.0, mq_good,cos_rej,cal_confirm,mu_track_x3); trig_bit samx3_1_jet-lowl spec_trig spec_trig_4 prescale 1000000 terms beam & good_beam & mu (1, x3) & jt(1,3) & mu15(1,sn+ss,low); filt_bit samx3_1_jet-lowl filters l2jt(1,3) & l2_confirm_l15(1,sn+ss,low) & l2mu (1, 9, 1.0, mq_good,cos_rej,cal_confirm,mu_track_x3); trig_bit samx3_2_jet-lowl spec_trig spec_trig_5 prescale 1000000 terms beam & good_beam & mu (2, x3) & jt(1,3) & mu15(1,sn+ss,low); filt_bit samx3_2_jet-lowl gm_stream filters l2jt(1,3) & l2_confirm_l15(1,sn+ss,low) & l2mu (1, 9, 1.0, mq_good,cos_rej,cal_confirm,mu_lowpt_x3) & l2mu (2, 9, 1.0, mq_good,cos_rej,cal_confirm,mu_track_x3); trig_bit samx3_1_lj-lowl spec_trig spec_trig_6 prescale 1000000 terms beam & good_beam & mu (1, x3) & lt(1,10) & mu15(1,sn+ss,low); filt_bit samx3_1_lj-lowl filters l2jt(1,3) & l2_confirm_l15(1,sn+ss,low) & l2mu (1, 9, 1.0, mq_good,cos_rej,cal_confirm,mu_lowpt_x3); trig_bit samx3_2_lj-lowl spec_trig spec_trig_7 prescale 1000000 terms beam & good_beam & mu (2, x3) & lt(1,10) & mu15(1,sn+ss,low); filt_bit samx3_2_lj-lowl filters l2jt(1,3) & l2_confirm_l15(1,sn+ss,low) & l2mu (1, 9, 1.0, mq_good,cos_rej,cal_confirm,mu_lowpt_x3) & l2mu (2, 9, 1.0, mq_good,cos_rej,cal_confirm,mu_track_x3); ! 2 upsilon triggers similar to old special run trig_bit em_2_low-lowl spec_trig spec_trig_8 prescale 1000000 terms beam & good_beam & em (2, 2.5/1); filt_bit ele_2_eis40-lowl filters l2prescale(3) & l2em (2, 3, eis40) & l2_keep_cd_raw (raw_to_keep = cdd1); filt_bit ele_2_eis40_trk-lowl filters l2em (2, 2.5, eistrk40); trig_bit em_2_low_cc-lowl spec_trig spec_trig_9 prescale 1000000 terms beam & good_beam & em (2, 2.5CC/none); filt_bit ele_2_eis40_cc-ups filters l2em (2, 3, eis40); filt_bit ele_2_eis40_cc_trk-lowl filters l2em (2, 2.5, eistrkcc40); trig_bit em_1_low-lowl spec_trig spec_trig_10 prescale 1000000 terms beam & good_beam & em (1, 2.5/none); filt_bit ele_1_low-lowl filters l2prescale(5) & l2em (1, 2.5, ele) ; filt_bit ele_1_eis40-lowl filters l2prescale(2) & l2em (1, 2.5, eis40); filt_bit ele_1_eis40_trk-lowl filters l2em (1, 2.5, eistrk40); trig_bit em_1_7-lowl spec_trig spec_trig_11 prescale 1000000 terms beam & good_beam & em (1, 7/none); filt_bit gam_14_iso-lowl gm_stream filters l2em (1, 14, gis); ! jet_12 triggers trig_bit jet2_2-lowl spec_trig spec_trig_12 prescale 1000000 readout cdc_cal_mu_detector terms nol0_beam & good_beam & jt (2,2); filt_bit jet_12b-lowl filters l2jt (1, 12); trig_bit jet2_mns_2-lowl spec_trig spec_trig_13 prescale 1000000 readout cdc_cal_mu_detector terms nol0_beam & good_beam & jt (1,2mns) & jt (2,2); filt_bit jet_mns_12b-lowl filters l2jt (1, 12) & l2_etacut (jet, 1, 12, abs_eta_min=1.6); trig_bit jet2_pls_2-lowl spec_trig spec_trig_14 prescale 1000000 readout cdc_cal_mu_detector terms nol0_beam & good_beam & jt (1,2pls) & jt (2,2); filt_bit jet_pls_12b-lowl filters l2jt (1, 12) & l2_etacut (jet, 1, 12, abs_eta_min=1.6); ! jet_30 trig_bit ljt_15-lowl spec_trig spec_trig_15 prescale 1000000 readout cdc_cal_mu_detector terms beam & good_beam & lt (1,15) & lt (1,6); filt_bit jet_30-lowl filters l2jt (1, 30); ! gap triggers (global list and QNT triggers) ! veto trigger no L0 requirement trig_bit jet_gap_veto-lowl spec_trig spec_trig_16 prescale 1000000 terms nol0_beam & good_beam & lt (2, 10) & lt (1,6) & not lt(1,5c) & jt(1,3); filt_bit jet_gap_vlns-lowl filters l2jt (2, 18) & l2_etacut (jet, 2, 18, abs_eta_min=1.6, gapcut=4.0); filt_bit jet_gap_vlo-lowl filters l2jt (2, 18) & l2_etacut (jet, 2, 18, abs_eta_min=1.6, gapcut=4.0) & l2sc(0,2000); filt_bit jet_gap_vhi-lowl filters l2jt (2, 25) & l2_etacut (jet, 2, 25, abs_eta_min=1.6, gapcut=3.2); ! global trigger with MI trig_bit jet_gap-lowl spec_trig spec_trig_17 prescale 1000000 terms mi_beam & good_beam & lt (2, 12gap) & lt (1,6) & jt(2,3); filt_bit jet_gap_low-lowl filters l2jt (2, 18) & l2_etacut (jet, 2, 18, abs_eta_min=1.6, gapcut=3.2); filt_bit jet_gap_high-lowl gm_stream filters l2jt (2, 25) & l2_etacut (jet, 2, 25, abs_eta_min=1.6, gapcut=3.2); filt_bit jet_gap_lhe-lowl filters l2jt (2, 18) & l2_etacut (jet, 2, 18, abs_eta_min=1.6, gapcut=4.0) & l2sc(0,2000); filt_bit jet_gap_hhe-lowl filters l2jt (2, 25) & l2_etacut (jet, 2, 25, abs_eta_min=1.6, gapcut=4.0); filt_bit jet_gap_lme-lowl filters l2jt (2, 18) & l2_etacut (jet, 2, 18, abs_eta_min=1.6, gapcut=5.0) & l2sc(0,2000); filt_bit jet_gap_hme-lowl filters l2jt (2, 25) & l2_etacut (jet, 2, 25, abs_eta_min=1.6, gapcut=5.0); filt_bit jet_gap_mhe-lowl filters l2jt (2, 35) & l2_etacut (jet, 2, 35, abs_eta_min=1.6, gapcut=4.0); filt_bit jet_gap_same-lowl filters l2jt (2, 25) & l2_etacut (jet, 2, 25, abs_eta_min=1.6); ! global trigger no requirement trig_bit jet_gap_nmi-lowl spec_trig spec_trig_18 prescale 1000000 terms nol0_beam & good_beam & lt (2, 12gap) & lt (1,6) & jt(2,3); filt_bit jet_gap_low_nmi-lowl filters l2jt (2, 18) & l2_etacut (jet, 2, 18, abs_eta_min=1.6, gapcut=3.2); filt_bit jet_gap_high_nmi-lowl filters l2jt (2, 25) & l2_etacut (jet, 2, 25, abs_eta_min=1.6, gapcut=3.2); filt_bit jet_gap_lhe_nmi-lowl filters l2jt (2, 18) & l2_etacut (jet, 2, 18, abs_eta_min=1.6, gapcut=4.0) & l2sc(0,2000); filt_bit jet_gap_hhe_nmi-lowl filters l2jt (2, 25) & l2_etacut (jet, 2, 25, abs_eta_min=1.6, gapcut=4.0); filt_bit jet_gap_lme_nmi-lowl filters l2jt (2, 18) & l2_etacut (jet, 2, 18, abs_eta_min=1.6, gapcut=5.0) & l2sc(0,2000); filt_bit jet_gap_hme_nmi-lowl filters l2jt (2, 25) & l2_etacut (jet, 2, 25, abs_eta_min=1.6, gapcut=5.0); filt_bit jet_gap_mhe_nmi-lowl filters l2jt (2, 35) & l2_etacut (jet, 2, 35, abs_eta_min=1.6, gapcut=4.0); filt_bit jet_gap_same_nmi-lowl filters l2jt (2, 25) & l2_etacut (jet, 2, 25, abs_eta_min=1.6); ! Raptrack trigger with MI trig_bit jet2_gap-lowl spec_trig spec_trig_19 prescale 1000000 terms mi_beam & good_beam & jt (1,2mns) & jt(1,2pls); filt_bit jet_gap_10-lowl filters l2prescale(50) & l2jt (2, 10) & l2_etacut (jet, 2, 10, abs_eta_min=1.6, gapcut=3.2); filt_bit jet_gap_h10-lowl filters l2prescale(50) & l2jt (2, 10) & l2_etacut (jet, 2, 10, abs_eta_min=1.6, gapcut=4.0); filt_bit jet_gap_12-lowl gm_stream filters l2jt (2, 12) & l2_etacut (jet, 2, 12, abs_eta_min=1.6, gapcut=3.2); filt_bit jet_gap_h12-lowl filters l2jt (2, 12) & l2_etacut (jet, 2, 12, abs_eta_min=1.6, gapcut=4.0); ! Raptrack trigger with NMI trig_bit jet2_gap_nmi-lowl spec_trig spec_trig_20 prescale 1000000 terms nol0_beam & good_beam & jt (1,2mns) & jt(1,2pls); filt_bit jet_gap_nmi_10-lowl filters l2prescale(50) & l2jt (2, 10) & l2_etacut (jet, 2, 10, abs_eta_min=1.6, gapcut=3.2); filt_bit jet_gap_nmi_h10-lowl filters l2prescale(50) & l2jt (2, 10) & l2_etacut (jet, 2, 10, abs_eta_min=1.6, gapcut=4.0); filt_bit jet_gap_nmi_12-lowl filters l2jt (2, 12) & l2_etacut (jet, 2, 12, abs_eta_min=1.6, gapcut=3.2); filt_bit jet_gap_nmi_h12-lowl filters l2jt (2, 12) & l2_etacut (jet, 2, 12, abs_eta_min=1.6, gapcut=4.0); trig_bit jet2_mns-lowl spec_trig spec_trig_21 prescale 1000000 terms nol0_beam & good_beam & jt (2,2mns); filt_bit jet_gap_10mns-lowl filters l2prescale(50) & l2jt (2, 10) & l2_etacut (jet, 2, 10, abs_eta_min=1.6); filt_bit jet_gap_mns-lowl filters l2jt (2, 12) & l2_etacut (jet, 2, 12, abs_eta_min=1.6); trig_bit jet2_pls-lowl spec_trig spec_trig_22 prescale 1000000 terms nol0_beam & good_beam & jt (2,2pls); filt_bit jet_gap_10pls-lowl filters l2prescale(50) & l2jt (2, 10) & l2_etacut (jet, 2, 10, abs_eta_min=1.6); filt_bit jet_gap_pls-lowl filters l2jt (2, 12) & l2_etacut (jet, 2, 12, abs_eta_min=1.6); !!! other gap triggers trig_bit jet_gap_sd-lowl spec_trig spec_trig_23 prescale 1000000 terms sd_beam & good_beam & lt(2,6); filt_bit jet_gap_sd-lowl filters l2jt(1,15) & l2_min_bias(50,vertex_quality=NOHITS_ONESIDE); trig_bit jet_gap_pom-lowl spec_trig spec_trig_24 prescale 1000000 terms dpom_beam & good_beam & lt(2,6); filt_bit jet_gap_pom-lowl filters l2jt(1,15) & l2_min_bias(50,vertex_quality=NOHITS_NORTH_SOUTH); trig_bit jet_gap_2sd-lowl spec_trig spec_trig_25 prescale 1000000 terms sd_beam & good_beam & jt (2,2); filt_bit jet_gap_12sd-lowl pass_1_of 1000 filters l2jt(1,12) & l2_min_bias(50,vertex_quality=NOHITS_ONESIDE); ! inclusive trigger to monitor sd+pom trig_bit jet_15_nol0-lowl spec_trig spec_trig_26 prescale 1000000 terms nol0_beam & good_beam & lt(2,6); filt_bit jet_15_nol0-lowl filters l2jt(1,15); !!! min bias triggers trig_bit zero_bias-lowl spec_trig spec_trig_27 prescale 250000 terms dead_time & max_live; filt_bit zero_bias-lowl filters l2prescale (100); trig_bit min_bias-lowl spec_trig spec_trig_28 prescale 250000 terms dead_time & max_live; filt_bit min_bias-lowl filters l2_min_bias (99); ! Inspill trigger trig_bit inspill-lowl spec_trig spec_trig_29 terms calne_pls & skip_one_beamx & not lv1_dbl_buffered & not mrbs_and_microbl; filt_bit cal_pulser-lowl stream exp_inspill filters pass_fail (true); trig_bit lumin_mon-lowl spec_trig spec_trig_30 terms dead_time & main_beam; filt_bit lumin_mon-lowl stream monitor;