File indexing completed on 2024-04-06 12:31:15
0001 #ifndef TtSemiLRSignalSelObservables_h
0002 #define TtSemiLRSignalSelObservables_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 "TVector3.h"
0016 #include "TVectorD.h"
0017
0018 #include "TMatrix.h"
0019 #include "TMatrixDSymEigen.h"
0020 #include "TMatrixDSym.h"
0021 #include "TMatrixTSym.h"
0022
0023 #include "AnalysisDataFormats/TopObjects/interface/TtSemiEvtSolution.h"
0024 #include "TopQuarkAnalysis/TopTools/interface/MEzCalculator.h"
0025 #include "DataFormats/PatCandidates/interface/Jet.h"
0026
0027 const double PI = 3.14159265;
0028
0029 class TtSemiLRSignalSelObservables {
0030 public:
0031 TtSemiLRSignalSelObservables();
0032 ~TtSemiLRSignalSelObservables();
0033
0034 void operator()(TtSemiEvtSolution&, const std::vector<pat::Jet>&);
0035
0036 private:
0037 std::vector<std::pair<unsigned int, double> > evtselectVarVal;
0038
0039
0040 struct CompareET {
0041 bool operator()(const pat::Jet& j1, const pat::Jet& j2) const { return j1.et() > j2.et(); }
0042 };
0043
0044 CompareET EtComparator;
0045
0046
0047 struct CompareBdisc {
0048 bool operator()(const pat::Jet& j1, const pat::Jet& j2) const {
0049 return j1.bDiscriminator("trackCountingJetTags") > j2.bDiscriminator("trackCountingJetTags");
0050 }
0051 };
0052
0053 CompareBdisc BdiscComparator;
0054
0055
0056 struct CompareDouble {
0057 bool operator()(double j1, double j2) const { return j1 > j2; }
0058 };
0059
0060 CompareDouble dComparator;
0061 };
0062
0063 #endif