CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/DataFormats/JetReco/interface/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 
00033     typedef CaloTowerPtr ConstituentTypePtr;
00034     typedef CaloTowerFwdPtr ConstituentTypeFwdPtr;
00035 
00036 
00037   struct Specific {
00038     Specific () :
00039       mMaxEInEmTowers (0),
00040          mMaxEInHadTowers (0),
00041          mHadEnergyInHO (0),
00042          mHadEnergyInHB (0),
00043          mHadEnergyInHF (0),
00044          mHadEnergyInHE (0),
00045          mEmEnergyInEB (0),
00046          mEmEnergyInEE (0),
00047          mEmEnergyInHF (0),
00048          mEnergyFractionHadronic(0),
00049          mEnergyFractionEm (0),
00050          mTowersArea (0)
00051     {}
00052     
00054     float mMaxEInEmTowers;
00056     float mMaxEInHadTowers;
00058     float mHadEnergyInHO;
00060     float mHadEnergyInHB;
00062     float mHadEnergyInHF;
00064     float mHadEnergyInHE;
00066     float mEmEnergyInEB;
00068     float mEmEnergyInEE;
00070     float mEmEnergyInHF;
00072     float mEnergyFractionHadronic;
00074     float mEnergyFractionEm;
00076     float mTowersArea;
00077   };
00078   
00080   CaloJet() {}
00081   
00083   CaloJet(const LorentzVector& fP4, const Point& fVertex, const Specific& fSpecific, 
00084           const Jet::Constituents& fConstituents);
00085 
00087   CaloJet(const LorentzVector& fP4, const Point& fVertex, const Specific& fSpecific);
00088 
00090   CaloJet(const LorentzVector& fP4, const Specific& fSpecific, 
00091           const Jet::Constituents& fConstituents);
00092 
00093   
00094   virtual ~CaloJet() {};
00095   
00097   float maxEInEmTowers() const {return m_specific.mMaxEInEmTowers;}
00099   float maxEInHadTowers() const {return m_specific.mMaxEInHadTowers;}
00101   float energyFractionHadronic () const {return m_specific.mEnergyFractionHadronic;}
00103   float emEnergyFraction() const {return m_specific.mEnergyFractionEm;}
00105   float hadEnergyInHB() const {return m_specific.mHadEnergyInHB;}
00107   float hadEnergyInHO() const {return m_specific.mHadEnergyInHO;}
00109   float hadEnergyInHE() const {return m_specific.mHadEnergyInHE;}
00111   float hadEnergyInHF() const {return m_specific.mHadEnergyInHF;}
00113   float emEnergyInEB() const {return m_specific.mEmEnergyInEB;}
00115   float emEnergyInEE() const {return m_specific.mEmEnergyInEE;}
00117   float emEnergyInHF() const {return m_specific.mEmEnergyInHF;}
00119   float towersArea() const {return m_specific.mTowersArea;}
00121   int n90() const {return nCarrying (0.9);}
00123   int n60() const {return nCarrying (0.6);}
00124 
00126     //  float physicsEtaQuick (float fZVertex) const;
00128     //float physicsEta (float fZVertex) const {return physicsEtaQuick (fZVertex);}
00130     //LorentzVector physicsP4 (float fZVertex) const;
00132   LorentzVector physicsP4 (const Particle::Point &vertex) const;
00134   LorentzVector detectorP4 () const;
00135   
00137     //float physicsEtaDetailed (float fZVertex) const;
00138 
00140     //float detectorEta () const {return eta();}
00141 
00142 
00144   virtual CaloTowerPtr getCaloConstituent (unsigned fIndex) const;
00146   virtual std::vector <CaloTowerPtr> getCaloConstituents () const;
00147   
00148   // block accessors
00149   
00150   const Specific& getSpecific () const {return m_specific;}
00151 
00153   virtual CaloJet* clone () const;
00154 
00156   virtual std::string print () const;
00157 
00159   std::vector<CaloTowerDetId> getTowerIndices() const;
00160  private:
00162   virtual bool overlap( const Candidate & ) const;
00163   
00164   //Variables specific to to the CaloJet class
00165   Specific m_specific;
00166 };
00167 }
00168 // temporary fix before include_checcker runs globally
00169 #include "DataFormats/JetReco/interface/CaloJetCollection.h" //INCLUDECHECKER:SKIP
00170 #endif