Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:40

0001 #ifndef SimDataFormats_CaloHit_H
0002 #define SimDataFormats_CaloHit_H
0003 ///////////////////////////////////////////////////////////////////////////////
0004 // File: CaloHit.h
0005 // Hit class for QIE analysis
0006 ///////////////////////////////////////////////////////////////////////////////
0007 
0008 #include <iostream>
0009 #include <cmath>
0010 #include <cstdint>
0011 
0012 class CaloHit {
0013 public:
0014   CaloHit(int deti, int layi, double ei, double etai, double phii, double timi, uint32_t idi = 0);
0015   CaloHit();
0016   virtual ~CaloHit();
0017 
0018   int det() const { return deth; }
0019   int layer() const { return layerh; }
0020   double e() const { return eh; }
0021   double eta() const { return etah; }
0022   double phi() const { return phih; }
0023   double t() const { return timeh; }
0024   uint32_t id() const { return idh; }
0025   void setId(const uint32_t idi) { idh = idi; }
0026 
0027   bool operator<(const CaloHit& hit) const;
0028 
0029 private:
0030   int deth, layerh;
0031   double eh, etah, phih, timeh;
0032   uint32_t idh;
0033 };
0034 
0035 class CaloHitMore {
0036 public:
0037   bool operator()(const CaloHit* a, const CaloHit* b) { return (a->t() < b->t()); }
0038 };
0039 
0040 class CaloHitIdMore {
0041 public:
0042   bool operator()(const CaloHit* a, const CaloHit* b) {
0043     if (a->id() < b->id()) {
0044       return true;
0045     } else if (a->id() > b->id()) {
0046       return false;
0047     } else {
0048       return (a->t() < b->t());
0049     }
0050   }
0051 };
0052 
0053 class CaloHitELess {
0054 public:
0055   bool operator()(const CaloHit* a, const CaloHit* b) { return (a->e() > b->e()); }
0056 };
0057 
0058 class CaloHitEtLess {
0059 public:
0060   bool operator()(const CaloHit* a, const CaloHit* b) {
0061     return (a->e() / std::cosh(a->eta()) > b->e() / std::cosh(b->eta()));
0062   }
0063 };
0064 
0065 std::ostream& operator<<(std::ostream&, const CaloHit&);
0066 #endif