CMS 3D CMS Logo

CaloJet.h

Go to the documentation of this file.
00001 #ifndef JetReco_CaloJet_h
00002 #define JetReco_CaloJet_h
00003 
00025 #include "DataFormats/JetReco/interface/Jet.h"
00026 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
00027 
00028 
00029 namespace reco {
00030 class CaloJet : public Jet {
00031  public:
00032   struct Specific {
00033     Specific () :
00034       mMaxEInEmTowers (0),
00035          mMaxEInHadTowers (0),
00036          mHadEnergyInHO (0),
00037          mHadEnergyInHB (0),
00038          mHadEnergyInHF (0),
00039          mHadEnergyInHE (0),
00040          mEmEnergyInEB (0),
00041          mEmEnergyInEE (0),
00042          mEmEnergyInHF (0),
00043          mEnergyFractionHadronic(0),
00044          mEnergyFractionEm (0),
00045          mTowersArea (0)
00046     {}
00047     
00049     float mMaxEInEmTowers;
00051     float mMaxEInHadTowers;
00053     float mHadEnergyInHO;
00055     float mHadEnergyInHB;
00057     float mHadEnergyInHF;
00059     float mHadEnergyInHE;
00061     float mEmEnergyInEB;
00063     float mEmEnergyInEE;
00065     float mEmEnergyInHF;
00067     float mEnergyFractionHadronic;
00069     float mEnergyFractionEm;
00071     float mTowersArea;
00072   };
00073   
00075   CaloJet() {}
00076   
00078   CaloJet(const LorentzVector& fP4, const Point& fVertex, const Specific& fSpecific, 
00079           const Jet::Constituents& fConstituents);
00080 
00082   CaloJet(const LorentzVector& fP4, const Point& fVertex, const Specific& fSpecific);
00083 
00085   CaloJet(const LorentzVector& fP4, const Specific& fSpecific, 
00086           const Jet::Constituents& fConstituents);
00087 
00088   
00089   virtual ~CaloJet() {};
00090   
00092   float maxEInEmTowers() const {return m_specific.mMaxEInEmTowers;}
00094   float maxEInHadTowers() const {return m_specific.mMaxEInHadTowers;}
00096   float energyFractionHadronic () const {return m_specific.mEnergyFractionHadronic;}
00098   float emEnergyFraction() const {return m_specific.mEnergyFractionEm;}
00100   float hadEnergyInHB() const {return m_specific.mHadEnergyInHB;}
00102   float hadEnergyInHO() const {return m_specific.mHadEnergyInHO;}
00104   float hadEnergyInHE() const {return m_specific.mHadEnergyInHE;}
00106   float hadEnergyInHF() const {return m_specific.mHadEnergyInHF;}
00108   float emEnergyInEB() const {return m_specific.mEmEnergyInEB;}
00110   float emEnergyInEE() const {return m_specific.mEmEnergyInEE;}
00112   float emEnergyInHF() const {return m_specific.mEmEnergyInHF;}
00114   float towersArea() const {return m_specific.mTowersArea;}
00116   int n90() const {return nCarrying (0.9);}
00118   int n60() const {return nCarrying (0.6);}
00119 
00121   float physicsEtaQuick (float fZVertex) const;
00123   float physicsEta (float fZVertex) const {return physicsEtaQuick (fZVertex);}
00125   LorentzVector physicsP4 (float fZVertex) const;
00126   
00128   float physicsEtaDetailed (float fZVertex) const;
00129 
00131   float detectorEta () const {return eta();}
00132 
00133 
00135   virtual CaloTowerPtr getCaloConstituent (unsigned fIndex) const;
00137   virtual std::vector <CaloTowerPtr> getCaloConstituents () const;
00138   
00139   // block accessors
00140   
00141   const Specific& getSpecific () const {return m_specific;}
00142 
00144   virtual CaloJet* clone () const;
00145 
00147   virtual std::string print () const;
00148 
00150   std::vector<CaloTowerDetId> getTowerIndices() const;
00151  private:
00153   virtual bool overlap( const Candidate & ) const;
00154   
00155   //Variables specific to to the CaloJet class
00156   Specific m_specific;
00157 };
00158 }
00159 // temporary fix before include_checcker runs globally
00160 #include "DataFormats/JetReco/interface/CaloJetCollection.h" //INCLUDECHECKER:SKIP
00161 #endif

Generated on Tue Jun 9 17:31:02 2009 for CMSSW by  doxygen 1.5.4