CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10/src/TopQuarkAnalysis/TopEventProducers/interface/TtDilepEvtSolutionMaker.h

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     // next methods are avoidable but they make the code legible
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