CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CaloHit.h
Go to the documentation of this file.
1 #ifndef SimDataFormats_CaloHit_H
2 #define SimDataFormats_CaloHit_H
3 // File: CaloHit.h
5 // Hit class for QIE analysis
7 
8 #include <boost/cstdint.hpp>
9 #include <iostream>
10 #include <cmath>
11 
12 class CaloHit {
13 
14 public:
15 
16  CaloHit(int deti, int layi, double ei, double etai, double phii, double timi,
17  uint32_t idi=0);
18  CaloHit();
19  CaloHit(const CaloHit&);
20  virtual ~CaloHit();
21 
22  int det() const {return deth;}
23  int layer() const {return layerh;}
24  double e() const {return eh;}
25  double eta() const {return etah;}
26  double phi() const {return phih;}
27  double t() const {return timeh;}
28  uint32_t id() const {return idh;}
29  void setId(const uint32_t idi) {idh = idi;}
30 
31  bool operator<( const CaloHit& hit) const;
32 
33 private:
34 
35  int deth, layerh;
36  double eh, etah, phih, timeh;
37  uint32_t idh;
38 
39 };
40 
41 class CaloHitMore {
42 
43 public:
44 
45  bool operator() (const CaloHit* a, const CaloHit* b) {
46  return (a->t() < b->t());
47  }
48 };
49 
51 
52 public:
53 
54  bool operator() (const CaloHit* a, const CaloHit* b) {
55  if (a->id() < b->id()) {
56  return true;
57  } else if (a->id() > b->id()) {
58  return false;
59  } else {
60  return (a->t() < b->t());
61  }
62  }
63 };
64 
65 class CaloHitELess {
66 
67 public:
68 
69  bool operator() (const CaloHit* a, const CaloHit* b) {
70  return (a->e() > b->e());
71  }
72 };
73 
75 
76 public:
77 
78  bool operator() (const CaloHit* a, const CaloHit* b) {
79  return (a->e()/std::cosh(a->eta()) > b->e()/std::cosh(b->eta()));
80  }
81 };
82 
83 std::ostream& operator<<(std::ostream&, const CaloHit&);
84 #endif
int layerh
Definition: CaloHit.h:35
bool operator<(const CaloHit &hit) const
Definition: CaloHit.cc:29
int det() const
Definition: CaloHit.h:22
double phi() const
Definition: CaloHit.h:26
double timeh
Definition: CaloHit.h:36
double eta() const
Definition: CaloHit.h:25
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
double phih
Definition: CaloHit.h:36
void setId(const uint32_t idi)
Definition: CaloHit.h:29
virtual ~CaloHit()
Definition: CaloHit.cc:27
double eh
Definition: CaloHit.h:36
uint32_t id() const
Definition: CaloHit.h:28
double t() const
Definition: CaloHit.h:27
int layer() const
Definition: CaloHit.h:23
bool operator()(const CaloHit *a, const CaloHit *b)
Definition: CaloHit.h:54
bool operator()(const CaloHit *a, const CaloHit *b)
Definition: CaloHit.h:78
double b
Definition: hdecay.h:120
double e() const
Definition: CaloHit.h:24
double a
Definition: hdecay.h:121
bool operator()(const CaloHit *a, const CaloHit *b)
Definition: CaloHit.h:69
bool operator()(const CaloHit *a, const CaloHit *b)
Definition: CaloHit.h:45
double etah
Definition: CaloHit.h:36
int deth
Definition: CaloHit.h:35
CaloHit()
Definition: CaloHit.cc:14
uint32_t idh
Definition: CaloHit.h:37