Go to the documentation of this file.00001 #include <string>
00002 #include <vector>
00003
00004 #include "FWCore/Framework/interface/EDProducer.h"
00005 #include "FWCore/Framework/interface/Event.h"
00006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00007 #include "FWCore/Utilities/interface/InputTag.h"
00008
00009 #include "DataFormats/Candidate/interface/Candidate.h"
00010 #include "TopQuarkAnalysis/TopKinFitter/interface/TtFullLepKinSolver.h"
00011
00012 class TtDilepLRSignalSelObservables;
00013
00014 class TtDilepEvtSolutionMaker : public edm::EDProducer {
00015
00016 public:
00017
00018 explicit TtDilepEvtSolutionMaker(const edm::ParameterSet & iConfig);
00019 ~TtDilepEvtSolutionMaker();
00020
00021 virtual void beginJob();
00022 virtual void produce(edm::Event & iEvent, const edm::EventSetup & iSetup);
00023
00024 private:
00025
00026
00027 inline bool PTComp(const reco::Candidate*, const reco::Candidate*) const;
00028 inline bool LepDiffCharge(const reco::Candidate* , const reco::Candidate*) const;
00029 inline bool HasPositiveCharge(const reco::Candidate*) const;
00030
00031 private:
00032
00033 edm::InputTag electronSource_;
00034 edm::InputTag muonSource_;
00035 edm::InputTag tauSource_;
00036 edm::InputTag metSource_;
00037 edm::InputTag jetSource_;
00038 edm::InputTag evtSource_;
00039 int jetCorrScheme_;
00040 unsigned int nrCombJets_;
00041 bool matchToGenEvt_, calcTopMass_, useMCforBest_;
00042 bool eeChannel_, emuChannel_, mumuChannel_, etauChannel_, mutauChannel_, tautauChannel_;
00043 double tmassbegin_, tmassend_, tmassstep_;
00044 std::vector<double> nupars_;
00045
00046 TtDilepLRSignalSelObservables* myLRSignalSelObservables;
00047 TtFullLepKinSolver* solver;
00048 };
00049
00050 inline bool TtDilepEvtSolutionMaker::PTComp(const reco::Candidate* l1, const reco::Candidate* l2) const
00051 {
00052 return (l1->pt() > l2->pt());
00053 }
00054
00055 inline bool TtDilepEvtSolutionMaker::LepDiffCharge(const reco::Candidate* l1, const reco::Candidate* l2) const
00056 {
00057 return (l1->charge() != l2->charge());
00058 }
00059
00060 inline bool TtDilepEvtSolutionMaker::HasPositiveCharge(const reco::Candidate* l) const
00061 {
00062 return (l->charge() > 0);
00063 }
00064