00001 #ifndef TopObjects_TtFullLeptonicEvent_h
00002 #define TopObjects_TtFullLeptonicEvent_h
00003
00004 #include "AnalysisDataFormats/TopObjects/interface/TtEvent.h"
00005
00006 namespace TtFullLepDaughter{
00009 static const std::string Nu ="Nu" , LepBar="LepBar", WPlus ="WPlus" , B ="B" , Top ="Top";
00010 static const std::string NuBar="NuBar", Lep ="Lep" , WMinus="WMinus", BBar="BBar", TopBar="TopBar";
00011 }
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 class TtFullLeptonicEvent: public TtEvent {
00026
00027 public:
00028
00030 TtFullLeptonicEvent(){};
00032 virtual ~TtFullLeptonicEvent(){};
00033
00035 const reco::Candidate* top (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : eventHypo(key,cmb). daughter(TtFullLepDaughter::Top ); };
00037 const reco::Candidate* b (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : top (key,cmb)->daughter(TtFullLepDaughter::B ); };
00039 const reco::Candidate* wPlus (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : top (key,cmb)->daughter(TtFullLepDaughter::WPlus ); };
00041 const reco::Candidate* leptonBar (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : wPlus (key,cmb)->daughter(TtFullLepDaughter::LepBar); };
00043 const reco::Candidate* neutrino (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : wPlus (key,cmb)->daughter(TtFullLepDaughter::Nu ); };
00045 const reco::Candidate* topBar (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : eventHypo(key,cmb). daughter(TtFullLepDaughter::TopBar); };
00047 const reco::Candidate* bBar (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : topBar (key,cmb)->daughter(TtFullLepDaughter::BBar ); };
00049 const reco::Candidate* wMinus (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : topBar (key,cmb)->daughter(TtFullLepDaughter::WMinus); };
00051 const reco::Candidate* lepton (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : wMinus (key,cmb)->daughter(TtFullLepDaughter::Lep ); };
00053 const reco::Candidate* neutrinoBar(const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : wMinus (key,cmb)->daughter(TtFullLepDaughter::NuBar ); };
00054
00056 const reco::GenParticle* genTop () const { return (!genEvt_ ? 0 : this->genEvent()->top() ); };
00058 const reco::GenParticle* genB () const { return (!genEvt_ ? 0 : this->genEvent()->b() ); };
00060 const reco::GenParticle* genWPlus () const { return (!genEvt_ ? 0 : this->genEvent()->wPlus() ); };
00062 const reco::GenParticle* genLeptonBar () const { return (!genEvt_ ? 0 : this->genEvent()->leptonBar() ); };
00064 const reco::GenParticle* genNeutrino () const { return (!genEvt_ ? 0 : this->genEvent()->neutrino() ); };
00066 const reco::GenParticle* genTopBar () const { return (!genEvt_ ? 0 : this->genEvent()->topBar() ); };
00068 const reco::GenParticle* genBBar () const { return (!genEvt_ ? 0 : this->genEvent()->bBar() ); };
00070 const reco::GenParticle* genWMinus () const { return (!genEvt_ ? 0 : this->genEvent()->wMinus() ); };
00072 const reco::GenParticle* genLepton () const { return (!genEvt_ ? 0 : this->genEvent()->lepton() ); };
00074 const reco::GenParticle* genNeutrinoBar() const { return (!genEvt_ ? 0 : this->genEvent()->neutrinoBar()); };
00075
00078 void print();
00079 };
00080
00081 #endif