1 #ifndef TopObjects_TtEvent_h 2 #define TopObjects_TtEvent_h 33 typedef std::pair<reco::CompositeCandidate, std::vector<int> >
HypoCombPair;
48 std::pair<WDecay::LeptonType, WDecay::LeptonType>
lepDecays()
const {
return lepDecays_; }
62 bool isHypoAvailable(
const HypoClassKey&
key,
const unsigned& cmb=0)
const {
return isHypoClassAvailable(key) ? (cmb<evtHyp_.find(key)->second.size()) :
false; };
66 bool isHypoValid(
const HypoClassKey&
key,
const unsigned& cmb=0)
const {
return isHypoAvailable(key, cmb) ? !eventHypo(key, cmb).roles().empty() :
false; };
82 double genMatchSumPt(
const unsigned& cmb=0)
const {
return (cmb<genMatchSumPt_.size() ? genMatchSumPt_[cmb] : -1.); };
84 double genMatchSumDR(
const unsigned& cmb=0)
const {
return (cmb<genMatchSumDR_.size() ? genMatchSumDR_[cmb] : -1.); };
88 double mvaDisc(
const unsigned& cmb=0)
const {
return (cmb<mvaDisc_.size() ? mvaDisc_[cmb] : -1.); }
90 double fitChi2(
const unsigned& cmb=0)
const {
return (cmb<fitChi2_.size() ? fitChi2_[cmb] : -1.); }
92 double hitFitChi2(
const unsigned& cmb=0)
const {
return (cmb<hitFitChi2_.size() ? hitFitChi2_[cmb] : -1.); }
94 double fitProb(
const unsigned& cmb=0)
const {
return (cmb<fitProb_.size() ? fitProb_[cmb] : -1.); }
96 double hitFitProb(
const unsigned& cmb=0)
const {
return (cmb<hitFitProb_.size() ? hitFitProb_[cmb] : -1.); }
98 double hitFitMT(
const unsigned& cmb=0)
const {
return (cmb<hitFitMT_.size() ? hitFitMT_[cmb] : -1.); }
100 double hitFitSigMT(
const unsigned& cmb=0)
const {
return (cmb<hitFitSigMT_.size() ? hitFitSigMT_[cmb] : -1.); }
148 std::pair<WDecay::LeptonType, WDecay::LeptonType> lepDecays_;
153 std::map<HypoClassKey, std::vector<HypoCombPair> >
evtHyp_;
void setMvaDiscriminators(const std::vector< double > &val)
set mva discriminant values of kMVADisc hypothesis
std::map< HypoClassKey, int > nJetsConsidered_
number of jets considered when building the hypotheses
bool isHypoAvailable(const HypoClassKey &key, const unsigned &cmb=0) const
check if hypothesis 'cmb' is available within the hypothesis class
HypoClassKey
supported classes of event hypotheses
void setHitFitSigMT(const std::vector< double > &val)
set fitted top mass uncertainty of kHitFit hypothesis
bool isHypoAvailable(const std::string &key, const unsigned &cmb=0) const
std::vector< double > genMatchSumDR_
result of gen match
TtEvent()
empty constructor
const edm::RefProd< TtGenEvent > & genEvent() const
get TtGenEvent
const math::XYZTLorentzVector * topPair() const
get combined 4-vector of top and topBar from the TtGenEvent
unsigned int numberOfAvailableHypos(const std::string &key) const
return number of available hypotheses within a given hypothesis class
void setMvaMethod(const std::string &name)
set label of mva method for kMVADisc hypothesis
std::vector< double > hitFitChi2_
void setGenMatchSumDR(const std::vector< double > &val)
set sum dr of kGenMatch hypothesis
void setFitChi2(const std::vector< double > &val)
set chi2 of kKinFit hypothesis
bool isHypoClassAvailable(const std::string &key) const
check if hypothesis class 'key' was added to the event structure
std::pair< WDecay::LeptonType, WDecay::LeptonType > lepDecays() const
get leptonic decay channels
unsigned int numberOfAvailableHypoClasses() const
return number of available hypothesis classes
std::vector< int > jetLeptonCombination(const HypoClassKey &key, const unsigned &cmb=0) const
return the vector of jet lepton combinatorics for a given hypothesis and class
void setLepDecays(const WDecay::LeptonType &lepDecTop1, const WDecay::LeptonType &lepDecTop2)
set leptonic decay channels
std::pair< reco::CompositeCandidate, std::vector< int > > HypoCombPair
pair of hypothesis and lepton jet combinatorics for a given hypothesis
std::vector< double > mvaDisc_
MVA discriminants.
bool isHypoValid(const HypoClassKey &key, const unsigned &cmb=0) const
check if hypothesis 'cmb' within the hypothesis class was valid; if not it lead to an empty Composite...
U second(std::pair< T, U > const &p)
double fitChi2(const unsigned &cmb=0) const
return the chi2 of the kinematic fit of hypothesis 'cmb' if available; -1 else
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
virtual ~TtEvent()
default destructor
double genMatchSumDR(const unsigned &cmb=0) const
return the sum dr of the generator match if available; -1 else
int numberOfConsideredJets(const std::string &key) const
return number of jets that were considered when building a given hypothesis
std::vector< double > fitProb_
result of kinematic fit
std::string mvaMethod_
label of the MVA method
void setGenMatchSumPt(const std::vector< double > &val)
set sum pt of kGenMatch hypothesis
double hitFitMT(const unsigned &cmb=0) const
return the hitfit top mass of hypothesis 'cmb' if available; -1 else
void setHitFitMT(const std::vector< double > &val)
set fitted top mass of kHitFit hypothesis
void setHitFitChi2(const std::vector< double > &val)
set chi2 of kHitFit hypothesis
std::vector< double > genMatchSumPt_
result of gen match
std::vector< double > hitFitSigMT_
void setFitProb(const std::vector< double > &val)
set fit probability of kKinFit hypothesis
void setGenEvent(const edm::Handle< TtGenEvent > &evt)
set TtGenEvent
std::vector< double > hitFitMT_
result of hitfit
a lightweight map for selection type string label and enum value
void addEventHypo(const HypoClassKey &key, const HypoCombPair &hyp)
add new hypotheses
double mvaDisc(const unsigned &cmb=0) const
return the mva discriminant value of hypothesis 'cmb' if available; -1 else
std::vector< double > hitFitProb_
const reco::CompositeCandidate & eventHypo(const HypoClassKey &key, const unsigned &cmb=0) const
Base class to hold information for ttbar event interpretation.
bool isHypoClassAvailable(const HypoClassKey &key) const
check if hypothesis class 'key' was added to the event structure
int correspondingHypo(const std::string &key1, const unsigned &hyp1, const std::string &key2) const
return the hypothesis in hypothesis class 'key2', which corresponds to hypothesis 'hyp1' in hypothesi...
edm::RefProd< TtGenEvent > genEvt_
reference to TtGenEvent (has to be kept in the event!)
double hitFitChi2(const unsigned &cmb=0) const
return the hitfit chi2 of hypothesis 'cmb' if available; -1 else
void setNumberOfConsideredJets(const HypoClassKey &key, const unsigned int nJets)
set number of jets considered when building a given hypothesis
double fitProb(const unsigned &cmb=0) const
return the fit probability of hypothesis 'cmb' if available; -1 else
bool isHypoValid(const std::string &key, const unsigned &cmb=0) const
check if hypothesis 'cmb' within the hypothesis class was valid; if not it lead to an empty Composite...
double genMatchSumPt(const unsigned &cmb=0) const
return the sum pt of the generator match if available; -1 else
std::vector< double > fitChi2_
result of kinematic fit
double hitFitProb(const unsigned &cmb=0) const
return the hitfit probability of hypothesis 'cmb' if available; -1 else
const reco::Candidate * topPair(const std::string &key, const unsigned &cmb=0) const
get combined 4-vector of top and topBar of the given hypothesis
std::string mvaMethod() const
return the label of the mva method in use for the jet parton association (if kMVADisc is not availabl...
int numberOfConsideredJets(const HypoClassKey &key) const
return number of jets that were considered when building a given hypothesis
std::map< HypoClassKey, std::vector< HypoCombPair > > evtHyp_
std::vector< int > jetLeptonCombination(const std::string &key, const unsigned &cmb=0) const
return the vector of jet lepton combinatorics for a given hypothesis and class
const reco::Candidate * topPair(const HypoClassKey &key, const unsigned &cmb=0) const
get combined 4-vector of top and topBar of the given hypothesis
T first(std::pair< T, U > const &p)
void setHitFitProb(const std::vector< double > &val)
set fit probability of kHitFit hypothesis
unsigned int numberOfAvailableHypos(const HypoClassKey &key) const
return number of available hypotheses within a given hypothesis class
double hitFitSigMT(const unsigned &cmb=0) const
return the hitfit top mass uncertainty of hypothesis 'cmb' if available; -1 else