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

# User Rev Content
1 khahn 1.7 #include "TriggerUtilsBits.h"
2 anlevin 1.10 #include "PassHLT.h"
3     #include <assert.h>
4 khahn 1.7 #include <bitset>
5 dkralph 1.11 #include <iostream>
6     using namespace std;
7 khahn 1.1
8 khahn 1.7
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 khahn 1.6 return true;
16     return false;
17     }
18    
19 khahn 1.8 //--------------------------------------------------------------------------
20     // for sync ...
21     bool passHLTMC(std::bitset<TRIGGER_BIG_NUMBER> triggerBits,
22     unsigned runNum,
23 anlevin 1.10 unsigned channel,
24     EMCYear mc_year)
25 khahn 1.8 //--------------------------------------------------------------------------
26     {
27 anlevin 1.10
28     assert(mc_year == k2011_MC || mc_year == k2012_MC);
29    
30 khahn 1.8 bool pass = false;
31    
32 anlevin 1.10 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 khahn 1.8
46 anlevin 1.10 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 khahn 1.8 return pass;
63     }
64    
65    
66     //--------------------------------------------------------------------------
67     bool passHLT(std::bitset<TRIGGER_BIG_NUMBER> triggerBits,
68     unsigned runNum,
69     unsigned channel)
70     //--------------------------------------------------------------------------
71     {
72 khahn 1.1
73     bool isMC = false;
74     bool pass = false;
75    
76     //
77     // Electrons
78     //
79     // if( channel == 0 || channel == 2 ) {
80 khahn 1.2 // 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 khahn 1.7 if ( triggerBits.test(kHLT_Ele17_CaloIdL_CaloIsoVL_Ele8_CaloIdL_CaloIsoVL))
86 khahn 1.2 pass = true;
87     }
88     if ( runNum > 170826 ) { // aug05 & PRv6
89 khahn 1.7 if ( triggerBits.test(kHLT_Ele17_CaloIdT_TrkIdVL_CaloIsoVL_TrkIsoVL_Ele8_CaloIdT_TrkIdVL_CaloIsoVL_TrkIsoVL) )
90 khahn 1.2 pass = true;
91     }
92 khahn 1.4
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 khahn 1.7 if( triggerBits.test(kHLT_Ele17_CaloIdVT_CaloIsoVT_TrkIdT_TrkIsoVT_SC8_Mass30) )
97 khahn 1.2 pass=true;
98     }
99 khahn 1.4
100 khahn 1.2
101 khahn 1.1 //
102     // Muons
103     //
104 khahn 1.2 // 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 khahn 1.7 if( triggerBits.test(kHLT_DoubleMu7) )
114 khahn 1.1 pass = true;
115 khahn 1.2 }
116     if( runNum >= 165088 ) { // PRv4 and on ....
117 khahn 1.7 if( triggerBits.test(kHLT_Mu13_Mu8) )
118 khahn 1.2 pass = true;
119     }
120     // }
121 khahn 1.1
122     return pass;
123     };
124 dkralph 1.11 //----------------------------------------------------------------------------------------
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 khahn 1.1
145 dkralph 1.11 return pass;
146     }
147     //----------------------------------------------------------------------------------------
148     bool passHLTTagAndProbe(ControlFlags &ctrl, std::bitset<TRIGGER_BIG_NUMBER> triggerBits)
149     //--------------------------------------------------------------------------
150     {
151 khahn 1.1
152 dkralph 1.11 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     }