12 : jetSourceToken_( jetSourceToken )
13 , genEvtToken_( iC.consumes<
TtGenEvent>(
edm::InputTag(
"genEvt" ) ) )
23 std::vector< TtDilepLRSignalSelObservables::IntBoolPair >
34 bool matchBbar =
false;
35 bool matchLeptPos =
false;
36 bool matchLeptNeg =
false;
66 ( ((solution.
getWmDecay()==
"electron") && (
id==11))
67 || ((solution.
getWmDecay()==
"muon") && (
id==13)) )
72 ( ((solution.
getWpDecay()==
"electron")&& (
id==-11))
73 || ((solution.
getWpDecay()==
"muon") && (
id==-13)) )
85 matchB1= ( (dr1<0.4) || (dr2<0.4));
88 matchB = ( (dr1<0.4) );
98 matchBbar = ( (dr2<0.4) );
99 matchB2 = ( (dr1<0.4) || (dr2<0.4));
166 double mass = pp.mass();
173 std::vector <pat::Jet> jet3;
174 for (
int i=0;
i<(
int)jets->size();++
i) {
177 double jet1Ratio = 0., jet2Ratio = 0.;
179 jet1Ratio = jet3[0].et()/solution.
getJetB().
et();
194 (
double v1,
double v2,
int obsNbr, std::vector< IntDblPair > & varList,
195 bool match1,
bool match2, std::vector< IntBoolPair > & matchList)
201 matchList.push_back(
IntBoolPair(obsNbr+1, match2));
207 matchList.push_back(
IntBoolPair(obsNbr+1, match1));
214 while (deltaPhi >
M_PI) deltaPhi -= 2*
M_PI;
215 while (deltaPhi <= -
M_PI) deltaPhi += 2*
M_PI;
pat::Jet getCalJetBbar() const
const reco::GenParticle * getGenLepm() const
double delta(double phi1, double phi2)
const reco::GenParticle * b() const
return b quark if available; 0 else
int pdgId() const final
PDG identifier.
bool isSemiLeptonic(bool excludeTauLeptons=false) const
check if the event can be classified as semi-laptonic
void fillMinMax(double v1, double v2, int obsNbr, std::vector< IntDblPair > &varList, bool match1, bool match2, std::vector< IntBoolPair > &matchList)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::pair< unsigned int, bool > IntBoolPair
std::vector< IntBoolPair > operator()(TtDilepEvtSolution &, const edm::Event &iEvent, bool matchOnly=false)
const reco::GenParticle * bBar() const
return anti-b quark if available; 0 else
const LorentzVector & p4() const
four-momentum Lorentz vector
std::string getWmDecay() const
std::string getWpDecay() const
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
bool isFullLeptonic(bool excludeTauLeptons=false) const
check if the event can be classified as full leptonic
Class derived from the TopGenEvent for ttbar events.
void setLRSignalEvtObservables(const std::vector< std::pair< unsigned int, double > > &)
std::pair< unsigned int, double > IntDblPair
double et() const final
transverse energy
reco::Particle getLeptNeg() const
pat::Jet getJetBbar() const
Abs< T >::type abs(const T &t)
edm::EDGetTokenT< TtGenEvent > genEvtToken_
const LorentzVector & p4() const final
four-momentum Lorentz vector
TtDilepLRSignalSelObservables(edm::ConsumesCollector &&iC, const edm::EDGetTokenT< std::vector< pat::Jet > > &jetSourceToken)
int partonFlavour() const
return the parton-based flavour of the jet
reco::Particle getLeptPos() const
std::vector< IntBoolPair > evtselectVarMatch
std::vector< IntDblPair > evtselectVarVal
int numberOfBQuarks(bool fromTopQuark=true) const
return number of b quarks in the decay chain
edm::EDGetTokenT< std::vector< pat::Jet > > jetSourceToken_
pat::Jet getCalJetB() const
const reco::GenParticle * getGenLepp() const
et
define resolution functions of each parameter
~TtDilepLRSignalSelObservables()
bool isTtBar() const
check if the event can be classified as ttbar
const reco::GenParticle * singleLepton(bool excludeTauLeptons=false) const
return single lepton if available; 0 else