ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/plugins/Cuts/CutsDec13-2011Paper.h
Revision: 1.4
Committed: Wed Jun 6 14:25:08 2012 UTC (12 years, 11 months 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, HEAD
Changes since 1.3: +1 -1 lines
Log Message:
Fixes

File Contents

# Content
1 #ifndef CUTSPAPER1211_H
2 #define CUTSPAPER1211_H
3 #include "../../interface/CutsAndHistos.h"
4 #include "../../interface/ntupleReader.hpp"
5 #include "../../interface/samples.hpp"
6 #include <TH1F.h>
7 #include <sstream>
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
18 bool sCut( ntupleReader & p , Sample & sample ){
19 return ( p.EVENT_json == true && p.hbhe == true );
20 };
21
22 std::string generateName( std::string & baseName, int btag = 0, int jec = 0 ) {
23 if( jec == 1 )
24 return ( "SystJecUP"+baseName );
25 else if( jec == -1 )
26 return ( "SystJecDOWN"+baseName );
27 else if( jec == 2 )
28 return ( "SystJerUP"+baseName );
29 else if( jec == -2 )
30 return ( "SystJerDOWN"+baseName );
31 if( btag == 1)
32 return ( "SystBtagUP"+baseName );
33 else if( btag == -1 )
34 return ( "SystBtagDOWN"+baseName );
35 else if( btag == 2 )
36 return ( "SystBtagFUP"+baseName );
37 else if( btag == -2 )
38 return ( "SystBtagFDOWN"+baseName );
39 else if( btag == 0 && jec == 0)
40 return baseName;
41 };
42
43 class CnCVlightControlRegionHZcomb: public CutSample {
44 public:
45 CnCVlightControlRegionHZcomb(int jec_=0, int btag_=0 ):
46 jec(jec_),btag(btag_){baseName="CnCVlightControlRegionHZcomb"; };
47 Bool_t pass(ntupleReader &p){
48 return ( p.Vtype == 1
49 && p.V_mass > 75.
50 && p.V_mass < 105.
51 && p.V_pt > 100.
52 && p.Higgs(jec).M() < 250
53 && p.Higgs(jec).Pt() > 100.
54 && p.hJet_PT(0,jec) > 20.
55 && p.hJet_PT(1,jec) > 20.
56 && p.EVENT_json == true
57 && p.hbhe == true
58 && TMath::Abs( p.HVdPhi ) > 2.9
59 && p.CountAddJets() < 2
60 && !(p.hJet_CSV(0,btag) > CSVT || p.hJet_CSV(1,btag) > CSVT )
61 && ( ( p.Vtype == 1 && ( p.triggerFlags[5] || p.triggerFlags[6] ) )
62 || ( p.Vtype == 0 && (((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)))) ) ) );
63 }
64 Bool_t pass(ntupleReader &p, Sample &sample){
65 return (sCut ( p, sample ) == true && pass(p) );
66 }
67 double weight(ntupleReader &p, Sample &sample){ if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
68
69 private:
70 std::string name(){ return( generateName(baseName, btag, jec) ) ;};
71 std::string baseName;
72 int btag;
73 int jec;
74
75 };
76
77
78 class CnCTTbarControlRegionHZcomb: public CutSample {
79 public:
80 CnCTTbarControlRegionHZcomb(int jec_=0, int btag_=0):
81 jec(jec_),btag(btag_){ baseName = "CnCTTbarControlRegionHZcomb";};
82 Bool_t pass(ntupleReader &p){
83 return( ( p.V_mass > 105.
84 || p.V_mass < 75. )
85 && p.Higgs(jec).Pt() > 100.
86 //&& p.Higgs(jec).M() < 250
87 && p.hJet_PT(0,jec) > 20.
88 && p.hJet_PT(1,jec) > 20.
89 && (p.hJet_CSV(0,btag) > 0.5 && p.hJet_CSV(1,btag) > 0.5)
90 && (p.hJet_CSV(0,btag) > 0.898 || p.hJet_CSV(1,btag) > 0.898)
91 && p.EVENT_json == true
92 && p.hbhe == true
93 && ( ( p.Vtype == 1 && ( p.triggerFlags[5] || p.triggerFlags[6] ) )
94 || ( p.Vtype == 0 && (((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)))) ) ) );
95 }
96 Bool_t pass(ntupleReader &p, Sample &sample){
97 return ( sCut( p, sample ) == true && pass( p ) );
98 }
99 double weight(ntupleReader &p, Sample &sample) {if( sample.data ) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
100
101 private:
102 std::string name(){ return( generateName(baseName, btag, jec) ) ;};
103 std::string baseName;
104 int btag;
105 int jec;
106
107 };
108
109 class CnCVbbControlRegionHZcomb: public CutSample {
110
111 public:
112 CnCVbbControlRegionHZcomb(int jec_=0,int btag_=0):
113 jec(jec_),btag(btag_){ baseName = "CnCVbbControlRegionHZcomb";};
114 Bool_t pass(ntupleReader &p){
115 return( p.V_mass > 75.
116 && p.V_mass < 105.
117 && p.V_pt > 0.
118 && p.Higgs(jec).Pt() > 0.
119 && p.hJet_PT(0,jec) > 20.
120 && p.hJet_PT(1,jec) > 20.
121 && ( p.hJet_CSV(0,btag) > CSVT
122 || p.hJet_CSV(1,btag) > CSVT )
123 && p.hJet_CSV(0,btag) > 0.5
124 && p.hJet_CSV(1,btag) > 0.5
125 && p.EVENT_json == true
126 && p.hbhe == true
127 && p.CountAddJets() < 2
128 // && p. MET_et < 30
129 && ( p.Higgs(jec).M() < 90
130 || p.Higgs(jec).M() > 145 )
131 && p.Higgs(jec).M() < 250
132 && TMath::Abs(p.HVdPhi) > 2.9
133 && ( ( p.Vtype == 1 && ( p.triggerFlags[5] || p.triggerFlags[6] ) )
134 || ( p.Vtype == 0 && (((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)))) ) ) );
135 }
136 Bool_t pass(ntupleReader &p, Sample &sample){
137 return ( sCut( p, sample ) == true && pass( p ) );
138 }
139 double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
140
141 private:
142 std::string name(){ return( generateName(baseName, btag, jec) ) ;};
143 std::string baseName;
144 int btag;
145 int jec;
146
147 };
148
149 class CnCSignalRegionHZcomb: public CutSample{
150 public:
151 CnCSignalRegionHZcomb(int jec_=0,int btag_=0):
152 jec(jec_), btag(btag_){ baseName = "CnCSignalRegionHZcomb";};
153 Bool_t pass(ntupleReader &p){
154 return ( p.V_mass > 75.
155 && p.V_mass < 105.
156 // this cut depends on the H mass here for 115
157 // && p.Higgs(jec).M() > 95.
158 // && p.Higgs(jec).M() < 125.
159 //////////
160 && p.V_pt > 100.
161 && p.Higgs(jec).Pt() > 100.
162 && ( p.hJet_CSV(0,btag) > 0.898
163 || p.hJet_CSV(1,btag) > 0.898 )
164 && p.hJet_CSV(0,btag) > 0.5
165 && p.hJet_CSV(1,btag) > 0.5
166 && p.hJet_PT(0,jec) > 20.
167 && p.hJet_PT(1,jec) > 20.
168 && TMath::Abs(p.HVdPhi) > 2.9
169 && p.EVENT_json == true
170 && p.hbhe == true
171 && p.CountAddJets() < 2
172 && ( ( p.Vtype == 1 && ( p.triggerFlags[5] || p.triggerFlags[6] ) )
173 || ( p.Vtype == 0 && (((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)))) ) ) );
174 }
175 Bool_t pass(ntupleReader &p, Sample & sample){
176 return ( sCut(p, sample)==true && pass(p) ); }
177 double weight(ntupleReader &p, Sample &sample) {if(sample.data) return 1; else return ((fA*p.PUweight+fB*p.PUweight2011B)*p.weightTrig); }
178
179 private:
180 std::string name(){ return( generateName(baseName, btag, jec) ) ;};
181 std::string baseName;
182 int btag;
183 int jec;
184 };
185
186 #endif