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

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

# Line 1 | Line 1
1   #include "TrkUpgradeAnalysis/VHbb/interface/VHbbCandidateCuts.h"
2  
3 + #include "TrkUpgradeAnalysis/VHbb/interface/VHbbCandidateVariables.h"
4 + #include "TrkUpgradeAnalysis/VHbb/interface/tools.h"
5 +
6   // Required to work out deltaPhi
7   #include "DataFormats/GeometryVector/interface/VectorUtil.h"
8  
9  
10 +
11 + trkupgradeanalysis::CutOnVariable::CutOnVariable( const trkupgradeanalysis::variables::VHbbCandidateVariable& variable, const trkupgradeanalysis::cuts::ICutType& cut )
12 +        : pCut_( cut.copy() ), pVHbbCandidateVariable_( variable.copy() )
13 + {
14 +        // No operation besides the initialiser list
15 + }
16 +
17 + trkupgradeanalysis::CutOnVariable::~CutOnVariable()
18 + {
19 +        // No operation
20 + }
21 +
22 + std::string trkupgradeanalysis::CutOnVariable::name() const
23 + {
24 +        return pVHbbCandidateVariable_->variableName()+pCut_->name();
25 + }
26 +
27 + const trkupgradeanalysis::IHistogramVariable& trkupgradeanalysis::CutOnVariable::cutVariable() const
28 + {
29 +        return *pVHbbCandidateVariable_;
30 + }
31 +
32 + bool trkupgradeanalysis::CutOnVariable::applyCut( const VHbbCandidate& vhbbCandidate ) const
33 + {
34 +        pVHbbCandidateVariable_->set(vhbbCandidate);
35 +        return pCut_->apply( pVHbbCandidateVariable_->histogrammableValue() );
36 + }
37 +
38 + bool trkupgradeanalysis::CutOnVariable::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
39 + {
40 +        pVHbbCandidateVariable_->set(ntupleRow);
41 +        return pCut_->apply( pVHbbCandidateVariable_->histogrammableValue() );
42 + }
43 +
44 +
45 +
46 +
47 +
48 +
49 +
50   trkupgradeanalysis::CandidateTypeEquals::CandidateTypeEquals( VHbbCandidate::CandidateType candidateType )
51   {
52          requiredCandidateTypes_.push_back(candidateType);
# Line 65 | Line 108 | bool trkupgradeanalysis::CandidateTypeEq
108          return false;
109   }
110  
111 + bool trkupgradeanalysis::CandidateTypeEquals::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
112 + {
113 +        lastValue_=static_cast<VHbbCandidate::CandidateType>( ntupleRow.getDouble( variableName() ) );
114 +
115 +        for( std::vector<VHbbCandidate::CandidateType>::const_iterator iRequiredCandidateType=requiredCandidateTypes_.begin(); iRequiredCandidateType!=requiredCandidateTypes_.end(); ++iRequiredCandidateType )
116 +        {
117 +                if( *iRequiredCandidateType==lastValue_ ) return true;
118 +        }
119 +
120 +        // If control reaches this far than non of the entries in the vector matched
121 +        return false;
122 + }
123 +
124   std::string trkupgradeanalysis::CandidateTypeEquals::variableName() const
125   {
126          return "CandidateType";
# Line 107 | Line 163 | trkupgradeanalysis::NumberOfJets::~Numbe
163  
164   std::string trkupgradeanalysis::NumberOfJets::name() const
165   {
166 <        return variableName()+pCut_->name();}
166 >        return variableName()+pCut_->name();
167 > }
168  
169   const trkupgradeanalysis::IHistogramVariable& trkupgradeanalysis::NumberOfJets::cutVariable() const
170   {
# Line 122 | Line 179 | bool trkupgradeanalysis::NumberOfJets::a
179          return pCut_->apply(lastValue_);
180   }
181  
182 + bool trkupgradeanalysis::NumberOfJets::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
183 + {
184 +        lastValue_=ntupleRow.getDouble( variableName() );
185 +        return pCut_->apply(lastValue_);
186 + }
187 +
188   std::string trkupgradeanalysis::NumberOfJets::variableName() const { return "numberOfJets"; }
189   double trkupgradeanalysis::NumberOfJets::histogrammableValue() const { return lastValue_; }
190   size_t trkupgradeanalysis::NumberOfJets::suggestedNumberOfBins() const { return 6; }
# Line 163 | Line 226 | bool trkupgradeanalysis::PtOfJetN::apply
226          return pCut_->apply(lastValue_);
227   }
228  
229 + bool trkupgradeanalysis::PtOfJetN::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
230 + {
231 +        lastValue_=ntupleRow.getDouble( variableName() );
232 +        return pCut_->apply(lastValue_);
233 + }
234 +
235   std::string trkupgradeanalysis::PtOfJetN::variableName() const
236   {
237          std::stringstream nameStream;
# Line 209 | Line 278 | bool trkupgradeanalysis::PtOfHiggs::appl
278          return pCut_->apply( lastValue_ );
279   }
280  
281 + bool trkupgradeanalysis::PtOfHiggs::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
282 + {
283 +        lastValue_=ntupleRow.getDouble( variableName() );
284 +        return pCut_->apply(lastValue_);
285 + }
286 +
287   std::string trkupgradeanalysis::PtOfHiggs::variableName() const { return "PtOfHiggs"; }
288   double trkupgradeanalysis::PtOfHiggs::histogrammableValue() const { return lastValue_; }
289   size_t trkupgradeanalysis::PtOfHiggs::suggestedNumberOfBins() const { return 60; }
# Line 248 | Line 323 | bool trkupgradeanalysis::PtOfVectorBoson
323          return pCut_->apply( lastValue_ );
324   }
325  
326 + bool trkupgradeanalysis::PtOfVectorBoson::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
327 + {
328 +        lastValue_=ntupleRow.getDouble( variableName() );
329 +        return pCut_->apply(lastValue_);
330 + }
331 +
332   std::string trkupgradeanalysis::PtOfVectorBoson::variableName() const
333   {
334          return "PtOfVectorBoson";
# Line 278 | Line 359 | double trkupgradeanalysis::PtOfVectorBos
359  
360  
361  
362 < trkupgradeanalysis::NumberOfAdditionalJets::NumberOfAdditionalJets( const trkupgradeanalysis::cuts::ICutType& cut, bool applyCleaning )
362 > trkupgradeanalysis::NumberOfAdditionalJetsCut::NumberOfAdditionalJetsCut( const trkupgradeanalysis::cuts::ICutType& cut, bool applyCleaning )
363          : pCut_( cut.copy() ), applyCleaning_(applyCleaning)
364   {
365          // No operation apart from the initialiser list
366   }
367  
368 < trkupgradeanalysis::NumberOfAdditionalJets::~NumberOfAdditionalJets()
368 > trkupgradeanalysis::NumberOfAdditionalJetsCut::~NumberOfAdditionalJetsCut()
369   {
370          // No operation
371   }
372  
373 < std::string trkupgradeanalysis::NumberOfAdditionalJets::name() const
373 > std::string trkupgradeanalysis::NumberOfAdditionalJetsCut::name() const
374   {
375          return variableName()+pCut_->name();
376   }
377  
378 < const trkupgradeanalysis::IHistogramVariable& trkupgradeanalysis::NumberOfAdditionalJets::cutVariable() const
378 > const trkupgradeanalysis::IHistogramVariable& trkupgradeanalysis::NumberOfAdditionalJetsCut::cutVariable() const
379   {
380          // This class implements the HistogramVariable interface to save on the
381          // number of classes, so just return a reference to this instance.
382          return *this;
383   }
384  
385 < bool trkupgradeanalysis::NumberOfAdditionalJets::applyCut( const VHbbCandidate& vhbbCandidate ) const
385 > bool trkupgradeanalysis::NumberOfAdditionalJetsCut::applyCut( const VHbbCandidate& vhbbCandidate ) const
386   {
387          if( !applyCleaning_ ) lastValue_=vhbbCandidate.additionalJets.size();
388          else
# Line 316 | Line 397 | bool trkupgradeanalysis::NumberOfAdditio
397          return pCut_->apply( lastValue_ );
398   }
399  
400 < bool trkupgradeanalysis::NumberOfAdditionalJets::jetId( const VHbbEvent::SimpleJet& jet ) const
400 > bool trkupgradeanalysis::NumberOfAdditionalJetsCut::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
401 > {
402 >        lastValue_=ntupleRow.getDouble( variableName() );
403 >        return pCut_->apply(lastValue_);
404 > }
405 >
406 > bool trkupgradeanalysis::NumberOfAdditionalJetsCut::jetId( const VHbbEvent::SimpleJet& jet ) const
407   {
408          if( jet.neutralHadronEFraction > 0.99 ) return false;
409          if( jet.neutralEmEFraction > 0.99 ) return false;
# Line 331 | Line 418 | bool trkupgradeanalysis::NumberOfAdditio
418          return true;
419   }
420  
421 < std::string trkupgradeanalysis::NumberOfAdditionalJets::variableName() const
421 > std::string trkupgradeanalysis::NumberOfAdditionalJetsCut::variableName() const
422   {
423 <        return "NumberOfAdditionalJets";
423 >        return "NumberOfAdditionalJetsCut";
424   }
425  
426 < double trkupgradeanalysis::NumberOfAdditionalJets::histogrammableValue() const
426 > double trkupgradeanalysis::NumberOfAdditionalJetsCut::histogrammableValue() const
427   {
428          return lastValue_;
429   }
430  
431 < size_t trkupgradeanalysis::NumberOfAdditionalJets::suggestedNumberOfBins() const
431 > size_t trkupgradeanalysis::NumberOfAdditionalJetsCut::suggestedNumberOfBins() const
432   {
433          return 91;
434   }
435  
436 < double trkupgradeanalysis::NumberOfAdditionalJets::suggestedLowerEdge() const
436 > double trkupgradeanalysis::NumberOfAdditionalJetsCut::suggestedLowerEdge() const
437   {
438          return -0.5;
439   }
440  
441 < double trkupgradeanalysis::NumberOfAdditionalJets::suggestedUpperEdge() const
441 > double trkupgradeanalysis::NumberOfAdditionalJetsCut::suggestedUpperEdge() const
442   {
443          return 90.5;
444   }
# Line 394 | Line 481 | bool trkupgradeanalysis::NumberOfAdditio
481          return pCut_->apply( lastValue_ );
482   }
483  
484 + bool trkupgradeanalysis::NumberOfAdditionalLeptons::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
485 + {
486 +        lastValue_=ntupleRow.getDouble( variableName() );
487 +        return pCut_->apply(lastValue_);
488 + }
489 +
490   std::string trkupgradeanalysis::NumberOfAdditionalLeptons::variableName() const
491   {
492          return "NumberOfAdditionalLeptons";
# Line 457 | Line 550 | bool trkupgradeanalysis::METSigma::apply
550          return pCut_->apply( lastValue_ );
551   }
552  
553 + bool trkupgradeanalysis::METSigma::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
554 + {
555 +        lastValue_=ntupleRow.getDouble( variableName() );
556 +        return pCut_->apply(lastValue_);
557 + }
558 +
559   std::string trkupgradeanalysis::METSigma::variableName() const
560   {
561          return "METSigma";
# Line 519 | Line 618 | bool trkupgradeanalysis::PtOfElectronN::
618          return pCut_->apply( lastValue_ );
619   }
620  
621 + bool trkupgradeanalysis::PtOfElectronN::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
622 + {
623 +        lastValue_=ntupleRow.getDouble( variableName() );
624 +        return pCut_->apply(lastValue_);
625 + }
626 +
627   std::string trkupgradeanalysis::PtOfElectronN::variableName() const
628   {
629          std::stringstream nameStream;
# Line 581 | Line 686 | bool trkupgradeanalysis::MassOfVectorBos
686          return pCut_->apply( lastValue_ );
687   }
688  
689 + bool trkupgradeanalysis::MassOfVectorBoson::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
690 + {
691 +        lastValue_=ntupleRow.getDouble( variableName() );
692 +        return pCut_->apply(lastValue_);
693 + }
694 +
695   std::string trkupgradeanalysis::MassOfVectorBoson::variableName() const
696   {
697          return "MassOfVectorBoson";
# Line 641 | Line 752 | bool trkupgradeanalysis::MassOfHiggsBoso
752          return pCut_->apply( lastValue_ );
753   }
754  
755 + bool trkupgradeanalysis::MassOfHiggsBoson::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
756 + {
757 +        lastValue_=ntupleRow.getDouble( variableName() );
758 +        return pCut_->apply(lastValue_);
759 + }
760 +
761   std::string trkupgradeanalysis::MassOfHiggsBoson::variableName() const
762   {
763          return "MassOfHiggsBoson";
# Line 712 | Line 829 | bool trkupgradeanalysis::CSVOfAnyJetGrea
829          return lastValue_ > requiredCSV_;
830   }
831  
832 + bool trkupgradeanalysis::CSVOfAnyJetGreaterThan::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
833 + {
834 +        lastValue_=ntupleRow.getDouble( variableName() );
835 +        return lastValue_ > requiredCSV_;
836 + }
837 +
838   std::string trkupgradeanalysis::CSVOfAnyJetGreaterThan::variableName() const
839   {
840          std::stringstream nameStream;
# Line 789 | Line 912 | bool trkupgradeanalysis::CSVOfAllJetsGre
912          return lastValue_ > requiredCSV_;
913   }
914  
915 + bool trkupgradeanalysis::CSVOfAllJetsGreaterThan::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
916 + {
917 +        lastValue_=ntupleRow.getDouble( variableName() );
918 +        return lastValue_ > requiredCSV_;
919 + }
920 +
921   std::string trkupgradeanalysis::CSVOfAllJetsGreaterThan::variableName() const
922   {
923          std::stringstream nameStream;
# Line 854 | Line 983 | bool trkupgradeanalysis::NumberOfMETObje
983          return pCut_->apply( lastValue_ );
984   }
985  
986 + bool trkupgradeanalysis::NumberOfMETObjects::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
987 + {
988 +        lastValue_=ntupleRow.getDouble( variableName() );
989 +        return pCut_->apply(lastValue_);
990 + }
991 +
992   std::string trkupgradeanalysis::NumberOfMETObjects::variableName() const { return "numberOfMETObjects"; }
993   double trkupgradeanalysis::NumberOfMETObjects::histogrammableValue() const { return lastValue_; }
994   size_t trkupgradeanalysis::NumberOfMETObjects::suggestedNumberOfBins() const { return 6; }
# Line 903 | Line 1038 | bool trkupgradeanalysis::PtOfMETN::apply
1038          return pCut_->apply( lastValue_ );
1039   }
1040  
1041 + bool trkupgradeanalysis::PtOfMETN::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
1042 + {
1043 +        lastValue_=ntupleRow.getDouble( variableName() );
1044 +        return pCut_->apply(lastValue_);
1045 + }
1046 +
1047   std::string trkupgradeanalysis::PtOfMETN::variableName() const
1048   {
1049          std::stringstream nameStream;
# Line 921 | Line 1062 | double trkupgradeanalysis::PtOfMETN::sug
1062  
1063  
1064  
1065 < trkupgradeanalysis::DeltaPhiVH::DeltaPhiVH( const trkupgradeanalysis::cuts::ICutType& cut )
1065 > trkupgradeanalysis::DeltaPhiVHCut::DeltaPhiVHCut( const trkupgradeanalysis::cuts::ICutType& cut )
1066          : pCut_( cut.copy() )
1067   {
1068          // No operation apart from the initialiser list
1069   }
1070  
1071 < trkupgradeanalysis::DeltaPhiVH::~DeltaPhiVH()
1071 > trkupgradeanalysis::DeltaPhiVHCut::~DeltaPhiVHCut()
1072   {
1073          // No operation
1074   }
1075  
1076 < std::string trkupgradeanalysis::DeltaPhiVH::name() const
1076 > std::string trkupgradeanalysis::DeltaPhiVHCut::name() const
1077   {
1078          return variableName()+pCut_->name();
1079   }
1080  
1081 < const trkupgradeanalysis::IHistogramVariable& trkupgradeanalysis::DeltaPhiVH::cutVariable() const
1081 > const trkupgradeanalysis::IHistogramVariable& trkupgradeanalysis::DeltaPhiVHCut::cutVariable() const
1082   {
1083          // This class implements the HistogramVariable interface to save on the
1084          // number of classes, so just return a reference to this instance.
1085          return *this;
1086   }
1087  
1088 < bool trkupgradeanalysis::DeltaPhiVH::applyCut( const VHbbCandidate& vhbbCandidate ) const
1088 > bool trkupgradeanalysis::DeltaPhiVHCut::applyCut( const VHbbCandidate& vhbbCandidate ) const
1089   {
1090          lastValue_=TMath::Abs( Geom::deltaPhi( vhbbCandidate.H.p4.Phi(), vhbbCandidate.V.p4.Phi() ) );
1091          return pCut_->apply( lastValue_ );
1092   }
1093  
1094 < std::string trkupgradeanalysis::DeltaPhiVH::variableName() const { return "DeltaPhiVH";}
1095 < double trkupgradeanalysis::DeltaPhiVH::histogrammableValue() const { return lastValue_; }
1096 < size_t trkupgradeanalysis::DeltaPhiVH::suggestedNumberOfBins() const { return 60; }
1097 < double trkupgradeanalysis::DeltaPhiVH::suggestedLowerEdge() const { return 0; }
1098 < double trkupgradeanalysis::DeltaPhiVH::suggestedUpperEdge() const { return M_PI; }
1094 > bool trkupgradeanalysis::DeltaPhiVHCut::applyCut( const trkupgradeanalysis::tools::NTupleRow& ntupleRow ) const
1095 > {
1096 >        lastValue_=ntupleRow.getDouble( variableName() );
1097 >        return pCut_->apply(lastValue_);
1098 > }
1099 >
1100 > std::string trkupgradeanalysis::DeltaPhiVHCut::variableName() const { return "DeltaPhiVHCut";}
1101 > double trkupgradeanalysis::DeltaPhiVHCut::histogrammableValue() const { return lastValue_; }
1102 > size_t trkupgradeanalysis::DeltaPhiVHCut::suggestedNumberOfBins() const { return 60; }
1103 > double trkupgradeanalysis::DeltaPhiVHCut::suggestedLowerEdge() const { return 0; }
1104 > double trkupgradeanalysis::DeltaPhiVHCut::suggestedUpperEdge() const { return M_PI; }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines