ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitHzz4l/Selection/src/PassHLT.cc
(Generate patch)

Comparing UserCode/MitHzz4l/Selection/src/PassHLT.cc (file contents):
Revision 1.13 by anlevin, Wed Oct 17 01:27:23 2012 UTC vs.
Revision 1.14 by dkralph, Tue Oct 23 11:39:21 2012 UTC

# Line 3 | Line 3
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;
6  
7 <        //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 < bool passHLT(ControlFlags &ctrl,
148 <             std::bitset<TRIGGER_BIG_NUMBER> triggerBits,
149 <             TrigInfo ti,
150 <             unsigned run)
151 < //----------------------------------------------------------------------------------------
152 < {
153 <  unsigned runVal;
154 <  if(ctrl.mc) { // keeps track of whether trigger is applied on 2011 or 2012 mc without adding more complications to TriggerInfo
155 <    if(ctrl.era==2011)      runVal = 170000;
156 <    else if(ctrl.era==2012) runVal = 195000;
157 <    else assert(0);
158 <  } else {
159 <    runVal = run;
160 <  }
161 <  
162 <  bool pass=false;
163 <  bool onePassedButWasOutside=false;
164 <  for(unsigned ibit=0; ibit<ti.trigBits.size(); ibit++) {
165 <    bool outsideRunRange=false;
166 <    if(runVal < ti.minRuns[ibit] || runVal > ti.maxRuns[ibit]) {
167 <      outsideRunRange = true;
168 <    }
169 <    int baconBit = ti.trigBits[ibit];
170 <    bool passBit = triggerBits.test(baconBit);
171 <    if(ctrl.debug) cout << "   ibit: " << setw(4) << ibit << " (bacon bit: " << baconBit << ") fired: " << passBit << endl;
172 <    if(ctrl.debug && passBit && outsideRunRange) cout << "        would have passed but it's outside run range (" << ti.minRuns[ibit] << "," << ti.maxRuns[ibit] << ")" << endl;
173 <    if(passBit && outsideRunRange) {
174 <       onePassedButWasOutside = true;
175 <    }
176 <    if(passBit && !outsideRunRange) pass = true;
177 <  }
178 <  if(!pass && onePassedButWasOutside) cout << "WARNING: would have passed, but one was outside its run range" << endl;
179 <  return pass;
180 < }  
7 > using namespace std;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines