11 if (
cfg.exists(
"match")) {
17 if (
cfg.exists(
"jetCorrectionLevel")) {
22 produces<std::vector<std::pair<reco::CompositeCandidate, std::vector<int> > > >();
40 std::vector<std::vector<int> > matchVec;
45 matchVec = *matchHandle;
47 std::vector<int> dummyMatch;
48 for (
unsigned int i = 0;
i < 4; ++
i)
49 dummyMatch.push_back(-1);
50 matchVec.push_back(dummyMatch);
54 std::unique_ptr<std::vector<std::pair<reco::CompositeCandidate, std::vector<int> > > > pOut(
56 std::unique_ptr<int> pKey(
new int);
64 unsigned int idMatch = 0;
65 typedef std::vector<std::vector<int> >::iterator MatchVecIterator;
66 for (MatchVecIterator
match = matchVec.begin();
match != matchVec.end(); ++
match) {
71 pOut->push_back(std::make_pair(
hypo(), *
match));
96 edm::LogInfo(
"TtFullHypothesis") <<
"no neutrinos for gen match" << std::endl;
100 edm::LogInfo(
"TtFullHypothesis") <<
"no neutrinos for kin solution" << std::endl;
134 addFourMomenta.
set(hyp);
146 return std::make_unique<reco::ShallowClonePtrCandidate>(
std::unique_ptr< reco::LeafCandidate > recNu
candidates needed for the genmatch hypothesis
std::unique_ptr< reco::ShallowClonePtrCandidate > leptonBar_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
static const std::string WMinus
void set(reco::Candidate &c) const
set up a candidate
static const std::string Nu
virtual void buildKey()=0
build the event hypothesis key
static const std::string WPlus
int key() const
return key
bool getByToken(EDGetToken token, Handle< PROD > &result) const
const Point & vertex() const override
vertex position (overwritten by PF...)
static const std::string B
static const std::string Top
const LorentzVector & p4() const final
four-momentum Lorentz vector
static const std::string Top
static const std::string TopBar
static const std::string WMinus
static const std::string LepBar
edm::EDGetTokenT< std::vector< pat::Jet > > jetsToken_
Jet correctedJet(const std::string &level, const std::string &flavor="none", const std::string &set="") const
void addDaughter(const Candidate &, const std::string &s="")
add a clone of the passed candidate as daughter
void resetCandidates()
reset candidate pointers before hypo build process
reco::CompositeCandidate hypo()
return event hypothesis
static const std::string WPlus
Log< level::Info, false > LogInfo
std::unique_ptr< reco::ShallowClonePtrCandidate > neutrino_
static const std::string TopBar
std::unique_ptr< reco::ShallowClonePtrCandidate > neutrinoBar_
edm::EDGetTokenT< std::vector< std::vector< int > > > matchToken_
input label for all necessary collections
virtual void buildHypo(edm::Event &evt, const edm::Handle< std::vector< pat::Electron > > &elecs, const edm::Handle< std::vector< pat::Muon > > &mus, const edm::Handle< std::vector< pat::Jet > > &jets, const edm::Handle< std::vector< pat::MET > > &mets, std::vector< int > &match, const unsigned int iComb)=0
build event hypothesis from the reco objects of a semi-leptonic event
edm::EDGetTokenT< std::vector< pat::Electron > > elecsToken_
void produce(edm::Event &, const edm::EventSetup &) override
produce the event hypothesis as CompositeCandidate and Key
std::unique_ptr< reco::LeafCandidate > recNuBar
std::string jetCorrectionLevel_
edm::EDGetTokenT< std::vector< pat::MET > > metsToken_
static const std::string BBar
std::unique_ptr< reco::ShallowClonePtrCandidate > lepton_
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
std::unique_ptr< reco::ShallowClonePtrCandidate > b_
std::unique_ptr< reco::ShallowClonePtrCandidate > makeCandidate(const edm::Handle< C > &handle, const int &idx)
use one object in a collection to set a ShallowClonePtrCandidate
TtFullLepHypothesis(const edm::ParameterSet &)
default constructor
static const std::string NuBar
static const std::string Lep
int charge() const final
electric charge
edm::EDGetTokenT< std::vector< pat::Muon > > musToken_
std::unique_ptr< reco::ShallowClonePtrCandidate > bBar_