ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitHzz4l/Selection/src/PassHLT.cc
Revision: 1.11
Committed: Wed Jun 13 14:11:23 2012 UTC (12 years, 11 months ago) by dkralph
Content type: text/plain
Branch: MAIN
Changes since 1.10: +36 -2 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 #include "TriggerUtilsBits.h"
2 #include "PassHLT.h"
3 #include <assert.h>
4 #include <bitset>
5 #include <iostream>
6 using namespace std;
7
8
9 bool passHLTSingleMuon(std::bitset<TRIGGER_BIG_NUMBER> triggerBits) {
10 if ( triggerBits.test(kHLT_Mu8) ||
11 triggerBits.test(kHLT_Mu12) ||
12 triggerBits.test(kHLT_Mu15) ||
13 triggerBits.test(kHLT_Mu24) ||
14 triggerBits.test(kHLT_Mu30) )
15 return true;
16 return false;
17 }
18
19 //--------------------------------------------------------------------------
20 // for sync ...
21 bool passHLTMC(std::bitset<TRIGGER_BIG_NUMBER> triggerBits,
22 unsigned runNum,
23 unsigned channel,
24 EMCYear mc_year)
25 //--------------------------------------------------------------------------
26 {
27
28 assert(mc_year == k2011_MC || mc_year == k2012_MC);
29
30 bool pass = false;
31
32 if(mc_year == k2011_MC){
33
34 //electron trigger
35 if ( triggerBits.test(kHLT_Ele17_CaloIdT_TrkIdVL_CaloIsoVL_TrkIsoVL_Ele8_CaloIdT_TrkIdVL_CaloIsoVL_TrkIsoVL) )
36 pass = true;
37
38 //muon trigger
39 if( triggerBits.test(kHLT_Mu17_Mu8) )
40 pass = true;
41
42 //cross triggers
43
44 }
45
46 if(mc_year == k2012_MC){
47
48 //electron trigger
49 if ( triggerBits.test(kHLT_Ele17_CaloIdT_TrkIdVL_CaloIsoVL_TrkIsoVL_Ele8_CaloIdT_TrkIdVL_CaloIsoVL_TrkIsoVL) )
50 pass = true;
51
52 //muon trigger
53 if( triggerBits.test(kHLT_Mu17_Mu8) || triggerBits.test(kHLT_Mu17_TkMu8))
54 pass = true;
55
56 //cross triggers
57 if( triggerBits.test(kHLT_Mu8_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL) || triggerBits.test(kHLT_Mu17_Ele8_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL))
58 pass = true;
59
60 }
61
62 return pass;
63 }
64
65
66 //--------------------------------------------------------------------------
67 bool passHLT(std::bitset<TRIGGER_BIG_NUMBER> triggerBits,
68 unsigned runNum,
69 unsigned channel)
70 //--------------------------------------------------------------------------
71 {
72
73 bool isMC = false;
74 bool pass = false;
75
76 //
77 // Electrons
78 //
79 // if( channel == 0 || channel == 2 ) {
80 // if ( runNum >= 160404 && runNum <= 167151 ) { // may10 & PRv4
81 if(runNum < 160404) {
82 pass = true; //punt for now, Si doesn't have the needed triggers
83 }
84 if ( runNum >= 160404 && runNum <= 170826 ) { // may10 & PRv4
85 if ( triggerBits.test(kHLT_Ele17_CaloIdL_CaloIsoVL_Ele8_CaloIdL_CaloIsoVL))
86 pass = true;
87 }
88 if ( runNum > 170826 ) { // aug05 & PRv6
89 if ( triggerBits.test(kHLT_Ele17_CaloIdT_TrkIdVL_CaloIsoVL_TrkIsoVL_Ele8_CaloIdT_TrkIdVL_CaloIsoVL_TrkIsoVL) )
90 pass = true;
91 }
92
93 // 58 pb-1 had a prescale issue, run range is 171050-171578
94 // they allow electron evts to pass kHLT_Ele17_CaloIdVT_CaloIsoVT_TrkIdT_TrkIsoVT_SC8_Mass30 in this period
95 if (runNum >= 171050 && runNum <= 171578 ) {
96 if( triggerBits.test(kHLT_Ele17_CaloIdVT_CaloIsoVT_TrkIdT_TrkIsoVT_SC8_Mass30) )
97 pass=true;
98 }
99
100
101 //
102 // Muons
103 //
104 // if( channel == 1 || channel == 2 ){
105 if(runNum < 160404) {
106 pass = true; //punt for now, Si doesn't have the needed triggers
107 }
108 if( runNum >= 136033 && runNum <= 149942 ) { // april11 (2010)
109 // don't have DoubleMu3 in the ntuple
110 // if( triggerBits & kHLT_DoubleMu3 ) pass = true;
111 }
112 if( runNum >= 160404 && runNum <= 163869 ) { // may10
113 if( triggerBits.test(kHLT_DoubleMu7) )
114 pass = true;
115 }
116 if( runNum >= 165088 ) { // PRv4 and on ....
117 if( triggerBits.test(kHLT_Mu13_Mu8) )
118 pass = true;
119 }
120 // }
121
122 return pass;
123 };
124 //----------------------------------------------------------------------------------------
125 bool passHLTEMU(ControlFlags &ctrl, std::bitset<TRIGGER_BIG_NUMBER> triggerBits)
126 //--------------------------------------------------------------------------
127 {
128 if(ctrl.debug) cout << "testing bits for emu..." << endl;
129 bool pass = false;
130 // double electron dset
131 if( triggerBits.test(kHLT_Ele17_CaloIdL_CaloIsoVL) ) { if(ctrl.debug) cout << "\tpasses kHLT_Ele17_CaloIdL_CaloIsoVL" << endl; pass = true; }
132 if( triggerBits.test(kHLT_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL) ) { if(ctrl.debug) cout << "\tpasses kHLT_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL" << endl;pass = true; }
133 // single electron dset
134 if( triggerBits.test(kHLT_Ele22_CaloIdL_CaloIsoVL) ) { if(ctrl.debug) cout << "\tpasses kHLT_Ele22_CaloIdL_CaloIsoVL" << endl; pass = true; }
135 if( triggerBits.test(kHLT_Ele27_WP80_PFMET_MT50) ) { if(ctrl.debug) cout << "\tpasses kHLT_Ele27_WP80_PFMET_MT50" << endl; pass = true; }
136 if( triggerBits.test(kHLT_Ele27_WP80) ) { if(ctrl.debug) cout << "\tpasses kHLT_Ele27_WP80" << endl; pass = true; }
137 // single mudset
138 if( triggerBits.test(kHLT_Mu12) ) { if(ctrl.debug) cout << "\tpasses kHLT_Mu12" << endl; pass = true; }
139 if( triggerBits.test(kHLT_Mu15_eta2p1) ) { if(ctrl.debug) cout << "\tpasses kHLT_Mu15_eta2p1" << endl; pass = true; }
140 if( triggerBits.test(kHLT_Mu24_eta2p1) ) { if(ctrl.debug) cout << "\tpasses kHLT_Mu24_eta2p1" << endl; pass = true; }
141 if( triggerBits.test(kHLT_Mu24) ) { if(ctrl.debug) cout << "\tpasses kHLT_Mu24" << endl; pass = true; }
142 // double mu dset
143 if( triggerBits.test(kHLT_Mu17) ) { if(ctrl.debug) cout << "\tpasses kHLT_Mu17" << endl; pass = true; }
144
145 return pass;
146 }
147 //----------------------------------------------------------------------------------------
148 bool passHLTTagAndProbe(ControlFlags &ctrl, std::bitset<TRIGGER_BIG_NUMBER> triggerBits)
149 //--------------------------------------------------------------------------
150 {
151
152 bool pass = false;
153 // single electron dset
154 if( triggerBits.test(kHLT_Ele27_WP80) ) pass = true;
155 // single mudset
156 if( triggerBits.test(kHLT_IsoMu24_eta2p1) ) pass = true;
157
158 return pass;
159 }