Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:31:13

0001 #ifndef TtHadLRSignalSelObservables_h
0002 #define TtHadLRSignalSelObservables_h
0003 
0004 #include "FWCore/Framework/interface/EventSetup.h"
0005 #include "FWCore/Framework/interface/Event.h"
0006 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0007 #include "FWCore/Utilities/interface/Exception.h"
0008 
0009 #include <iostream>
0010 #include <string>
0011 #include <vector>
0012 
0013 #include "TLorentzVector.h"
0014 #include "TVector.h"
0015 #include "TVectorD.h"
0016 #include "TMatrix.h"
0017 #include "TMatrixDSymEigen.h"
0018 #include "TMatrixDSym.h"
0019 #include "TMatrixTSym.h"
0020 
0021 #include "AnalysisDataFormats/TopObjects/interface/TtHadEvtSolution.h"
0022 #include "DataFormats/PatCandidates/interface/Jet.h"
0023 
0024 const double PI = 3.14159265;
0025 
0026 class TtHadLRSignalSelObservables {
0027 public:
0028   TtHadLRSignalSelObservables();
0029   ~TtHadLRSignalSelObservables();
0030 
0031   void operator()(TtHadEvtSolution&);
0032 
0033 private:
0034   // compare two jets in ET
0035   struct CompareET {
0036     bool operator()(const pat::Jet& j1, const pat::Jet& j2) const { return j1.et() > j2.et(); }
0037   };
0038 
0039   CompareET EtComparator;
0040 
0041   // compare two jets in bdisc
0042   struct CompareBdisc {
0043     bool operator()(const pat::Jet& j1, const pat::Jet& j2) const {
0044       return j1.bDiscriminator("trackCountingJetTags") > j2.bDiscriminator("trackCountingJetTags");
0045     }
0046   };
0047 
0048   CompareBdisc BdiscComparator;
0049 
0050   // compare two double
0051   struct CompareDouble {
0052     bool operator()(double j1, double j2) const { return j1 > j2; }
0053   };
0054 
0055   CompareDouble dComparator;
0056 
0057   std::vector<std::pair<unsigned int, double> > evtselectVarVal;
0058 };
0059 
0060 #endif