CMS 3D CMS Logo

TtSemiLeptonicEvent.h

Go to the documentation of this file.
00001 #ifndef TopObjects_TtSemiLeptonicEvent_h
00002 #define TopObjects_TtSemiLeptonicEvent_h
00003 
00004 #include "AnalysisDataFormats/TopObjects/interface/TtEvent.h"
00005 
00006 
00007 namespace TtSemiLepDaughter{
00010   static const std::string Nu  ="Nu"  , Lep ="Lep" , LepW="LepW", LepB="LepB", LepTop="LepTop";
00011   static const std::string HadQ="HadQ", HadP="HadP", HadW="HadW", HadB="HadB", HadTop="HadTop"; 
00012 }
00013 
00014 // ----------------------------------------------------------------------
00015 // derived class for: 
00016 //
00017 //  * TtFullLeptonicEvent
00018 //
00019 //  the structure holds information on the leptonic decay channels, 
00020 //  all event hypotheses of different classes (user defined during
00021 //  production) and a reference to the TtGenEvent (if available) 
00022 //  and provides access and administration; the derived class 
00023 //  contains a few additional getters with respect to its base class
00024 // ----------------------------------------------------------------------
00025 
00026 class TtSemiLeptonicEvent: public TtEvent {
00027   
00028  public:
00029 
00031   TtSemiLeptonicEvent(){};
00033   virtual ~TtSemiLeptonicEvent(){};
00034 
00036   const reco::Candidate* hadronicTop(const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : eventHypo  (key,cmb). daughter(TtSemiLepDaughter::HadTop); };
00038   const reco::Candidate* hadronicB  (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : hadronicTop(key,cmb)->daughter(TtSemiLepDaughter::HadB  ); };
00040   const reco::Candidate* hadronicW  (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : hadronicTop(key,cmb)->daughter(TtSemiLepDaughter::HadW  ); };
00042   const reco::Candidate* lightQuarkP(const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : hadronicW  (key,cmb)->daughter(TtSemiLepDaughter::HadP  ); };
00044   const reco::Candidate* lightQuarkQ(const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : hadronicW  (key,cmb)->daughter(TtSemiLepDaughter::HadQ  ); };
00046   const reco::Candidate* leptonicTop(const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : eventHypo  (key,cmb). daughter(TtSemiLepDaughter::LepTop); };
00048   const reco::Candidate* leptonicB  (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : leptonicTop(key,cmb)->daughter(TtSemiLepDaughter::LepB  ); };
00050   const reco::Candidate* leptonicW  (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : leptonicTop(key,cmb)->daughter(TtSemiLepDaughter::LepW  ); };
00052   const reco::Candidate* neutrino   (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : leptonicW  (key,cmb)->daughter(TtSemiLepDaughter::Nu    ); };
00054   const reco::Candidate* lepton     (const HypoClassKey& key, const unsigned& cmb=0) const { return !isHypoValid(key,cmb) ? 0 : leptonicW  (key,cmb)->daughter(TtSemiLepDaughter::Lep   ); };
00055 
00057   const reco::GenParticle* genHadronicTop() const { return (!genEvt_ ? 0 : this->genEvent()->hadronicDecayTop()); };
00059   const reco::GenParticle* genHadronicW()   const { return (!genEvt_ ? 0 : this->genEvent()->hadronicDecayW()); };
00061   const reco::GenParticle* genHadronicB()   const { return (!genEvt_ ? 0 : this->genEvent()->hadronicDecayB()); };
00063   const reco::GenParticle* genHadronicP()   const { return (!genEvt_ ? 0 : this->genEvent()->hadronicDecayQuark()); };
00065   const reco::GenParticle* genHadronicQ()   const { return (!genEvt_ ? 0 : this->genEvent()->hadronicDecayQuarkBar()); };
00067   const reco::GenParticle* genLeptonicTop() const { return (!genEvt_ ? 0 : this->genEvent()->leptonicDecayTop()); };
00069   const reco::GenParticle* genLeptonicW()   const { return (!genEvt_ ? 0 : this->genEvent()->leptonicDecayW()); };
00071   const reco::GenParticle* genLeptonicB()   const { return (!genEvt_ ? 0 : this->genEvent()->leptonicDecayB()); };
00073   const reco::GenParticle* genLepton()      const { return (!genEvt_ ? 0 : this->genEvent()->singleLepton());   };
00075   const reco::GenParticle* genNeutrino()    const { return (!genEvt_ ? 0 : this->genEvent()->singleNeutrino()); };
00076   
00079   void print();
00080 };
00081 
00082 #endif

Generated on Tue Jun 9 17:25:09 2009 for CMSSW by  doxygen 1.5.4