ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/plugins/CutsNov11.h
Revision: 1.1
Committed: Fri Apr 27 14:25:30 2012 UTC (13 years ago) by bortigno
Content type: text/plain
Branch: MAIN
CVS Tags: lhcp_UnblindFix, hcp_Unblind, lhcp_11April, LHCP_PreAppFixAfterFreeze, LHCP_PreAppFreeze, workingVersionAfterHCP, hcpApproval, hcpPreApp, ICHEP8TeV, ichep8TeV, AN-12-181-7TeV_patch1, AN-12-181-7TeV, HEAD
Log Message:
Pier code

File Contents

# User Rev Content
1 bortigno 1.1 #ifndef CUTSLP_H
2     #define CUTSLP_H
3     #include "CutsAndHistos.h"
4     #include "ntupleReader.h"
5     #include <TH1F.h>
6     #include <sstream>
7     #include "samples.h"
8     #include "TKey.h"
9    
10     #define CSVM 0.679
11     #define CSVC 0.5 //custom btag
12     #define CSVL 0.244
13     #define CSVT 0.898
14     #define fA 0.46502
15     #define fB 0.53498
16    
17     // New implementations of the control region
18     // The signal regions must be implemented incrementally since cutflow is needed
19    
20     class VlightRegionHZee: public CutSample {
21    
22     std::string name() {return "VlightRegionHZee";};
23     public:
24     Bool_t pass(ntupleReader &p){
25     iType = (VType)p.Vtype;
26     return ( p.Vtype == 1
27     && p.V_mass > 75.
28     && p.V_mass < 105.
29     && p.V_pt > 100.
30     && p.H_mass < 250
31     && p.H_pt > 100.
32     && p.hJet_pt[0] > 20.
33     && p.hJet_pt[1] > 20.
34     && p.EVENT_json == true
35     && p.hbhe == true
36     && TMath::Abs( p.HVdPhi ) > 2.9
37     && p.CountAddJets() < 2
38     && !(p.hJet_csv[0] > CSVT || p.hJet_csv[1] > CSVT )
39     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
40     }
41     Bool_t pass(ntupleReader &p, Sample &sample){
42     bool sampleCut = false;
43     bool boost = false;
44     bool isB = false;
45     if(p.genZpt >= 120)
46     boost = true;
47     if(p.eventFlav == 5)
48     isB = true;
49     std::string DY("DY");
50     std::string DYBOOSTED("DYBOOSTED");
51     if( sample.name == DY && !boost )
52     sampleCut = true;
53     else if( sample.name == DYBOOSTED && boost )
54     sampleCut = true;
55     else if( sample.name != DY && sample.name != DYBOOSTED )
56     sampleCut = true;
57     else sampleCut=false;
58     iType = (VType)p.Vtype;
59     return ( sampleCut == true
60     && p.Vtype == 1
61     && p.V_mass > 75.
62     && p.V_mass < 105.
63     && p.V_pt > 100.
64     && p.H_mass < 250
65     && p.H_pt > 100.
66     && p.hJet_pt[0] > 20.
67     && p.hJet_pt[1] > 20.
68     && p.EVENT_json == true
69     && p.hbhe == true
70     && TMath::Abs( p.HVdPhi ) > 2.9
71     && p.CountAddJets() < 2
72     && !(p.hJet_csv[0] > CSVT || p.hJet_csv[1] > CSVT )
73     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
74     }
75     double weight(ntupleReader &p, Sample &sample){ if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
76     };
77    
78    
79     class TTbarRegionHZee: public CutSample {
80     std::string name() {return "TTbarRegionHZee";};
81     public:
82     Bool_t pass(ntupleReader &p){
83     return( p.Vtype == 1
84     && ( p.V_mass > 105.
85     || p.V_mass < 75. )
86     && p.H_pt > 100.
87     && p.H_mass < 250
88     && p.hJet_pt[0] > 20.
89     && p.hJet_pt[1] > 20.
90     && (p.hJet_csv[0] > 0.5 && p.hJet_csv[1] > 0.5)
91     && (p.hJet_csv[0] > 0.898 || p.hJet_csv[1] > 0.898)
92     && p.EVENT_json == true
93     && p.hbhe == true
94     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
95     }
96     Bool_t pass(ntupleReader &p, Sample &sample){
97     bool sampleCut = false;
98     bool boost = false;
99     bool isB = false;
100     if(p.genZpt >= 120)
101     boost = true;
102     if(p.eventFlav == 5)
103     isB = true;
104     std::string DY("DY");
105     std::string DYBOOSTED("DYBOOSTED");
106     if( sample.name == DY && !boost )
107     sampleCut = true;
108     else if( sample.name == DYBOOSTED && boost )
109     sampleCut = true;
110     else if( sample.name != DY && sample.name != DYBOOSTED )
111     sampleCut = true;
112     else sampleCut = false;
113     return( sampleCut == true
114     && p.Vtype == 1
115     && ( p.V_mass > 105.
116     || p.V_mass < 75. )
117     && p.H_pt > 100.
118     //&& p.H_mass < 250
119     && p.hJet_pt[0] > 20.
120     && p.hJet_pt[1] > 20.
121     && (p.hJet_csv[0] > 0.5 && p.hJet_csv[1] > 0.5)
122     && (p.hJet_csv[0] > 0.898 || p.hJet_csv[1] > 0.898)
123     && p.EVENT_json == true
124     && p.hbhe == true
125     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
126     }
127     double weight(ntupleReader &p, Sample &sample) {if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
128     };
129    
130    
131    
132     class oldTTbarRegionHZee: public CutSample {
133     std::string name() {return "oldTTbarRegionHZee";};
134     public:
135     Bool_t pass(ntupleReader &p){
136     return( p.Vtype == 1
137     && p.V_mass > 120
138     && p.MET_et > 50.
139     && p.H_mass < 250
140     && p.hJet_pt[0] > 20.
141     && p.hJet_pt[1] > 20.
142     && p.EVENT_json == true
143     && p.hbhe == true
144     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
145     }
146     Bool_t pass(ntupleReader &p, Sample &sample){
147     bool sampleCut = false;
148     bool boost = false;
149     bool isB = false;
150     if(p.genZpt >= 120)
151     boost = true;
152     if(p.eventFlav == 5)
153     isB = true;
154     std::string DY("DY");
155     std::string DYBOOSTED("DYBOOSTED");
156     if( sample.name == DY && !boost )
157     sampleCut = true;
158     else if( sample.name == DYBOOSTED && boost )
159     sampleCut = true;
160     else if( sample.name != DY && sample.name != DYBOOSTED )
161     sampleCut = true;
162     else sampleCut = false;
163     return( sampleCut == true
164     && p.Vtype == 1
165     && p.V_mass > 120.
166     && p.MET_et > 50.
167     && p.hJet_pt[0] > 20.
168     && p.hJet_pt[1] > 20.
169     && p.EVENT_json == true
170     && p.hbhe == true
171     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
172     }
173     double weight(ntupleReader &p, Sample &sample) {if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
174     };
175    
176    
177     class VbbRegionHZee: public CutSample {
178     std::string name() {return "VbbRegionHZee";};
179     public:
180     Bool_t pass(ntupleReader &p){
181     return( p.Vtype == 1
182     && p.V_mass > 75.
183     && p.V_mass < 105.
184     && p.V_pt > 0.
185     && p.H_pt > 0.
186     && p.hJet_pt[0] > 20.
187     && p.hJet_pt[1] > 20.
188     && ( p.hJet_csv[0] > CSVT
189     || p.hJet_csv[1] > CSVT )
190     && p.hJet_csv[0] > 0.5
191     && p.hJet_csv[1] > 0.5
192     && p.EVENT_json == true
193     && p.hbhe == true
194     && p.CountAddJets() < 2
195     // && p. MET_et < 30
196     && ( p.H_mass < 90
197     || p.H_mass > 145 )
198     && p.H_mass < 250
199     && TMath::Abs(p.HVdPhi) > 2.9
200     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
201     }
202     Bool_t pass(ntupleReader &p, Sample &sample){
203     bool sampleCut = false;
204     bool boost = false;
205     bool isB = false;
206     if(p.genZpt >= 120)
207     boost = true;
208     if(p.eventFlav == 5)
209     isB = true;
210     std::string DY("DY");
211     std::string DYBOOSTED("DYBOOSTED");
212     if( sample.name == DY && !boost )
213     sampleCut = true;
214     else if( sample.name == DYBOOSTED && boost )
215     sampleCut = true;
216     else if( sample.name != DY && sample.name != DYBOOSTED )
217     sampleCut = true;
218     else
219     sampleCut=false;
220     return( sampleCut == true
221     && p.Vtype == 1
222     && p.V_mass > 75.
223     && p.V_mass < 105.
224     && p.V_pt > 0.
225     && p.H_pt > 0.
226     && p.hJet_pt[0] > 20.
227     && p.hJet_pt[1] > 20.
228     && ( p.hJet_csv[0] > CSVT
229     || p.hJet_csv[1] > CSVT )
230     && p.hJet_csv[0] > 0.5
231     && p.hJet_csv[1] > 0.5
232     && p.EVENT_json == true
233     && p.hbhe == true
234     && p.CountAddJets() < 2
235     // && p. MET_et < 30
236     && ( p.H_mass < 90
237     || p.H_mass > 145 )
238     && p.H_mass < 250
239     && TMath::Abs(p.HVdPhi) > 2.9
240     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
241     }
242     double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
243     };
244    
245     class SignalRegionHZee: public CutSample{
246     std::string name() {return "SignalRegionHZee";};
247     public:
248     Bool_t pass(ntupleReader &p){
249     return ( p.Vtype == 1
250     && p.V_mass > 75.
251     && p.V_mass < 105.
252     // this cut depends on the H mass here for 115
253     // && p.H_mass > 95.
254     // && p.H_mass < 125.
255     //////////
256     && p.V_pt > 100.
257     && p.H_pt > 100.
258     && ( p.hJet_csv[0] > 0.898
259     || p.hJet_csv[1] > 0.898 )
260     && p.hJet_csv[0] > 0.5
261     && p.hJet_csv[1] > 0.5
262     && p.hJet_pt[0] > 20.
263     && p.hJet_pt[1] > 20.
264     && TMath::Abs(p.HVdPhi) > 2.9
265     && p.EVENT_json == true
266     && p.hbhe == true
267     && p.CountAddJets() < 2
268     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
269     }
270     Bool_t pass(ntupleReader &p, Sample & sample){
271     bool sampleCut = false;
272     bool boost = false;
273     bool isB = false;
274     if(p.genZpt >= 120)
275     boost = true;
276     if(p.eventFlav == 5)
277     isB = true;
278     std::string DY("DY");
279     std::string DYBOOSTED("DYBOOSTED");
280     if( sample.name == DY && !boost )
281     sampleCut = true;
282     else if( sample.name == DYBOOSTED && boost )
283     sampleCut = true;
284     else if( sample.name != DY && sample.name != DYBOOSTED )
285     sampleCut = true;
286     else sampleCut=false;
287     return ( sampleCut == true
288     && p.Vtype == 1
289     && p.V_mass > 75.
290     && p.V_mass < 105.
291     // this cut depends on the H mass here for 115
292     // && p.H_mass > 95.
293     // && p.H_mass < 125.
294     //////////
295     && p.V_pt > 100.
296     && p.H_pt > 100.
297     && ( p.hJet_csv[0] > 0.898
298     || p.hJet_csv[1] > 0.898 )
299     && p.hJet_csv[0] > 0.5
300     && p.hJet_csv[1] > 0.5
301     && p.hJet_pt[0] > 20.
302     && p.hJet_pt[1] > 20.
303     && TMath::Abs(p.HVdPhi) > 2.9
304     && p.EVENT_json == true
305     && p.hbhe == true
306     && p.CountAddJets() < 2
307     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
308     }
309     double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
310     };
311    
312     class BDTRegionHZee: public CutSample{
313     std::string name() {return "BDTRegionHZee";};
314     public:
315     Bool_t pass(ntupleReader &p){
316     return ( p.Vtype == 1
317     && p.hJet_pt[0] > 20.
318     && p.hJet_pt[1] > 20.
319     && p.hJet_csv[0] > 0.244
320     && p.hJet_csv[1] > 0.244
321     && p.H_pt > 100.
322     && p.V_pt > 100.
323     && p.V_mass > 75.
324     && p.V_mass < 105
325     && p.H_mass < 250.
326     // && p.CountAddJets() < 2
327     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
328     }
329     Bool_t pass(ntupleReader &p, Sample &sample){
330     bool sampleCut = false;
331     bool boost = false;
332     bool isB = false;
333     if(p.genZpt >= 120)
334     boost = true;
335     if(p.eventFlav == 5)
336     isB = true;
337     std::string DY("DY");
338     std::string DYBOOSTED("DYBOOSTED");
339     if( sample.name == DY && !boost )
340     sampleCut = true;
341     else if( sample.name == DYBOOSTED && boost )
342     sampleCut = true;
343     else if( sample.name != DY && sample.name != DYBOOSTED )
344     sampleCut = true;
345     else sampleCut=false;
346     return ( sampleCut == true
347     && p.Vtype == 1
348     && p.hJet_pt[0] > 20.
349     && p.hJet_pt[1] > 20.
350     && p.hJet_csv[0] > 0.244
351     && p.hJet_csv[1] > 0.244
352     && p.H_pt > 100.
353     && p.V_pt > 100.
354     && p.V_mass > 75.
355     && p.V_mass < 105
356     && p.H_mass < 250.
357     // && p.CountAddJets() < 2
358     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
359     }
360     double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
361     };
362    
363    
364     class BDTZbbControlRegionHZee: public CutSample{
365     std::string name() {return "BDTZbbControlRegionHZee";};
366     public:
367     Bool_t pass(ntupleReader &p){
368     return ( p.Vtype == 1
369     && p.hJet_pt[0] > 20.
370     && p.hJet_pt[1] > 20.
371     && p.hJet_csv[0] > CSVL
372     && p.hJet_csv[1] > CSVL
373     && p.V_pt < 100.
374     && p.V_mass > 75.
375     && p.V_mass < 105
376     && p.H_mass < 250.
377     // && p.CountAddJets() < 2
378     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
379     }
380     Bool_t pass(ntupleReader &p, Sample &sample){
381     bool sampleCut = false;
382     bool boost = false;
383     bool isB = false;
384     if(p.genZpt >= 120)
385     boost = true;
386     if(p.eventFlav == 5)
387     isB = true;
388     std::string DY("DY");
389     std::string DYBOOSTED("DYBOOSTED");
390     if( sample.name == DY && !boost )
391     sampleCut = true;
392     else if( sample.name == DYBOOSTED && boost )
393     sampleCut = true;
394     else if( sample.name != DY && sample.name != DYBOOSTED )
395     sampleCut = true;
396     else sampleCut=false;
397     return ( sampleCut == true
398     && p.Vtype == 1
399     && p.hJet_pt[0] > 20.
400     && p.hJet_pt[1] > 20.
401     && p.hJet_csv[0] > CSVL
402     && p.hJet_csv[1] > CSVL
403     && p.V_pt < 100.
404     && p.V_mass > 75.
405     && p.V_mass < 105
406     && p.H_mass < 250.
407     // && p.CountAddJets() < 2
408     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
409     }
410     double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
411     };
412    
413     class BDTZlightControlRegionHZee: public CutSample{
414     std::string name() {return "BDTZlightControlRegionHZee";};
415     public:
416     Bool_t pass(ntupleReader &p){
417     return ( p.Vtype == 1
418     && p.hJet_pt[0] > 20.
419     && p.hJet_pt[1] > 20.
420     && p.hJet_csv[0] < CSVL
421     && p.hJet_csv[1] < CSVL
422     && p.V_pt > 100.
423     && p.V_mass > 75.
424     && p.V_mass < 105
425     && p.H_mass < 250.
426     // && p.CountAddJets() < 2
427     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
428     }
429     Bool_t pass(ntupleReader &p, Sample &sample){
430     bool sampleCut = false;
431     bool boost = false;
432     bool isB = false;
433     if(p.genZpt >= 120)
434     boost = true;
435     if(p.eventFlav == 5)
436     isB = true;
437     std::string DY("DY");
438     std::string DYBOOSTED("DYBOOSTED");
439     if( sample.name == DY && !boost )
440     sampleCut = true;
441     else if( sample.name == DYBOOSTED && boost )
442     sampleCut = true;
443     else if( sample.name != DY && sample.name != DYBOOSTED )
444     sampleCut = true;
445     else sampleCut=false;
446     return ( sampleCut == true
447     && p.Vtype == 1
448     && p.hJet_pt[0] > 20.
449     && p.hJet_pt[1] > 20.
450     && p.hJet_csv[0] < CSVL
451     && p.hJet_csv[1] < CSVL
452     && p.V_pt > 100.
453     && p.V_mass > 75.
454     && p.V_mass < 105
455     && p.H_mass < 250.
456     // && p.CountAddJets() < 2
457     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
458     }
459     double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
460     };
461    
462     class BDTTTbarControlRegionHZee: public CutSample{
463     std::string name() {return "BDTTTbarControlRegionHZee";};
464     public:
465     Bool_t pass(ntupleReader &p){
466     return ( p.Vtype == 1
467     && p.hJet_pt[0] > 20.
468     && p.hJet_pt[1] > 20.
469     && p.hJet_csv[0] > CSVL
470     && p.hJet_csv[1] > CSVL
471     && p.H_pt > 100.
472     // && p.V_pt > 100.
473     && p.V_mass > 50.
474     //&& p.H_mass < 250.
475     && ( p.V_mass > 105.
476     || p.V_mass < 75. )
477     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
478     }
479     Bool_t pass(ntupleReader &p, Sample &sample){
480     bool sampleCut = false;
481     bool boost = false;
482     bool isB = false;
483     if(p.genZpt >= 120)
484     boost = true;
485     if(p.eventFlav == 5)
486     isB = true;
487     std::string DY("DY");
488     std::string DYBOOSTED("DYBOOSTED");
489     if( sample.name == DY && !boost )
490     sampleCut = true;
491     else if( sample.name == DYBOOSTED && boost )
492     sampleCut = true;
493     else if( sample.name != DY && sample.name != DYBOOSTED )
494     sampleCut = true;
495     else sampleCut=false;
496     return ( sampleCut == true
497     && p.Vtype == 1
498     && p.hJet_pt[0] > 20.
499     && p.hJet_pt[1] > 20.
500     && p.hJet_csv[0] > CSVL
501     && p.hJet_csv[1] > CSVL
502     && p.H_pt > 100.
503     // && p.V_pt > 100.
504     && p.V_mass > 50.
505     //&& p.H_mass < 250.
506     && ( p.V_mass > 105.
507     || p.V_mass < 75. )
508     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
509     }
510     double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
511     };
512    
513    
514     class WbbRegionHWmnu: public CutSample {
515    
516     std::string name() {return "WbbRegionHWmnu";};
517     public:
518     Bool_t pass(ntupleReader &p){
519     iType = (VType)p.Vtype;
520     return ( p.Vtype == 2
521     && p.vLepton_pt[0] > 30.
522     && p.CountAddLeptons() == 0
523     && p.MET_et > 30
524     && p.hJet_pt[0] > 30.
525     && p.hJet_pt[1] > 30.
526     && p.hJet_csv[0] > CSVC
527     && p.hJet_csv[1] > CSVC
528     && ( p.hJet_csv[0] > CSVT
529     || p.hJet_csv[1] > CSVT )
530     && p.CountAddJets() < 2
531     && p.EVENT_json == true
532     && p.hbhe == true
533     && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) );
534     }
535     Bool_t pass(ntupleReader &p, Sample &sample){
536     bool sampleCut = false;
537     bool boost = false;
538     if(p.genZpt >= 120)
539     boost = true;
540     std::string DY("DY");
541     std::string DYBOOSTED("DYBOOSTED");
542     if( sample.name == DY && !boost )
543     sampleCut = true;
544     else if( sample.name == DYBOOSTED && boost )
545     sampleCut = true;
546     else if( sample.name != DY && sample.name != DYBOOSTED )
547     sampleCut = true;
548     else sampleCut=false;
549     iType = (VType)p.Vtype;
550     return ( sampleCut == true
551     && p.Vtype == 2
552     && p.vLepton_pt[0] > 30.
553     && p.CountAddLeptons() == 0
554     && p.MET_et > 30
555     && p.hJet_pt[0] > 30.
556     && p.hJet_pt[1] > 30.
557     && p.hJet_pt[0] > CSVC
558     && p.hJet_pt[1] > CSVC
559     && ( p.hJet_pt[0] > CSVT
560     || p.hJet_pt[1] > CSVT )
561     && p.CountAddJets() < 2
562     && p.EVENT_json == true
563     && p.hbhe == true
564     && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) );
565     }
566     double weight(ntupleReader &p, Sample &sample){ if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
567     };
568    
569     class SingleTopRegionHWmnu: public CutSample {
570    
571     std::string name() {return "SingleTopRegionHWmnu";};
572     public:
573     Bool_t pass(ntupleReader &p){
574     iType = (VType)p.Vtype;
575     return ( p.Vtype == 2
576     && p.vLepton_pt[0] > 30.
577     && p.CountAddLeptons() == 0
578     && p.MET_et > 30
579     && p.hJet_pt[0] > 30.
580     && p.hJet_pt[1] > 30.
581     && p.hJet_csv[0] > CSVC
582     && p.hJet_csv[1] > CSVC
583     && ( p.hJet_csv[0] > CSVT
584     || p.hJet_csv[1] > CSVT )
585     && p.CountAddJets() < 2
586     && p.CountAddForwardJets() == 1
587     && p.EVENT_json == true
588     && p.hbhe == true
589     && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) );
590     }
591     Bool_t pass(ntupleReader &p, Sample &sample){
592     bool sampleCut = false;
593     bool boost = false;
594     if(p.genZpt >= 120)
595     boost = true;
596     std::string DY("DY");
597     std::string DYBOOSTED("DYBOOSTED");
598     if( sample.name == DY && !boost )
599     sampleCut = true;
600     else if( sample.name == DYBOOSTED && boost )
601     sampleCut = true;
602     else if( sample.name != DY && sample.name != DYBOOSTED )
603     sampleCut = true;
604     else sampleCut=false;
605     iType = (VType)p.Vtype;
606     return ( sampleCut == true
607     && p.Vtype == 2
608     && p.vLepton_pt[0] > 30.
609     && p.CountAddLeptons() == 0
610     && p.MET_et > 30
611     && p.hJet_pt[0] > 30.
612     && p.hJet_pt[1] > 30.
613     && p.hJet_pt[0] > CSVC
614     && p.hJet_pt[1] > CSVC
615     && ( p.hJet_pt[0] > CSVT
616     || p.hJet_pt[1] > CSVT )
617     && p.CountAddForwardJets() == 1
618     && p.CountAddJets() < 2
619     && p.EVENT_json == true
620     && p.hbhe == true
621     && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) );
622     }
623     double weight(ntupleReader &p, Sample &sample){ if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
624     };
625    
626    
627     class ZZRegionZee: public CutSample {
628     std::string name() {return "ZZRegionZee";};
629     public:
630     Bool_t pass(ntupleReader &p){
631     return( p.Vtype == 1
632     && p.V_mass > 75.
633     && p.V_mass < 105.
634     && p.EVENT_json == true
635     && p.hbhe == true
636     //&& p.CountAddJets() < 2
637     && p. MET_et < 30
638     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
639     }
640     Bool_t pass(ntupleReader &p, Sample &sample){
641     bool sampleCut = false;
642     bool boost = false;
643     bool isB = false;
644     if(p.genZpt >= 120)
645     boost = true;
646     if(p.eventFlav == 5)
647     isB = true;
648     std::string DY("DY");
649     std::string DYBOOSTED("DYBOOSTED");
650     if( sample.name == DY && !boost )
651     sampleCut = true;
652     else if( sample.name == DYBOOSTED && boost )
653     sampleCut = true;
654     else if( sample.name != DY && sample.name != DYBOOSTED )
655     sampleCut = true;
656     else
657     sampleCut=false;
658     return( sampleCut == true
659     && p.Vtype == 1
660     && p.V_mass > 75.
661     && p.V_mass < 105.
662     && p.EVENT_json == true
663     && p.hbhe == true
664     // && p.CountAddJets() < 2
665     && p. MET_et < 30
666     && ( p.triggerFlags[5] || p.triggerFlags[6] ) );
667     }
668     double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
669     };
670    
671    
672    
673    
674     /* class ZSVRegionHZee: public CutSample { */
675    
676     /* std::string name() {return "ZSVRegionHZee";}; */
677     /* public: */
678     /* Bool_t pass(ntupleReader &p){ */
679     /* iType = (VType)p.Vtype; */
680     /* return ( p.Vtype == 1 */
681     /* && p.V_mass > 75. */
682     /* && p.V_mass < 105. */
683     /* && p.nSvs == 2 */
684     /* && p.EVENT_json == true */
685     /* && p.hbhe == true */
686     /* && ( p.triggerFlags[5] || p.triggerFlags[6] ) ); */
687     /* } */
688     /* Bool_t pass(ntupleReader &p, Sample &sample){ */
689     /* bool sampleCut = false; */
690     /* bool boost = false; */
691     /* if(p.genZpt >= 120) */
692     /* boost = true; */
693     /* std::string DY("DY"); */
694     /* std::string DYBOOSTED("DYBOOSTED"); */
695     /* if( sample.name == DY && !boost ) */
696     /* sampleCut = true; */
697     /* else if( sample.name == DYBOOSTED && boost ) */
698     /* sampleCut = true; */
699     /* else if( sample.name != DY && sample.name != DYBOOSTED ) */
700     /* sampleCut = true; */
701     /* else sampleCut=false; */
702     /* iType = (VType)p.Vtype; */
703     /* return ( sampleCut == true */
704     /* && p.Vtype == 1 */
705     /* && p.V_mass > 75. */
706     /* && p.V_mass < 105. */
707     /* && p.nSvs == 2 */
708     /* && p.EVENT_json == true */
709     /* && p.hbhe == true */
710     /* && ( p.triggerFlags[5] || p.triggerFlags[6] ) ); */
711     /* } */
712     /* double weight(ntupleReader &p, Sample &sample){ if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); } */
713     /* }; */
714    
715    
716     /* class ZSVRegionHZmm: public CutSample { */
717    
718     /* std::string name() {return "ZSVRegionHZmm";}; */
719     /* public: */
720     /* Bool_t pass(ntupleReader &p){ */
721     /* iType = (VType)p.Vtype; */
722     /* return ( p.Vtype == 0 */
723     /* && p.V_mass > 75. */
724     /* && p.V_mass < 105. */
725     /* && p.nSvs == 2 */
726     /* && p.EVENT_json == true */
727     /* && p.hbhe == true */
728     /* && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ); */
729     /* } */
730     /* Bool_t pass(ntupleReader &p, Sample &sample){ */
731     /* bool sampleCut = false; */
732     /* bool boost = false; */
733     /* if(p.genZpt >= 120) */
734     /* boost = true; */
735     /* std::string DY("DY"); */
736     /* std::string DYBOOSTED("DYBOOSTED"); */
737     /* if( sample.name == DY && !boost ) */
738     /* sampleCut = true; */
739     /* else if( sample.name == DYBOOSTED && boost ) */
740     /* sampleCut = true; */
741     /* else if( sample.name != DY && sample.name != DYBOOSTED ) */
742     /* sampleCut = true; */
743     /* else sampleCut=false; */
744     /* iType = (VType)p.Vtype; */
745     /* return ( sampleCut == true */
746     /* && p.Vtype == 0 */
747     /* && p.V_mass > 75. */
748     /* && p.V_mass < 105. */
749     /* && p.nSvs == 2 */
750     /* && p.EVENT_json == true */
751     /* && p.hbhe == true */
752     /* && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ); */
753     /* } */
754     /* double weight(ntupleReader &p, Sample &sample){ if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); } */
755     /* }; */
756    
757    
758    
759     /* class ZSVRegionHZcomb: public CutSample { */
760    
761     /* std::string name() {return "ZSVRegionHZcomb";}; */
762     /* public: */
763     /* Bool_t pass(ntupleReader &p){ */
764     /* iType = (VType)p.Vtype; */
765     /* return ( ( p.Vtype == 1 */
766     /* && p.V_mass > 75. */
767     /* && p.V_mass < 105. */
768     /* && p.nSvs == 2 */
769     /* && p.EVENT_json == true */
770     /* && p.hbhe == true */
771     /* && ( p.triggerFlags[5] || p.triggerFlags[6] ) ) */
772     /* || ( p.Vtype == 0 */
773     /* && p.V_mass > 75. */
774     /* && p.V_mass < 105. */
775     /* && p.nSvs == 2 */
776     /* && p.EVENT_json == true */
777     /* && p.hbhe == true */
778     /* && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ) ); */
779     /* } */
780     /* Bool_t pass(ntupleReader &p, Sample &sample){ */
781     /* bool sampleCut = false; */
782     /* bool boost = false; */
783     /* if(p.genZpt >= 120) */
784     /* boost = true; */
785     /* std::string DY("DY"); */
786     /* std::string DYBOOSTED("DYBOOSTED"); */
787     /* if( sample.name == DY && !boost ) */
788     /* sampleCut = true; */
789     /* else if( sample.name == DYBOOSTED && boost ) */
790     /* sampleCut = true; */
791     /* else if( sample.name != DY && sample.name != DYBOOSTED ) */
792     /* sampleCut = true; */
793     /* else sampleCut=false; */
794     /* iType = (VType)p.Vtype; */
795     /* return ( sampleCut == true */
796     /* && ( p.Vtype == 1 */
797     /* && p.V_mass > 75. */
798     /* && p.V_mass < 105. */
799     /* && p.nSvs == 2 */
800     /* && p.EVENT_json == true */
801     /* && p.hbhe == true */
802     /* && ( p.triggerFlags[5] || p.triggerFlags[6] ) */
803     /* || ( p.Vtype == 0 */
804     /* && p.V_mass > 75. */
805     /* && p.V_mass < 105. */
806     /* && p.nSvs == 2 */
807     /* && p.EVENT_json == true */
808     /* && p.hbhe == true */
809     /* && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ) ) ); */
810     /* } */
811     /* double weight(ntupleReader &p, Sample &sample){ if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); } */
812     /* }; */
813    
814    
815    
816    
817     /* class ZSVPureRegionHZee: public CutSample { */
818    
819     /* std::string name() {return "ZSVPureRegionHZee";}; */
820     /* public: */
821     /* Bool_t pass(ntupleReader &p){ */
822     /* iType = (VType)p.Vtype; */
823     /* return ( p.Vtype == 1 */
824     /* && p.V_mass > 75. */
825     /* && p.V_mass < 105. */
826     /* && p.nSvs == 2 */
827     /* && p.MET_et < 40. */
828     /* && p.EVENT_json == true */
829     /* && p.hbhe == true */
830     /* && ( p.triggerFlags[5] || p.triggerFlags[6] ) ); */
831     /* } */
832     /* Bool_t pass(ntupleReader &p, Sample &sample){ */
833     /* bool sampleCut = false; */
834     /* bool boost = false; */
835     /* if(p.genZpt >= 120) */
836     /* boost = true; */
837     /* std::string DY("DY"); */
838     /* std::string DYBOOSTED("DYBOOSTED"); */
839     /* if( sample.name == DY && !boost ) */
840     /* sampleCut = true; */
841     /* else if( sample.name == DYBOOSTED && boost ) */
842     /* sampleCut = true; */
843     /* else if( sample.name != DY && sample.name != DYBOOSTED ) */
844     /* sampleCut = true; */
845     /* else sampleCut=false; */
846     /* iType = (VType)p.Vtype; */
847     /* return ( sampleCut == true */
848     /* && p.Vtype == 1 */
849     /* && p.V_mass > 75. */
850     /* && p.V_mass < 105. */
851     /* && p.nSvs == 2 */
852     /* && p.MET_et < 40. */
853     /* && p.EVENT_json == true */
854     /* && p.hbhe == true */
855     /* && ( p.triggerFlags[5] || p.triggerFlags[6] ) ); */
856     /* } */
857     /* double weight(ntupleReader &p, Sample &sample){ if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); } */
858     /* }; */
859    
860    
861     /* class ZSVPureRegionHZmm: public CutSample { */
862    
863     /* std::string name() {return "ZSVPureRegionHZmm";}; */
864     /* public: */
865     /* Bool_t pass(ntupleReader &p){ */
866     /* iType = (VType)p.Vtype; */
867     /* return ( p.Vtype == 0 */
868     /* && p.V_mass > 75. */
869     /* && p.V_mass < 105. */
870     /* && p.nSvs == 2 */
871     /* && p.MET_et < 40. */
872     /* && p.EVENT_json == true */
873     /* && p.hbhe == true */
874     /* && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ); */
875     /* } */
876     /* Bool_t pass(ntupleReader &p, Sample &sample){ */
877     /* bool sampleCut = false; */
878     /* bool boost = false; */
879     /* if(p.genZpt >= 120) */
880     /* boost = true; */
881     /* std::string DY("DY"); */
882     /* std::string DYBOOSTED("DYBOOSTED"); */
883     /* if( sample.name == DY && !boost ) */
884     /* sampleCut = true; */
885     /* else if( sample.name == DYBOOSTED && boost ) */
886     /* sampleCut = true; */
887     /* else if( sample.name != DY && sample.name != DYBOOSTED ) */
888     /* sampleCut = true; */
889     /* else sampleCut=false; */
890     /* iType = (VType)p.Vtype; */
891     /* return ( sampleCut == true */
892     /* && p.Vtype == 0 */
893     /* && p.V_mass > 75. */
894     /* && p.V_mass < 105. */
895     /* && p.nSvs == 2 */
896     /* && p.MET_et < 40. */
897     /* && p.EVENT_json == true */
898     /* && p.hbhe == true */
899     /* && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ); */
900     /* } */
901     /* double weight(ntupleReader &p, Sample &sample){ if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); } */
902     /* }; */
903    
904    
905    
906     /* class ZSVPureRegionHZcomb: public CutSample { */
907    
908     /* std::string name() {return "ZSVPureRegionHZcomb";}; */
909     /* public: */
910     /* Bool_t pass(ntupleReader &p){ */
911     /* iType = (VType)p.Vtype; */
912     /* return ( ( p.Vtype == 1 */
913     /* && p.V_mass > 75. */
914     /* && p.V_mass < 105. */
915     /* && p.MET_et < 40. */
916     /* && p.nSvs == 2 */
917     /* && p.EVENT_json == true */
918     /* && p.hbhe == true */
919     /* && ( p.triggerFlags[5] || p.triggerFlags[6] ) ) */
920     /* || ( p.Vtype == 0 */
921     /* && p.V_mass > 75. */
922     /* && p.V_mass < 105. */
923     /* && p.MET_et < 40. */
924     /* && p.nSvs == 2 */
925     /* && p.EVENT_json == true */
926     /* && p.hbhe == true */
927     /* && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ) ); */
928     /* } */
929     /* Bool_t pass(ntupleReader &p, Sample &sample){ */
930     /* bool sampleCut = false; */
931     /* bool boost = false; */
932     /* if(p.genZpt >= 120) */
933     /* boost = true; */
934     /* std::string DY("DY"); */
935     /* std::string DYBOOSTED("DYBOOSTED"); */
936     /* if( sample.name == DY && !boost ) */
937     /* sampleCut = true; */
938     /* else if( sample.name == DYBOOSTED && boost ) */
939     /* sampleCut = true; */
940     /* else if( sample.name != DY && sample.name != DYBOOSTED ) */
941     /* sampleCut = true; */
942     /* else sampleCut=false; */
943     /* iType = (VType)p.Vtype; */
944     /* return ( sampleCut == true */
945     /* && ( p.Vtype == 1 */
946     /* && p.V_mass > 75. */
947     /* && p.V_mass < 105. */
948     /* && p.nSvs == 2 */
949     /* && p.MET_et < 40. */
950     /* && p.EVENT_json == true */
951     /* && p.hbhe == true */
952     /* && ( p.triggerFlags[5] || p.triggerFlags[6] ) */
953     /* || ( p.Vtype == 0 */
954     /* && p.V_mass > 75. */
955     /* && p.V_mass < 105. */
956     /* && p.nSvs == 2 */
957     /* && p.MET_et < 40. */
958     /* && p.EVENT_json == true */
959     /* && p.hbhe == true */
960     /* && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ) ) ); */
961     /* } */
962     /* double weight(ntupleReader &p, Sample &sample){ if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); } */
963     /* }; */
964    
965    
966     /* class ZSVTTbarPureRegionHZcomb: public CutSample { */
967    
968     /* std::string name() {return "ZSVTTbarPureRegionHZcomb";}; */
969     /* public: */
970     /* Bool_t pass(ntupleReader &p){ */
971     /* iType = (VType)p.Vtype; */
972     /* return ( ( p.Vtype == 1 */
973     /* && p.V_mass > 120. */
974     /* && p.nSvs == 2 */
975     /* && p.EVENT_json == true */
976     /* && p.hbhe == true */
977     /* && ( p.triggerFlags[5] || p.triggerFlags[6] ) ) */
978     /* || ( p.Vtype == 0 */
979     /* && p.V_mass > 120. */
980     /* && p.nSvs == 2 */
981     /* && p.EVENT_json == true */
982     /* && p.hbhe == true */
983     /* && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ) ); */
984     /* } */
985     /* Bool_t pass(ntupleReader &p, Sample &sample){ */
986     /* bool sampleCut = false; */
987     /* bool boost = false; */
988     /* if(p.genZpt >= 120) */
989     /* boost = true; */
990     /* std::string DY("DY"); */
991     /* std::string DYBOOSTED("DYBOOSTED"); */
992     /* if( sample.name == DY && !boost ) */
993     /* sampleCut = true; */
994     /* else if( sample.name == DYBOOSTED && boost ) */
995     /* sampleCut = true; */
996     /* else if( sample.name != DY && sample.name != DYBOOSTED ) */
997     /* sampleCut = true; */
998     /* else sampleCut=false; */
999     /* iType = (VType)p.Vtype; */
1000     /* return ( sampleCut == true */
1001     /* && ( p.Vtype == 1 */
1002     /* && p.V_mass > 120. */
1003     /* && p.nSvs == 2 */
1004     /* && p.EVENT_json == true */
1005     /* && p.hbhe == true */
1006     /* && ( p.triggerFlags[5] || p.triggerFlags[6] ) */
1007     /* || ( p.Vtype == 0 */
1008     /* && p.V_mass > 120. */
1009     /* && p.nSvs == 2 */
1010     /* && p.EVENT_json == true */
1011     /* && p.hbhe == true */
1012     /* && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ) ) ); */
1013     /* } */
1014     /* double weight(ntupleReader &p, Sample &sample){ if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); } */
1015     /* }; */
1016    
1017    
1018    
1019     /* class WSVRegionHWmnu: public CutSample { */
1020    
1021     /* std::string name() {return "WSVRegionHWmnu";}; */
1022     /* public: */
1023     /* Bool_t pass(ntupleReader &p){ */
1024     /* iType = (VType)p.Vtype; */
1025     /* return ( p.Vtype == 2 */
1026     /* && p.vLepton_pt[0] > 30. */
1027     /* && p.CountAddLeptons() == 0 */
1028     /* && p.MET_et > 30 */
1029     /* && p.nSvs == 2 */
1030     /* && p.EVENT_json == true */
1031     /* && p.hbhe == true */
1032     /* && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ); */
1033     /* } */
1034     /* Bool_t pass(ntupleReader &p, Sample &sample){ */
1035     /* bool sampleCut = false; */
1036     /* bool boost = false; */
1037     /* if(p.genZpt >= 120) */
1038     /* boost = true; */
1039     /* std::string DY("DY"); */
1040     /* std::string DYBOOSTED("DYBOOSTED"); */
1041     /* if( sample.name == DY && !boost ) */
1042     /* sampleCut = true; */
1043     /* else if( sample.name == DYBOOSTED && boost ) */
1044     /* sampleCut = true; */
1045     /* else if( sample.name != DY && sample.name != DYBOOSTED ) */
1046     /* sampleCut = true; */
1047     /* else sampleCut=false; */
1048     /* iType = (VType)p.Vtype; */
1049     /* return ( sampleCut == true */
1050     /* && p.Vtype == 2 */
1051     /* && p.vLepton_pt[0] > 30. */
1052     /* && p.CountAddLeptons() == 0 */
1053     /* && p.MET_et > 30 */
1054     /* && p.nSvs == 2 */
1055     /* && p.EVENT_json == true */
1056     /* && p.hbhe == true */
1057     /* && (((p.EVENT_run<173198 && (p.triggerFlags[0]>0 || p.triggerFlags[13]>0 || p.triggerFlags[14]>0 || p.triggerFlags[20]>0 || p.triggerFlags[21]>0)) || (p.EVENT_run>=173198 && p.EVENT_run<175832 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0))|| (p.EVENT_run>=175832 && p.EVENT_run<178390 && (p.triggerFlags[13]>0 ||p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0)) || (p.EVENT_run>=178390 && (p.triggerFlags[14]>0 ||p.triggerFlags[15]>0 || p.triggerFlags[21]>0 || p.triggerFlags[22]>0 || p.triggerFlags[23]>0 || p.triggerFlags[24]>0 || p.triggerFlags[25]>0 || p.triggerFlags[26]>0 || p.triggerFlags[27]>0)))) ); */
1058     /* } */
1059     /* double weight(ntupleReader &p, Sample &sample){ if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); } */
1060     /* }; */
1061    
1062    
1063     #endif