ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/grimes/VHbbAnalysisCode/src/VHbbCandidateCutSets.cpp
Revision: 1.4
Committed: Wed Aug 15 22:37:47 2012 UTC (12 years, 8 months ago) by grimes
Branch: MAIN
CVS Tags: HEAD
Changes since 1.3: +387 -27 lines
Error occurred while calculating annotation data.
Log Message:
Long overdue commit with several new files

File Contents

# Content
1 #include "TrkUpgradeAnalysis/VHbb/interface/VHbbCandidateCutSets.h"
2
3 #include <stdexcept>
4
5 #include "TrkUpgradeAnalysis/VHbb/interface/VHbbCandidateCuts.h"
6 #include "TrkUpgradeAnalysis/VHbb/interface/VHbbCandidateVariables.h"
7 #include "VHbbAnalysis/VHbbDataFormats/interface/VHbbCandidate.h"
8
9 trkupgradeanalysis::VHbbCandidateCutSet::VHbbCandidateCutSet() :
10 allCutsPassed_( false ), name_( "unset" )
11 {
12 // No operation besides the initialiser list
13 }
14
15 trkupgradeanalysis::VHbbCandidateCutSet::~VHbbCandidateCutSet()
16 {
17 for( std::vector<trkupgradeanalysis::IBasicVHbbCandidateCut*>::iterator iCut=basicCuts_.begin(); iCut != basicCuts_.end(); ++iCut )
18 {
19 delete *iCut;
20 }
21
22 for( std::vector<trkupgradeanalysis::variables::VHbbCandidateVariable*>::iterator iAdditionalVariable=additionalVariables_.begin(); iAdditionalVariable!=additionalVariables_.end(); ++iAdditionalVariable )
23 {
24 delete *iAdditionalVariable;
25 }
26 }
27
28 size_t trkupgradeanalysis::VHbbCandidateCutSet::numberOfCuts() const
29 {
30 return basicCuts_.size();
31 }
32
33 bool trkupgradeanalysis::VHbbCandidateCutSet::allCutsPassed() const
34 {
35 return allCutsPassed_;
36 }
37
38 bool trkupgradeanalysis::VHbbCandidateCutSet::cutNPassed( size_t cutNumber ) const
39 {
40 if( cutNumber >= cutsPassed_.size() ) throw std::runtime_error( "trkupgradeanalysis::VHbbCandidateCutSet::cutNPassed(cutNumber) - invalid cutNumber" );
41 return cutsPassed_[cutNumber];
42 }
43
44 bool trkupgradeanalysis::VHbbCandidateCutSet::everythingOtherThanCutNPassed( size_t cutNumber ) const
45 {
46 if( cutNumber >= cutsPassed_.size() ) throw std::runtime_error( "trkupgradeanalysis::VHbbCandidateCutSet::everythingOtherThanCutNPassed(cutNumber) - invalid cutNumber" );
47
48 for( size_t a=0; a < cutsPassed_.size(); ++a )
49 {
50 if( a == cutNumber ) continue;
51 if( cutsPassed_[a] == false ) return false;
52 }
53 // If control has made it this far then all cuts (bar possibly the one stated) have passed
54 return true;
55 }
56
57 const trkupgradeanalysis::IBasicCut& trkupgradeanalysis::VHbbCandidateCutSet::cutAt( size_t a ) const
58 {
59 return *basicCuts_[a];
60 }
61
62 bool trkupgradeanalysis::VHbbCandidateCutSet::applyCuts( const VHbbCandidate& vhbbCandidate )
63 {
64 allCutsPassed_=true; // Start off assuming this is true then change it if not.
65 std::vector<trkupgradeanalysis::IBasicVHbbCandidateCut*>::const_iterator iCut;
66 std::vector<bool>::iterator iCutPassed;
67 for( iCut=basicCuts_.begin(), iCutPassed=cutsPassed_.begin(); iCut != basicCuts_.end() && iCutPassed != cutsPassed_.end(); ++iCut, ++iCutPassed )
68 {
69 bool cutPassed=( *iCut)->applyCut( vhbbCandidate );
70 *iCutPassed=cutPassed;
71 if( cutPassed == false ) allCutsPassed_=false;
72 }
73
74 // Fill the additional variables
75 for( std::vector<trkupgradeanalysis::variables::VHbbCandidateVariable*>::const_iterator iVariable=additionalVariables_.begin(); iVariable!=additionalVariables_.end(); ++iVariable )
76 {
77 (*iVariable)->set( vhbbCandidate );
78 }
79
80 return allCutsPassed_;
81 }
82
83 bool trkupgradeanalysis::VHbbCandidateCutSet::applyCuts( const trkupgradeanalysis::tools::NTupleRow& ntupleRow )
84 {
85 allCutsPassed_=true; // Start off assuming this is true then change it if not.
86 std::vector<trkupgradeanalysis::IBasicVHbbCandidateCut*>::const_iterator iCut;
87 std::vector<bool>::iterator iCutPassed;
88 for( iCut=basicCuts_.begin(), iCutPassed=cutsPassed_.begin(); iCut != basicCuts_.end() && iCutPassed != cutsPassed_.end(); ++iCut, ++iCutPassed )
89 {
90 bool cutPassed=( *iCut)->applyCut( ntupleRow );
91 *iCutPassed=cutPassed;
92 if( cutPassed == false ) allCutsPassed_=false;
93 }
94
95 // Fill the additional variables
96 for( std::vector<trkupgradeanalysis::variables::VHbbCandidateVariable*>::const_iterator iVariable=additionalVariables_.begin(); iVariable!=additionalVariables_.end(); ++iVariable )
97 {
98 (*iVariable)->set( ntupleRow );
99 }
100
101 return allCutsPassed_;
102 }
103
104 std::string trkupgradeanalysis::VHbbCandidateCutSet::name() const
105 {
106 return name_;
107 }
108
109 size_t trkupgradeanalysis::VHbbCandidateCutSet::numberOfAdditionalVariables()
110 {
111 return additionalVariables_.size();
112 }
113
114 trkupgradeanalysis::IHistogramVariable& trkupgradeanalysis::VHbbCandidateCutSet::additionalVariableAt( size_t position )
115 {
116 // Use the "at" method rather than array subscripts so that an exception is thrown if it's out of bounds
117 return *additionalVariables_.at(position);
118 }
119
120
121
122 trkupgradeanalysis::AllVariables::AllVariables()
123 {
124 additionalVariables_.push_back( new trkupgradeanalysis::variables::MuonPixelHits(true) ); // True means check first muon
125 additionalVariables_.push_back( new trkupgradeanalysis::variables::MuonPixelHits(false) ); // False means check second muon
126 additionalVariables_.push_back( new trkupgradeanalysis::variables::CandidateType );
127 additionalVariables_.push_back( new trkupgradeanalysis::variables::DiLeptonMass );
128 additionalVariables_.push_back( new trkupgradeanalysis::variables::HiggsCandidatePt );
129 additionalVariables_.push_back( new trkupgradeanalysis::variables::VectorBosonCandidatePt );
130 additionalVariables_.push_back( new trkupgradeanalysis::variables::DeltaPhiVH );
131 additionalVariables_.push_back( new trkupgradeanalysis::variables::HighestCSV );
132 additionalVariables_.push_back( new trkupgradeanalysis::variables::LowestCSV );
133 additionalVariables_.push_back( new trkupgradeanalysis::variables::NumberOfAdditionalJets );
134 additionalVariables_.push_back( new trkupgradeanalysis::variables::DiJetMass );
135
136 name_="AllVariables";
137 }
138
139 trkupgradeanalysis::ParameterisedZmumu::ParameterisedZmumu( float higherCSVCut, float lowerCSVCut, float lowerZMassCut, float upperZMassCut, float lowerHMassCut, float upperHMassCut, bool requireTrigger, bool requireDoubleTrigger, int numberOfAdditionalJetsCut )
140 {
141 using namespace trkupgradeanalysis::cuts;
142 using namespace trkupgradeanalysis::variables;
143
144 if( requireTrigger || requireDoubleTrigger )
145 {
146 // Emulate HLT trigger requirements by requiring 3 or more pixel hits in the muons
147 if( requireDoubleTrigger ) basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( LowestMuonPixelHits(), GreaterThan( 2 ) ) );
148 else basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( HighestMuonPixelHits(), GreaterThan( 2 ) ) );
149 }
150
151 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( CandidateType(), Equals( VHbbCandidate::Zmumu, 0.01 ) ) );
152 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( DiLeptonMass(), Within( lowerZMassCut, upperZMassCut ) ) );
153 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( HiggsCandidatePt(), GreaterThan( 100 ) ) );
154 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( VectorBosonCandidatePt(), GreaterThan( 100 ) ) );
155 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( HighestCSV(), GreaterThan( higherCSVCut ) ) );
156 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( LowestCSV(), GreaterThan( lowerCSVCut ) ) );
157 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( DeltaPhiVH(), GreaterThan( 2.9 ) ) );
158
159 if( numberOfAdditionalJetsCut>=0 ) basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( NumberOfAdditionalJets(), LessThanOrEqual(numberOfAdditionalJetsCut) ) );
160 else additionalVariables_.push_back( new trkupgradeanalysis::variables::NumberOfAdditionalJets );
161
162 if( lowerHMassCut>0 && upperHMassCut> 0 ) basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( DiJetMass(), Within( lowerHMassCut, upperHMassCut ) ) );
163 else additionalVariables_.push_back( new DiJetMass );
164
165 cutsPassed_.resize( basicCuts_.size() );
166
167 std::stringstream floatToStringConversion;
168 floatToStringConversion << "FullSelectionZmumu_higherCSVCut=" << higherCSVCut << "_lowerCSVCut=" << lowerCSVCut << "_lowerZMassCut=" << lowerZMassCut << "_upperZMassCut=" << upperZMassCut;
169 if( requireTrigger || requireDoubleTrigger )
170 {
171 if( requireDoubleTrigger ) floatToStringConversion << "_withDoubleTrigger";
172 else floatToStringConversion << "_withSingleTrigger";
173 }
174 name_=floatToStringConversion.str();
175 }
176
177 trkupgradeanalysis::FullSelectionZmumu::FullSelectionZmumu( float higherCSVCut, float lowerCSVCut, float centralZMass, bool requireTrigger, bool requireDoubleTrigger )
178 : ParameterisedZmumu( higherCSVCut, lowerCSVCut, centralZMass-16, centralZMass+14, -1, -1, -1, requireTrigger, requireDoubleTrigger)
179 {
180 // No operation besides the initialiser list
181 }
182
183 trkupgradeanalysis::ParameterisedZee::ParameterisedZee( float higherCSVCut, float lowerCSVCut, float lowerZMassCut, float upperZMassCut, float lowerHMassCut, float upperHMassCut, int numberOfAdditionalJetsCut )
184 {
185 using namespace trkupgradeanalysis::cuts;
186 using namespace trkupgradeanalysis::variables;
187 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( CandidateType(), Equals( VHbbCandidate::Zee, 0.01 ) ) );
188 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( DiLeptonMass(), Within( lowerZMassCut, upperZMassCut ) ) );
189 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( HiggsCandidatePt(), GreaterThan( 100 ) ) );
190 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( VectorBosonCandidatePt(), GreaterThan( 100 ) ) );
191 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( HighestCSV(), GreaterThan( higherCSVCut ) ) );
192 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( LowestCSV(), GreaterThan( lowerCSVCut ) ) );
193 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( DeltaPhiVH(), GreaterThan( 2.9 ) ) );
194
195 if( numberOfAdditionalJetsCut>=0 ) basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( NumberOfAdditionalJets(), LessThanOrEqual(numberOfAdditionalJetsCut) ) );
196 else additionalVariables_.push_back( new trkupgradeanalysis::variables::NumberOfAdditionalJets );
197
198 if( lowerHMassCut>0 && upperHMassCut> 0 ) basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( DiJetMass(), Within( lowerHMassCut, upperHMassCut ) ) );
199 else additionalVariables_.push_back( new DiJetMass );
200
201 cutsPassed_.resize( basicCuts_.size() );
202
203 std::stringstream floatToStringConversion;
204 floatToStringConversion << "FullSelectionZee_higherCSVCut=" << higherCSVCut << "_lowerCSVCut=" << lowerCSVCut << "_lowerZMassCut=" << lowerZMassCut << "_upperZMassCut=" << upperZMassCut;
205 name_=floatToStringConversion.str();
206 }
207
208 trkupgradeanalysis::FullSelectionZee::FullSelectionZee( float higherCSVCut, float lowerCSVCut, float centralZMass )
209 {
210 using namespace trkupgradeanalysis::cuts;
211 using namespace trkupgradeanalysis::variables;
212 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( CandidateType(), Equals( VHbbCandidate::Zee, 0.01 ) ) );
213 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( DiLeptonMass(), Within( centralZMass-16, centralZMass+14 ) ) );
214 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( HiggsCandidatePt(), GreaterThan( 100 ) ) );
215 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( VectorBosonCandidatePt(), GreaterThan( 100 ) ) );
216 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( DeltaPhiVH(), GreaterThan( 2.9 ) ) );
217 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( HighestCSV(), GreaterThan( higherCSVCut ) ) );
218 basicCuts_.push_back( new trkupgradeanalysis::CutOnVariable( LowestCSV(), GreaterThan( lowerCSVCut ) ) );
219
220 cutsPassed_.resize( basicCuts_.size() );
221
222 additionalVariables_.push_back( new trkupgradeanalysis::variables::NumberOfAdditionalJets );
223 additionalVariables_.push_back( new DiJetMass );
224
225 std::stringstream floatToStringConversion;
226 floatToStringConversion << "FullSelectionZee_higherCSVCut=" << higherCSVCut << "_lowerCSVCut=" << lowerCSVCut << "_centralZMass=" << centralZMass;
227 name_=floatToStringConversion.str();
228 }
229
230 trkupgradeanalysis::SignalSelectionZee::SignalSelectionZee( float centralMass )
231 {
232 using namespace trkupgradeanalysis::cuts;
233 // These lines are from the code
234 // result.add( new SignalPreSelectionZee );
235 // result.add( new HPtCut( 100 ) );
236 // result.add( new VPtCut( 100 ) );
237 // result.add( new DoubleBTagCut( 0.5 ) );
238 // result.add( new SingleBTagCut( CSVT ) );
239 // result.add( new AdditionalJetsCut( 2 ) ); // < 2
240 // result.add( new DiJetMassMinCut( centralMass - 15. - 5. ) );
241 // result.add( new DiJetMassMaxCut( centralMass + 15. - 5. ) );
242 // These extra cuts are from the paper
243 // basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( GreaterThan( 75 ) ) );
244 // basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( LessThanOrEqual( 105 ) ) );
245 // basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 20 ) ) );
246 // basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 20 ) ) );
247 // basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
248
249
250 // This first set aren't listed in the paper as separate cuts, so they must come under
251 // the header "pre-selection".
252 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zee ) );
253 // basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( GreaterThan( 75 ) ) );
254 // basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( LessThanOrEqual( 105 ) ) );
255 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
256
257 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
258 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
259 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.5, 2 ) );
260 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
261 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
262 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
263 // basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( GreaterThan( centralMass-20 ) ) );
264 // basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( LessThanOrEqual( centralMass+10 ) ) );
265 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( centralMass-20, centralMass+10 ) ) );
266
267
268 cutsPassed_.resize( basicCuts_.size() );
269
270 std::stringstream floatToStringConversion;
271 floatToStringConversion << "SignalSelectionZee_centralMass=" << centralMass;
272 name_=floatToStringConversion.str();
273 }
274
275 trkupgradeanalysis::SignalSelectionZee::SignalSelectionZee( float lowerMass, float upperMass )
276 {
277 using namespace trkupgradeanalysis::cuts;
278 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zee ) );
279 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
280 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
281 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
282 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.5, 2 ) );
283 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
284 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
285 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
286 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( lowerMass, upperMass ) ) );
287
288
289 cutsPassed_.resize( basicCuts_.size() );
290
291 std::stringstream floatToStringConversion;
292 floatToStringConversion << "SignalSelectionZee_massBetween" << lowerMass << "And" << upperMass;
293 name_=floatToStringConversion.str();
294 }
295
296
297 trkupgradeanalysis::SignalSelectionZmumu::SignalSelectionZmumu( float centralMass )
298 {
299 using namespace trkupgradeanalysis::cuts;
300
301 // The lines below are how the cuts are applied in the code
302 // result.add( new SignalPreSelectionZee ); // Eh? Zee? I assume this is a bug
303 // result.add( new HPtCut( 100 ) );
304 // result.add( new VPtCut( 100 ) );
305 // result.add( new DoubleBTagCut( 0.5 ) );
306 // result.add( new SingleBTagCut( CSVT ) );
307 // result.add( new AdditionalJetsCut( 2 ) ); // < 2
308 // result.add( new DiJetMassMinCut( centralMass - 15. - 5. ) );
309 // result.add( new DiJetMassMaxCut( centralMass + 15. - 5. ) );
310 // These lines I added from the cuts listed in the paper
311 // basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( GreaterThan( 75 ) ) );
312 // basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( LessThanOrEqual( 105 ) ) );
313 // basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 20 ) ) );
314 // basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 20 ) ) );
315 // basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
316
317
318 // This first set aren't listed in the paper as separate cuts, so they must come under
319 // the header "pre-selection".
320 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
321 // basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( GreaterThan( 75 ) ) );
322 // basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( LessThanOrEqual( 105 ) ) );
323 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
324
325 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
326 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
327 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.5, 2 ) );
328 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
329 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
330 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
331 // basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( GreaterThan( centralMass-20 ) ) );
332 // basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( LessThanOrEqual( centralMass+10 ) ) );
333 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( centralMass-20, centralMass+10 ) ) );
334
335 cutsPassed_.resize( basicCuts_.size() );
336
337 std::stringstream floatToStringConversion;
338 floatToStringConversion << "SignalSelectionZmumu_centralMass=" << centralMass;
339 name_=floatToStringConversion.str();
340 }
341
342 trkupgradeanalysis::SignalSelectionZmumu::SignalSelectionZmumu( float lowerMass, float upperMass )
343 {
344 using namespace trkupgradeanalysis::cuts;
345 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
346 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
347 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
348 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
349 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.5, 2 ) );
350 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
351 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
352 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
353 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( lowerMass, upperMass ) ) );
354
355 cutsPassed_.resize( basicCuts_.size() );
356
357 std::stringstream floatToStringConversion;
358 floatToStringConversion << "SignalSelectionZmumu_massBetween" << lowerMass << "And" << upperMass;
359 name_=floatToStringConversion.str();
360 }
361
362 trkupgradeanalysis::InitialSignalSelectionZee::InitialSignalSelectionZee()
363 {
364 using namespace trkupgradeanalysis::cuts;
365 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zee ) );
366 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
367 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
368 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
369 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
370
371 cutsPassed_.resize( basicCuts_.size() );
372
373 additionalVariables_.push_back( new trkupgradeanalysis::variables::NumberOfAdditionalJets );
374 additionalVariables_.push_back( new trkupgradeanalysis::variables::DiJetMass );
375 additionalVariables_.push_back( new trkupgradeanalysis::variables::HighestCSV );
376 additionalVariables_.push_back( new trkupgradeanalysis::variables::LowestCSV );
377
378 name_="InitialSignalSelectionZee";
379 }
380
381 trkupgradeanalysis::InitialSignalSelectionZmumu::InitialSignalSelectionZmumu()
382 {
383 using namespace trkupgradeanalysis::cuts;
384 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
385 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
386 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
387 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
388 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
389
390 cutsPassed_.resize( basicCuts_.size() );
391
392 additionalVariables_.push_back( new trkupgradeanalysis::variables::NumberOfAdditionalJets );
393 additionalVariables_.push_back( new trkupgradeanalysis::variables::DiJetMass );
394 additionalVariables_.push_back( new trkupgradeanalysis::variables::HighestCSV );
395 additionalVariables_.push_back( new trkupgradeanalysis::variables::LowestCSV );
396
397 name_="InitialSignalSelectionZmumu";
398 }
399
400 trkupgradeanalysis::SignalSelectionZmumuWithoutAdditionalJetsCut::SignalSelectionZmumuWithoutAdditionalJetsCut( float mass )
401 {
402 using namespace trkupgradeanalysis::cuts;
403 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
404 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
405
406 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
407 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
408 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.5, 2 ) );
409 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
410 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
411 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( mass-20, mass+10 ) ) );
412
413 cutsPassed_.resize( basicCuts_.size() );
414
415 std::stringstream floatToStringConversion;
416 floatToStringConversion << "SignalSelectionZmumuWithoutAdditionalJetsCut_mass=" << mass;
417 name_=floatToStringConversion.str();
418 }
419
420
421 trkupgradeanalysis::SignalSelectionZmumuWithCSVCutsSwitched::SignalSelectionZmumuWithCSVCutsSwitched( float centralMass )
422 {
423 using namespace trkupgradeanalysis::cuts;
424 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
425 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
426 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
427 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
428 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
429 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.5, 2 ) );
430 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
431 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
432 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( centralMass-20, centralMass+10 ) ) );
433
434 cutsPassed_.resize( basicCuts_.size() );
435
436 std::stringstream floatToStringConversion;
437 floatToStringConversion << "SignalSelectionZmumuWithCSVCutsSwitched_centralMass=" << centralMass;
438 name_=floatToStringConversion.str();
439 }
440
441 trkupgradeanalysis::SignalSelectionZmumuWithCSVCutsSwitched::SignalSelectionZmumuWithCSVCutsSwitched( float lowerMass, float upperMass )
442 {
443 using namespace trkupgradeanalysis::cuts;
444 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
445 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
446 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
447 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
448 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
449 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.5, 2 ) );
450 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
451 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
452 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( lowerMass, upperMass ) ) );
453
454 cutsPassed_.resize( basicCuts_.size() );
455
456 std::stringstream floatToStringConversion;
457 floatToStringConversion << "SignalSelectionZmumuWithCSVCutsSwitched_massBetween" << lowerMass << "And" << upperMass;
458 name_=floatToStringConversion.str();
459 }
460
461
462
463 trkupgradeanalysis::SignalSelectionStdGeom50PUZmumu::SignalSelectionStdGeom50PUZmumu( float centralMass )
464 {
465 using namespace trkupgradeanalysis::cuts;
466 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
467 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
468 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
469 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
470 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.717621, 2 ) );
471 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.395486, 2 ) );
472 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
473 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
474 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( centralMass-20, centralMass+10 ) ) );
475
476 cutsPassed_.resize( basicCuts_.size() );
477
478 std::stringstream floatToStringConversion;
479 floatToStringConversion << "SignalSelectionStdGeom50PUZmumu_centralMass=" << centralMass;
480 name_=floatToStringConversion.str();
481 }
482
483 trkupgradeanalysis::SignalSelectionStdGeom50PUZmumu::SignalSelectionStdGeom50PUZmumu( float lowerMass, float upperMass )
484 {
485 using namespace trkupgradeanalysis::cuts;
486 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
487 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
488 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
489 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
490 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.717621, 2 ) );
491 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.395486, 2 ) );
492 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
493 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
494 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( lowerMass, upperMass ) ) );
495
496 cutsPassed_.resize( basicCuts_.size() );
497
498 std::stringstream floatToStringConversion;
499 floatToStringConversion << "SignalSelectionStdGeom50PUZmumu_massBetween" << lowerMass << "And" << upperMass;
500 name_=floatToStringConversion.str();
501 }
502
503
504 trkupgradeanalysis::SignalSelectionPhase150PUZmumu::SignalSelectionPhase150PUZmumu( float centralMass )
505 {
506 using namespace trkupgradeanalysis::cuts;
507 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
508 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
509 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
510 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
511 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.776769, 2 ) );
512 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.536104, 2 ) );
513 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
514 // basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
515 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( centralMass-20, centralMass+10 ) ) );
516
517 cutsPassed_.resize( basicCuts_.size() );
518
519 std::stringstream floatToStringConversion;
520 floatToStringConversion << "SignalSelectionPhase150PUZmumu_centralMass=" << centralMass;
521 name_=floatToStringConversion.str();
522 }
523
524 trkupgradeanalysis::SignalSelectionPhase150PUZmumu::SignalSelectionPhase150PUZmumu( float lowerMass, float upperMass )
525 {
526 using namespace trkupgradeanalysis::cuts;
527 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
528 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
529 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
530 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
531 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.776769, 2 ) );
532 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.536104, 2 ) );
533 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
534 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
535 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( lowerMass, upperMass ) ) );
536
537 cutsPassed_.resize( basicCuts_.size() );
538
539 std::stringstream floatToStringConversion;
540 floatToStringConversion << "SignalSelectionPhase150PUZmumu_massBetween" << lowerMass << "And" << upperMass;
541 name_=floatToStringConversion.str();
542 }
543
544
545
546 trkupgradeanalysis::SignalSelectionStdGeom50PUZmumuWithoutAdditionalJetsCut::SignalSelectionStdGeom50PUZmumuWithoutAdditionalJetsCut( float centralMass )
547 {
548 using namespace trkupgradeanalysis::cuts;
549 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
550 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
551 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
552 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
553 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.717621, 2 ) );
554 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.395486, 2 ) );
555 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
556 // basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( centralMass-20, centralMass+10 ) ) );
557
558 cutsPassed_.resize( basicCuts_.size() );
559
560 additionalVariables_.push_back( new trkupgradeanalysis::variables::NumberOfAdditionalJets );
561 additionalVariables_.push_back( new trkupgradeanalysis::variables::DiJetMass );
562
563 std::stringstream floatToStringConversion;
564 floatToStringConversion << "SignalSelectionStdGeom50PUZmumuWithoutAdditionalJetsCut_centralMass=" << centralMass;
565 name_=floatToStringConversion.str();
566 }
567
568 trkupgradeanalysis::SignalSelectionStdGeom50PUZmumuWithoutAdditionalJetsCut::SignalSelectionStdGeom50PUZmumuWithoutAdditionalJetsCut( float lowerMass, float upperMass )
569 {
570 using namespace trkupgradeanalysis::cuts;
571 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
572 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
573 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
574 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
575 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.717621, 2 ) );
576 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.395486, 2 ) );
577 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
578 // basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( lowerMass, upperMass ) ) );
579
580 cutsPassed_.resize( basicCuts_.size() );
581
582 additionalVariables_.push_back( new trkupgradeanalysis::variables::NumberOfAdditionalJets );
583 additionalVariables_.push_back( new trkupgradeanalysis::variables::DiJetMass );
584
585 std::stringstream floatToStringConversion;
586 floatToStringConversion << "SignalSelectionStdGeom50PUZmumuWithoutAdditionalJetsCut_massBetween" << lowerMass << "And" << upperMass;
587 name_=floatToStringConversion.str();
588 }
589
590
591 trkupgradeanalysis::SignalSelectionPhase150PUZmumuWithoutAdditionalJetsCut::SignalSelectionPhase150PUZmumuWithoutAdditionalJetsCut( float centralMass )
592 {
593 using namespace trkupgradeanalysis::cuts;
594 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
595 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
596 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
597 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
598 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.776769, 2 ) );
599 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.536104, 2 ) );
600 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
601 // basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( centralMass-20, centralMass+10 ) ) );
602
603 cutsPassed_.resize( basicCuts_.size() );
604
605 additionalVariables_.push_back( new trkupgradeanalysis::variables::NumberOfAdditionalJets );
606 additionalVariables_.push_back( new trkupgradeanalysis::variables::DiJetMass );
607
608 std::stringstream floatToStringConversion;
609 floatToStringConversion << "SignalSelectionPhase150PUZmumuWithoutAdditionalJetsCut_centralMass=" << centralMass;
610 name_=floatToStringConversion.str();
611 }
612
613 trkupgradeanalysis::SignalSelectionPhase150PUZmumuWithoutAdditionalJetsCut::SignalSelectionPhase150PUZmumuWithoutAdditionalJetsCut( float lowerMass, float upperMass )
614 {
615 using namespace trkupgradeanalysis::cuts;
616 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
617 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( Within( 75, 105 ) ) );
618 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
619 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
620 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.776769, 2 ) );
621 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.536104, 2 ) );
622 basicCuts_.push_back( new trkupgradeanalysis::DeltaPhiVHCut( GreaterThan( 2.9 ) ) );
623 // basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( lowerMass, upperMass ) ) );
624
625 cutsPassed_.resize( basicCuts_.size() );
626
627 additionalVariables_.push_back( new trkupgradeanalysis::variables::NumberOfAdditionalJets );
628 additionalVariables_.push_back( new trkupgradeanalysis::variables::DiJetMass );
629
630 std::stringstream floatToStringConversion;
631 floatToStringConversion << "SignalSelectionPhase150PUZmumuWithoutAdditionalJetsCut_massBetween" << lowerMass << "And" << upperMass;
632 name_=floatToStringConversion.str();
633 }
634
635
636 trkupgradeanalysis::SignalSelectionWen::SignalSelectionWen( float mass )
637 {
638 using namespace trkupgradeanalysis::cuts;
639 // result.add( new SignalPreSelectionWen );
640 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Wen ) );
641 // result.add( new HPtCut( 165 ) );
642 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 165 ) ) );
643 // result.add( new VPtCut( 160 ) );
644 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 160 ) ) );
645 // result.add( new DoubleBTagCut( 0.5 ) );
646 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.5, 2 ) );
647 // result.add( new SingleBTagCut( CSVT ) );
648 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
649 // result.add( new AdditionalJetsCut( 1 ) ); // < 1
650 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 1 ) ) );
651 // result.add( new AdditionalLeptonsCut( 1 ) ); // < 1
652 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalLeptons( LessThan( 1 ) ) );
653 // result.add( new METCut( 30 ) );
654 basicCuts_.push_back( new trkupgradeanalysis::PtOfMETN( 0, GreaterThan( 30 ) ) );
655 // result.add( new DiJetMassMinCut( mass - 15. ) );
656 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( GreaterThan( mass-15 ) ) );
657 // result.add( new DiJetMassMaxCut( mass + 15. ) );
658 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( LessThanOrEqual( mass+15 ) ) );
659 cutsPassed_.resize( basicCuts_.size() );
660
661 std::stringstream floatToStringConversion;
662 floatToStringConversion << "SignalSelectionWen_mass=" << mass;
663 name_=floatToStringConversion.str();
664 }
665
666
667
668
669 trkupgradeanalysis::SignalSelectionWmun::SignalSelectionWmun( float mass )
670 {
671 using namespace trkupgradeanalysis::cuts;
672 // result.add( new SignalPreSelectionWmun );
673 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Wmun ) );
674 // result.add( new HPtCut( 165 ) );
675 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 165 ) ) );
676 // result.add( new VPtCut( 160 ) );
677 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 160 ) ) );
678 // result.add( new DoubleBTagCut( 0.5 ) );
679 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAllJetsGreaterThan( 0.5, 2 ) );
680 // result.add( new SingleBTagCut( CSVT ) );
681 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
682 // result.add( new AdditionalJetsCut( 1 ) ); // < 1
683 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 1 ) ) );
684 // result.add( new AdditionalLeptonsCut( 1 ) ); // < 1
685 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalLeptons( LessThan( 1 ) ) );
686 // result.add( new DiJetMassMinCut( mass - 15. ) );
687 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( GreaterThan( mass-15 ) ) );
688 // result.add( new DiJetMassMaxCut( mass + 15. ) );
689 basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( LessThanOrEqual( mass+15 ) ) );
690 cutsPassed_.resize( basicCuts_.size() );
691
692 std::stringstream floatToStringConversion;
693 floatToStringConversion << "SignalSelectionWmun_mass=" << mass;
694 name_=floatToStringConversion.str();
695 }
696
697
698
699
700 trkupgradeanalysis::VlightRegionHWmun::VlightRegionHWmun()
701 {
702 using namespace trkupgradeanalysis::cuts;
703 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Wmun ) );
704 basicCuts_.push_back( new trkupgradeanalysis::NumberOfJets( GreaterThanOrEqual( 2 ) ) );
705 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 30 ) ) );
706 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 30 ) ) );
707 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 30 ) ) );
708 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 30 ) ) );
709 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
710 basicCuts_.push_back( new trkupgradeanalysis::METSigma( GreaterThan( 2.5 ) ) );
711 cutsPassed_.resize( basicCuts_.size() );
712
713 name_="VlightRegionHWmun";
714 }
715
716 trkupgradeanalysis::VlightRegionHWen::VlightRegionHWen()
717 {
718 using namespace trkupgradeanalysis::cuts;
719 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Wen ) );
720 basicCuts_.push_back( new trkupgradeanalysis::PtOfElectronN( 0, GreaterThan( 30 ) ) );
721 basicCuts_.push_back( new trkupgradeanalysis::NumberOfJets( GreaterThanOrEqual( 2 ) ) );
722 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 30 ) ) );
723 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 30 ) ) );
724 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 150 ) ) );
725 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 150 ) ) );
726 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 150 ) ) );
727 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
728 basicCuts_.push_back( new trkupgradeanalysis::METSigma( GreaterThan( 2.5 ) ) );
729 cutsPassed_.resize( basicCuts_.size() );
730
731 name_="VlightRegionHWen";
732 }
733
734 trkupgradeanalysis::VlightRegionHZmumu::VlightRegionHZmumu()
735 {
736 using namespace trkupgradeanalysis::cuts;
737 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
738 basicCuts_.push_back( new trkupgradeanalysis::NumberOfJets( GreaterThanOrEqual( 2 ) ) );
739 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 20 ) ) );
740 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 20 ) ) );
741 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
742 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
743 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
744 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( GreaterThan( 75 ) ) );
745 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( LessThan( 105 ) ) );
746 cutsPassed_.resize( basicCuts_.size() );
747
748 name_="VlightRegionHZmumu";
749 }
750
751 trkupgradeanalysis::VlightRegionHZee::VlightRegionHZee()
752 {
753 using namespace trkupgradeanalysis::cuts;
754 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zee ) );
755 basicCuts_.push_back( new trkupgradeanalysis::NumberOfJets( GreaterThanOrEqual( 2 ) ) );
756 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 20 ) ) );
757 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 20 ) ) );
758 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
759 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
760 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
761 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( GreaterThan( 75 ) ) );
762 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( LessThan( 105 ) ) );
763 cutsPassed_.resize( basicCuts_.size() );
764
765 name_="VlightRegionHZee";
766 }
767
768 trkupgradeanalysis::TTbarRegionHWmun::TTbarRegionHWmun()
769 {
770 using namespace trkupgradeanalysis::cuts;
771 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Wmun ) );
772 basicCuts_.push_back( new trkupgradeanalysis::NumberOfJets( GreaterThanOrEqual( 2 ) ) );
773 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 30 ) ) );
774 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 30 ) ) );
775 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
776 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
777 // require that at least one of the first two jets (jets 0 and 1) b-tag is greater than 0.898
778 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
779 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( GreaterThan( 1 ) ) );
780 cutsPassed_.resize( basicCuts_.size() );
781
782 name_="TTbarRegionHWmun";
783 }
784
785 trkupgradeanalysis::TTbarRegionHWen::TTbarRegionHWen()
786 {
787 using namespace trkupgradeanalysis::cuts;
788 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Wen ) );
789 basicCuts_.push_back( new trkupgradeanalysis::PtOfElectronN( 0, GreaterThan( 30 ) ) );
790 basicCuts_.push_back( new trkupgradeanalysis::NumberOfJets( GreaterThanOrEqual( 2 ) ) );
791 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 30 ) ) );
792 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 30 ) ) );
793 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( GreaterThan( 100 ) ) );
794 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( GreaterThan( 100 ) ) );
795 // require that at least one of the first two jets (jets 0 and 1) b-tag is greater than 0.898
796 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
797 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( GreaterThan( 1 ) ) );
798 cutsPassed_.resize( basicCuts_.size() );
799
800 name_="TTbarRegionHWen";
801 }
802
803 trkupgradeanalysis::TTbarRegionHZmumu::TTbarRegionHZmumu()
804 {
805 using namespace trkupgradeanalysis::cuts;
806 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
807 basicCuts_.push_back( new trkupgradeanalysis::NumberOfJets( GreaterThanOrEqual( 2 ) ) );
808 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 20 ) ) );
809 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 20 ) ) );
810 basicCuts_.push_back( new trkupgradeanalysis::NumberOfMETObjects( GreaterThan( 0 ) ) );
811 // require that the pT of the 0th (i.e. the first) MET object is greater than 50 GeV
812 basicCuts_.push_back( new trkupgradeanalysis::PtOfMETN( 0, GreaterThan( 50 ) ) );
813 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( GreaterThan( 120 ) ) );
814 cutsPassed_.resize( basicCuts_.size() );
815
816 name_="TTbarRegionHZmumu";
817 }
818
819 trkupgradeanalysis::TTbarRegionHZee::TTbarRegionHZee()
820 {
821 using namespace trkupgradeanalysis::cuts;
822 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zee ) );
823 basicCuts_.push_back( new trkupgradeanalysis::NumberOfJets( GreaterThanOrEqual( 2 ) ) );
824 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 20 ) ) );
825 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 20 ) ) );
826 basicCuts_.push_back( new trkupgradeanalysis::NumberOfMETObjects( GreaterThan( 0 ) ) );
827 // require that the pT of the 0th (i.e. the first) MET object is greater than 50 GeV
828 basicCuts_.push_back( new trkupgradeanalysis::PtOfMETN( 0, GreaterThan( 50 ) ) );
829 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( GreaterThan( 120 ) ) );
830 cutsPassed_.resize( basicCuts_.size() );
831
832 name_="TTbarRegionHZee";
833 }
834
835 trkupgradeanalysis::VbbRegionHWmun::VbbRegionHWmun()
836 {
837 using namespace trkupgradeanalysis::cuts;
838 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Wmun ) );
839 basicCuts_.push_back( new trkupgradeanalysis::NumberOfJets( GreaterThanOrEqual( 2 ) ) );
840 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 30 ) ) );
841 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 30 ) ) );
842 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( LessThan( 150 ) ) );
843 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( LessThan( 150 ) ) );
844 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( LessThan( 150 ) ) );
845 // Add V.Mt(VHbbCandidate::Wmun) < 120
846 // Add V.Mt(VHbbCandidate::Wmun) > 40
847 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
848 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( Equals( 0 ) ) );
849 basicCuts_.push_back( new trkupgradeanalysis::METSigma( GreaterThan( 2.5 ) ) );
850 cutsPassed_.resize( basicCuts_.size() );
851
852 name_="VbbRegionHWmun";
853 }
854
855 trkupgradeanalysis::VbbRegionHWen::VbbRegionHWen()
856 {
857 using namespace trkupgradeanalysis::cuts;
858 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Wen ) );
859 basicCuts_.push_back( new trkupgradeanalysis::PtOfElectronN( 0, GreaterThan( 30 ) ) );
860 basicCuts_.push_back( new trkupgradeanalysis::NumberOfJets( GreaterThanOrEqual( 2 ) ) );
861 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 30 ) ) );
862 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 30 ) ) );
863 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( LessThan( 150 ) ) );
864 basicCuts_.push_back( new trkupgradeanalysis::PtOfHiggs( LessThan( 150 ) ) );
865 basicCuts_.push_back( new trkupgradeanalysis::PtOfVectorBoson( LessThan( 150 ) ) );
866 // Add V.Mt(VHbbCandidate::Wmun) < 120
867 // Add V.Mt(VHbbCandidate::Wmun) > 40
868 // require that at least one of the first two jets (jets 0 and 1) b-tag is greater than 0.898
869 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
870 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( Equals( 0 ) ) );
871 basicCuts_.push_back( new trkupgradeanalysis::METSigma( GreaterThan( 2.5 ) ) );
872 cutsPassed_.resize( basicCuts_.size() );
873
874 name_="VbbRegionHWen";
875 }
876
877 trkupgradeanalysis::VbbRegionHZmumu::VbbRegionHZmumu()
878 {
879 using namespace trkupgradeanalysis::cuts;
880 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zmumu ) );
881 basicCuts_.push_back( new trkupgradeanalysis::NumberOfJets( GreaterThanOrEqual( 2 ) ) );
882 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 20 ) ) );
883 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 20 ) ) );
884 // Add ( H.p4.M() < 90 || H.p4.M() > 145)
885 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
886 // Add TMath::Abs( Geom::deltaPhi(H.p4.Phi(), V.p4.Phi()) ) > 2.9
887 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
888 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( GreaterThan( 75 ) ) );
889 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( LessThan( 105 ) ) );
890 cutsPassed_.resize( basicCuts_.size() );
891
892 name_="VbbRegionHZmumu";
893 }
894
895 trkupgradeanalysis::VbbRegionHZee::VbbRegionHZee()
896 {
897 using namespace trkupgradeanalysis::cuts;
898 basicCuts_.push_back( new trkupgradeanalysis::CandidateTypeEquals( VHbbCandidate::Zee ) );
899 basicCuts_.push_back( new trkupgradeanalysis::NumberOfJets( GreaterThanOrEqual( 2 ) ) );
900 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 0, GreaterThan( 20 ) ) );
901 basicCuts_.push_back( new trkupgradeanalysis::PtOfJetN( 1, GreaterThan( 20 ) ) );
902 // Add ( H.p4.M() < 90 || H.p4.M() > 145)
903 basicCuts_.push_back( new trkupgradeanalysis::CSVOfAnyJetGreaterThan( 0.898, 2 ) );
904 // Add TMath::Abs( Geom::deltaPhi(H.p4.Phi(), V.p4.Phi()) ) > 2.9
905 basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( LessThan( 2 ) ) );
906 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( GreaterThan( 75 ) ) );
907 basicCuts_.push_back( new trkupgradeanalysis::MassOfVectorBoson( LessThan( 105 ) ) );
908 cutsPassed_.resize( basicCuts_.size() );
909
910 name_="VbbRegionHZee";
911 }