CMS 3D CMS Logo

TtFullLepEvtPartons.cc
Go to the documentation of this file.
3 
5 
6 TtFullLepEvtPartons::TtFullLepEvtPartons(const std::vector<std::string>& partonsToIgnore) {
7  // default: use all partons
8  for (unsigned int i = 0; i < 2; i++)
9  ignorePartons_.push_back(false);
10  // read vector of strings and flag partons to be ignored
11  for (std::vector<std::string>::const_iterator str = partonsToIgnore.begin(); str != partonsToIgnore.end(); ++str) {
12  if ((*str) == "B")
13  ignorePartons_[B] = true;
14  else if ((*str) == "BBar")
15  ignorePartons_[BBar] = true;
16  else
17  throw cms::Exception("Configuration")
18  << "The following string in partonsToIgnore is not supported: " << (*str) << "\n";
19  }
20 }
21 
22 std::vector<const reco::Candidate*> TtFullLepEvtPartons::vec(const TtGenEvent& genEvt) {
23  std::vector<const reco::Candidate*> vec;
24 
25  if (genEvt.isFullLeptonic()) {
26  // fill vector with partons from genEvent
27  // (use enum for positions of the partons in the vector)
28  vec.resize(2);
29  vec[B] = genEvt.b() ? genEvt.b() : dummyCandidatePtr();
30  vec[BBar] = genEvt.bBar() ? genEvt.bBar() : dummyCandidatePtr();
31  } else {
32  // fill vector with dummy objects if the event is not fully-leptonic ttbar
33  for (unsigned i = 0; i < 2; i++)
34  vec.push_back(dummyCandidatePtr());
35  }
36 
37  // erase partons from vector if they where chosen to be ignored
38  prune(vec);
39 
40  return vec;
41 }
mps_fire.i
i
Definition: mps_fire.py:428
TtFullLepEvtPartons::BBar
Definition: TtFullLepEvtPartons.h:25
TtEventPartons::dummyCandidatePtr
reco::Candidate * dummyCandidatePtr() const
return pointer to an empty reco::Candidate
Definition: TtEventPartons.h:35
TtEventPartons::prune
void prune(std::vector< const reco::Candidate * > &vec)
erase partons from vector if they where chosen to be ignored
Definition: TtEventPartons.cc:13
TtFullLepEvtPartons::vec
std::vector< const reco::Candidate * > vec(const TtGenEvent &genEvt) override
return vector of partons in the order defined in the corresponding enum
Definition: TtFullLepEvtPartons.cc:22
TtGenEvent
Class derived from the TopGenEvent for ttbar events.
Definition: TtGenEvent.h:18
str
#define str(s)
Definition: TestProcessor.cc:51
TtEventPartons::ignorePartons_
std::vector< bool > ignorePartons_
flag partons that were chosen not to be used
Definition: TtEventPartons.h:43
TtFullHadJetPartonMatch_cfi.partonsToIgnore
partonsToIgnore
Definition: TtFullHadJetPartonMatch_cfi.py:57
TtGenEvent.h
TtFullLepEvtPartons::B
Definition: TtFullLepEvtPartons.h:25
Exception
Definition: hltDiff.cc:246
Candidate.h
TtFullLepEvtPartons::TtFullLepEvtPartons
TtFullLepEvtPartons(const std::vector< std::string > &partonsToIgnore=std::vector< std::string >())
default constructor
Definition: TtFullLepEvtPartons.cc:6
TtFullLepEvtPartons.h
TtGenEvtProducer_cfi.genEvt
genEvt
Definition: TtGenEvtProducer_cfi.py:7