CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/SimDataFormats/CaloHit/interface/CaloHit.h

Go to the documentation of this file.
00001 #ifndef SimDataFormats_CaloHit_H
00002 #define SimDataFormats_CaloHit_H
00003 
00004 // File: CaloHit.h
00005 // Hit class for QIE analysis 
00007 
00008 #include <boost/cstdint.hpp>
00009 #include <iostream>
00010 #include <cmath>
00011 
00012 class CaloHit {
00013 
00014 public:
00015 
00016   CaloHit(int deti, int layi, double ei, double etai, double phii, double timi,
00017           uint32_t idi=0);
00018   CaloHit();
00019   CaloHit(const CaloHit&);
00020   virtual ~CaloHit();
00021 
00022   int          det()    const {return deth;}
00023   int          layer()  const {return layerh;}
00024   double       e()      const {return eh;}
00025   double       eta()    const {return etah;}
00026   double       phi()    const {return phih;}
00027   double       t()      const {return timeh;}
00028   uint32_t     id()     const {return idh;}
00029   void         setId(const uint32_t idi) {idh = idi;}
00030 
00031   bool operator<( const CaloHit& hit) const;
00032  
00033 private:
00034 
00035   int          deth, layerh;
00036   double       eh, etah, phih, timeh;
00037   uint32_t     idh;
00038 
00039 };
00040 
00041 class CaloHitMore {
00042 
00043 public:
00044 
00045   bool operator() (const CaloHit* a, const CaloHit* b) {
00046     return (a->t() < b->t());
00047   }
00048 };
00049 
00050 class CaloHitIdMore {
00051 
00052 public:
00053 
00054   bool operator() (const CaloHit* a, const CaloHit* b) {
00055     if (a->id() < b->id()) {
00056       return true;
00057     } else if (a->id() > b->id()) {
00058       return false;
00059     } else {
00060       return (a->t() < b->t());
00061     }
00062   }
00063 };
00064 
00065 class CaloHitELess {
00066 
00067 public:
00068 
00069   bool operator() (const CaloHit* a, const CaloHit* b) {
00070     return (a->e() > b->e());
00071   }
00072 };
00073 
00074 class CaloHitEtLess {
00075 
00076 public:
00077 
00078   bool operator() (const CaloHit* a, const CaloHit* b) {
00079     return (a->e()/std::cosh(a->eta()) > b->e()/std::cosh(b->eta()));
00080   }
00081 };
00082 
00083 std::ostream& operator<<(std::ostream&, const CaloHit&);
00084 #endif