AnalysisDataFormats
TopObjects
src
TtSemiLepEvtPartons.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/TtSemiLepEvtPartons.h
"
5
6
TtSemiLepEvtPartons::TtSemiLepEvtPartons
(
const
std::vector<std::string>&
partonsToIgnore
) {
7
// default: use all partons
8
for
(
unsigned
int
i
= 0;
i
< 4;
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
) ==
"LightQ"
)
13
ignorePartons_
[
LightQ
] =
true
;
14
else
if
((*
str
) ==
"LightQBar"
)
15
ignorePartons_
[
LightQBar
] =
true
;
16
else
if
((*
str
) ==
"HadB"
)
17
ignorePartons_
[
HadB
] =
true
;
18
else
if
((*
str
) ==
"LepB"
)
19
ignorePartons_
[
LepB
] =
true
;
20
else
21
throw
cms::Exception
(
"Configuration"
)
22
<<
"The following string in partonsToIgnore is not supported: "
<< (*str) <<
"\n"
;
23
}
24
}
25
26
std::vector<const reco::Candidate*>
TtSemiLepEvtPartons::vec
(
const
TtGenEvent
&
genEvt
) {
27
std::vector<const reco::Candidate*>
vec
;
28
29
if
(
genEvt
.isSemiLeptonic()) {
30
// fill vector with partons from genEvent
31
// (use enum for positions of the partons in the vector)
32
vec
.resize(4);
33
vec
[
LightQ
] =
genEvt
.hadronicDecayQuark() ?
genEvt
.hadronicDecayQuark() :
dummyCandidatePtr
();
34
vec
[
LightQBar
] =
genEvt
.hadronicDecayQuarkBar() ?
genEvt
.hadronicDecayQuarkBar() :
dummyCandidatePtr
();
35
vec
[
HadB
] =
genEvt
.hadronicDecayB() ?
genEvt
.hadronicDecayB() :
dummyCandidatePtr
();
36
vec
[
LepB
] =
genEvt
.leptonicDecayB() ?
genEvt
.leptonicDecayB() :
dummyCandidatePtr
();
37
}
else
{
38
// fill vector with dummy objects if the event is not semi-leptonic ttbar
39
for
(
unsigned
i
= 0;
i
< 4;
i
++)
40
vec
.push_back(
dummyCandidatePtr
());
41
}
42
43
// erase partons from vector if they where chosen to be ignored
44
prune
(
vec
);
45
46
return
vec
;
47
}
TtSemiLepEvtPartons::vec
std::vector< const reco::Candidate * > vec(const TtGenEvent &genEvt) override
return vector of partons in the order defined in the corresponding enum
Definition:
TtSemiLepEvtPartons.cc:26
mps_fire.i
i
Definition:
mps_fire.py:428
TtSemiLepEvtPartons::LightQBar
Definition:
TtSemiLepEvtPartons.h:25
TtEventPartons::dummyCandidatePtr
reco::Candidate * dummyCandidatePtr() const
return pointer to an empty reco::Candidate
Definition:
TtEventPartons.h:35
TtSemiLepEvtPartons::LepB
Definition:
TtSemiLepEvtPartons.h:25
TtSemiLepEvtPartons::TtSemiLepEvtPartons
TtSemiLepEvtPartons(const std::vector< std::string > &partonsToIgnore=std::vector< std::string >())
default constructor
Definition:
TtSemiLepEvtPartons.cc:6
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
TtGenEvent
Class derived from the TopGenEvent for ttbar events.
Definition:
TtGenEvent.h:18
TtSemiLepEvtPartons.h
str
#define str(s)
Definition:
TestProcessor.cc:53
TtEventPartons::ignorePartons_
std::vector< bool > ignorePartons_
flag partons that were chosen not to be used
Definition:
TtEventPartons.h:43
TtSemiLepEvtPartons::HadB
Definition:
TtSemiLepEvtPartons.h:25
TtFullHadJetPartonMatch_cfi.partonsToIgnore
partonsToIgnore
Definition:
TtFullHadJetPartonMatch_cfi.py:57
TtGenEvent.h
TtSemiLepEvtPartons::LightQ
Definition:
TtSemiLepEvtPartons.h:25
Exception
Definition:
hltDiff.cc:245
Candidate.h
TtGenEvtProducer_cfi.genEvt
genEvt
Definition:
TtGenEvtProducer_cfi.py:7
Generated for CMSSW Reference Manual by
1.8.16