AnalysisDataFormats
TopObjects
src
TtFullLepEvtPartons.cc
Go to the documentation of this file.
1
#include "
DataFormats/Candidate/interface/Candidate.h
"
2
#include "
AnalysisDataFormats/TopObjects/interface/TtGenEvent.h
"
3
4
#include "
AnalysisDataFormats/TopObjects/interface/TtFullLepEvtPartons.h
"
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:52
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:245
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
Generated for CMSSW Reference Manual by
1.8.16