ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/grimes/VHbbAnalysisCode/src/VHbbCandidateCutSets.cpp
(Generate patch)

Comparing UserCode/grimes/VHbbAnalysisCode/src/VHbbCandidateCutSets.cpp (file contents):
Revision 1.2 by grimes, Mon Feb 27 11:01:07 2012 UTC vs.
Revision 1.4 by grimes, Wed Aug 15 22:37:47 2012 UTC

# Line 3 | Line 3
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() :
# Line 17 | Line 18 | trkupgradeanalysis::VHbbCandidateCutSet:
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
# Line 65 | Line 71 | bool trkupgradeanalysis::VHbbCandidateCu
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  
# Line 73 | Line 106 | std::string trkupgradeanalysis::VHbbCand
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 mass )
230 > trkupgradeanalysis::SignalSelectionZee::SignalSelectionZee( float centralMass )
231   {
232          using namespace trkupgradeanalysis::cuts;
233          // These lines are from the code
# Line 87 | Line 237 | trkupgradeanalysis::SignalSelectionZee::
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( mass - 15. - 5. ) );
241 <        //      result.add( new DiJetMassMaxCut( mass + 15. - 5. ) );
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::DeltaPhiVH( GreaterThan( 2.9 ) ) );
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
# Line 108 | Line 258 | trkupgradeanalysis::SignalSelectionZee::
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::DeltaPhiVH( GreaterThan( 2.9 ) ) );
262 <        basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJets( LessThan( 2 ) ) );
263 < //      basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( GreaterThan( mass-20 ) ) );
264 < //      basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( LessThanOrEqual( mass+10 ) ) );
265 <        basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( mass-20, mass+10 ) ) );
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_mass=" << mass;
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 mass )
297 > trkupgradeanalysis::SignalSelectionZmumu::SignalSelectionZmumu( float centralMass )
298   {
299          using namespace trkupgradeanalysis::cuts;
300  
# Line 135 | Line 305 | trkupgradeanalysis::SignalSelectionZmumu
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( mass - 15. - 5. ) );
309 <        //      result.add( new DiJetMassMaxCut( mass + 15. - 5. ) );
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::DeltaPhiVH( GreaterThan( 2.9 ) ) );
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
# Line 156 | Line 326 | trkupgradeanalysis::SignalSelectionZmumu
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::DeltaPhiVH( GreaterThan( 2.9 ) ) );
330 <        basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJets( LessThan( 2 ) ) );
331 < //      basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( GreaterThan( mass-20 ) ) );
332 < //      basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( LessThanOrEqual( mass+10 ) ) );
333 <        basicCuts_.push_back( new trkupgradeanalysis::MassOfHiggsBoson( Within( mass-20, mass+10 ) ) );
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_mass=" << mass;
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   {
# Line 181 | Line 407 | trkupgradeanalysis::SignalSelectionZmumu
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::DeltaPhiVH( GreaterThan( 2.9 ) ) );
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() );
# Line 192 | Line 418 | trkupgradeanalysis::SignalSelectionZmumu
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 )
# Line 209 | Line 647 | trkupgradeanalysis::SignalSelectionWen::
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::NumberOfAdditionalJets( LessThan( 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 ) );
# Line 242 | Line 680 | trkupgradeanalysis::SignalSelectionWmun:
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::NumberOfAdditionalJets( LessThan( 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. ) );
# Line 268 | Line 706 | trkupgradeanalysis::VlightRegionHWmun::V
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::NumberOfAdditionalJets( LessThan( 2 ) ) );
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  
# Line 286 | Line 724 | trkupgradeanalysis::VlightRegionHWen::Vl
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::NumberOfAdditionalJets( LessThan( 2 ) ) );
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  
# Line 302 | Line 740 | trkupgradeanalysis::VlightRegionHZmumu::
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::NumberOfAdditionalJets( LessThan( 2 ) ) );
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() );
# Line 319 | Line 757 | trkupgradeanalysis::VlightRegionHZee::Vl
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::NumberOfAdditionalJets( LessThan( 2 ) ) );
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() );
# Line 338 | Line 776 | trkupgradeanalysis::TTbarRegionHWmun::TT
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::NumberOfAdditionalJets( GreaterThan( 1 ) ) );
779 >        basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( GreaterThan( 1 ) ) );
780          cutsPassed_.resize( basicCuts_.size() );
781  
782          name_="TTbarRegionHWmun";
# Line 356 | Line 794 | trkupgradeanalysis::TTbarRegionHWen::TTb
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::NumberOfAdditionalJets( GreaterThan( 1 ) ) );
797 >        basicCuts_.push_back( new trkupgradeanalysis::NumberOfAdditionalJetsCut( GreaterThan( 1 ) ) );
798          cutsPassed_.resize( basicCuts_.size() );
799  
800          name_="TTbarRegionHWen";
# Line 407 | Line 845 | trkupgradeanalysis::VbbRegionHWmun::VbbR
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::NumberOfAdditionalJets( Equals( 0 ) ) );
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  
# Line 429 | Line 867 | trkupgradeanalysis::VbbRegionHWen::VbbRe
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::NumberOfAdditionalJets( Equals( 0 ) ) );
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  
# Line 446 | Line 884 | trkupgradeanalysis::VbbRegionHZmumu::Vbb
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::NumberOfAdditionalJets( LessThan( 2 ) ) );
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() );
# Line 464 | Line 902 | trkupgradeanalysis::VbbRegionHZee::VbbRe
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::NumberOfAdditionalJets( LessThan( 2 ) ) );
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() );

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines