CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/DataFormats/JetReco/interface/GenJet.h

Go to the documentation of this file.
00001 #ifndef JetReco_GenJet_h
00002 #define JetReco_GenJet_h
00003 
00019 #include "DataFormats/JetReco/interface/Jet.h"
00020 
00021 
00022 namespace reco {
00023   class GenParticle;
00024 
00025 class GenJet : public Jet {
00026 public:
00027   struct Specific {
00028     Specific () :
00029       m_EmEnergy (0),
00030          m_HadEnergy (0),
00031          m_InvisibleEnergy (0),
00032          m_AuxiliaryEnergy (0) {}
00033 
00035     float m_EmEnergy;
00037     float m_HadEnergy;
00039     float m_InvisibleEnergy;
00041     float m_AuxiliaryEnergy;
00042   };
00043 
00045   GenJet() {}
00046 
00048   GenJet(const LorentzVector& fP4, const Point& fVertex, const Specific& fSpecific, 
00049          const Jet::Constituents& fConstituents);
00050   GenJet(const LorentzVector& fP4, const Point& fVertex, const Specific& fSpecific);
00051 
00053   GenJet(const LorentzVector& fP4, const Specific& fSpecific, 
00054          const Jet::Constituents& fConstituents);
00055 
00056   virtual ~GenJet() {};
00058   float emEnergy() const {return m_specific.m_EmEnergy;};
00060   float hadEnergy() const {return m_specific.m_HadEnergy;};
00062   float invisibleEnergy() const {return m_specific.m_InvisibleEnergy;};
00064   float auxiliaryEnergy() const {return m_specific.m_AuxiliaryEnergy;};
00065 
00067   float detectorEta (float fZVertex) const;
00068 
00070   static const GenParticle* genParticle (const reco::Candidate* fConstituent);
00072   virtual const GenParticle* getGenConstituent (unsigned fIndex) const;
00074   virtual std::vector <const GenParticle*> getGenConstituents () const;
00075   
00076   // block accessors
00077 
00078   const Specific& getSpecific () const {return m_specific;}
00079 
00080   
00082   virtual GenJet* clone () const;
00083 
00085   virtual std::string print () const;
00086   
00087 private:
00089   virtual bool overlap( const Candidate & ) const;
00090   
00091   // Data members
00092   //Variables specific to to the GenJet class
00093   Specific m_specific;
00094 };
00095 }
00096 // temporary fix before include_checcker runs globally
00097 #include "DataFormats/JetReco/interface/GenJetCollection.h" //INCLUDECHECKER:SKIP
00098 #endif