CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Friends
hitfit::EtaDepResElement Class Reference

Represent a resolution and an $ \eta $ range in which the resolution is valid. More...

#include <EtaDepResElement.h>

Public Member Functions

 EtaDepResElement (double eta1, double eta2, const Vector_Resolution &res)
 Construct an instance of EtaDepResElement from the lower limit, upper limit, and the resolution. The constructor will determine automatically which one among the two input $ \eta $ s is the lower (upper) limit. More...
 
 EtaDepResElement (double eta1, double eta2, std::string res)
 Construct an instance of EtaDepResElement from the lower limit, upper limit, and a string which encoded the resolution. The constructor will determine automatically which one among the two input $ \eta $ s is the lower (upper) limit. More...
 
 EtaDepResElement (double eta1, double eta2, const Resolution &p_res, const Resolution &eta_res, const Resolution &phi_res, bool use_et)
 Construct an instance of EtaDepResElement from the lower limit, upper limit, and the resolution. The constructor will determine automatically which one among the two input $ \eta $ s is the lower (upper) limit. More...
 
const double EtaMax () const
 Return the lower limit of valid $ \eta $ range. More...
 
const double EtaMin () const
 Return the lower limit of valid $ \eta $ range. More...
 
const Vector_Resolution GetResolution () const
 Access the resolution. More...
 
bool IsInInterval (const double &eta) const
 Check if an $ \eta $ value is within this instance's $ \eta $ range. More...
 
bool IsNotOverlap (const EtaDepResElement &e) const
 Check if this instance does not have overlapping $ \eta $ range with another instance. More...
 
bool IsOnEdge (const double &eta) const
 Check if an $ \eta $ value is at the edge/boundary of this instance's valid $ \eta $ range. More...
 
bool IsOnEdge (const EtaDepResElement &e) const
 Check if another instance of EtaDepResElement lies at the edge/boundary of this instance's $ \eta $ range. this instance's valid $ \eta $ range. A tolerance factor of 1/1000000 is used. More...
 
bool IsOverlap (const EtaDepResElement &e) const
 Check if this instance has overlapping $ \eta $ range with another instance of EtaDepResElement. More...
 
 ~EtaDepResElement ()
 

Static Public Attributes

static const int InverseEtaPrecision = 1000000
 Constant, the inverse of precision expected. More...
 

Private Member Functions

void SetEta (double eta1, double eta2)
 

Private Attributes

double _EtaMax
 
double _EtaMin
 
Vector_Resolution _Vector_Resolution
 

Friends

bool operator< (const EtaDepResElement &a, const EtaDepResElement &b)
 Comparison operator, compare two EtaDepResElement instances based on their respective valid $\eta$ ranges. More...
 
std::ostream & operator<< (std::ostream &s, const EtaDepResElement &e)
 Output stream operator. More...
 

Detailed Description

Represent a resolution and an $ \eta $ range in which the resolution is valid.

Usage:
Users instantiate multiple instances of this class. For each instance users provide:

See the documentation for Vector_Resolution and Resolution classes for more details.

Author
Haryo Sumowidagdo Suhar.nosp@m.yo.S.nosp@m.umowi.nosp@m.dagd.nosp@m.o@cer.nosp@m.n.ch
Creation date:
June 2009

Definition at line 62 of file EtaDepResElement.h.

Constructor & Destructor Documentation

hitfit::EtaDepResElement::EtaDepResElement ( double  eta1,
double  eta2,
const Vector_Resolution res 
)

Construct an instance of EtaDepResElement from the lower limit, upper limit, and the resolution. The constructor will determine automatically which one among the two input $ \eta $ s is the lower (upper) limit.

Parameters
eta1Value of $ \eta $ in one end/edge/boundary of the valid $ \eta $ range.
eta2Value of $ \eta $ in the other end/edge/boundary of the valid $ \eta $ range.
resThe resolution.

Definition at line 32 of file EtaDepResElement.cc.

References SetEta().

33  :
35 {
36 
37  SetEta(eta1,eta2);
38 
39 }
Definition: Electron.h:4
Vector_Resolution _Vector_Resolution
void SetEta(double eta1, double eta2)
hitfit::EtaDepResElement::EtaDepResElement ( double  eta1,
double  eta2,
std::string  res 
)

Construct an instance of EtaDepResElement from the lower limit, upper limit, and a string which encoded the resolution. The constructor will determine automatically which one among the two input $ \eta $ s is the lower (upper) limit.

Parameters
eta1Value of $ \eta $ in one end/edge/boundary of the valid $ \eta $ range.
eta2Value of $ \eta $ in the other end/edge/boundary of the valid $ \eta $ range.
resThe resolution encoded in string.

Definition at line 42 of file EtaDepResElement.cc.

References SetEta().

43  :
45 {
46 
47  SetEta(eta1,eta2);
48 
49 }
Definition: Electron.h:4
Vector_Resolution _Vector_Resolution
void SetEta(double eta1, double eta2)
hitfit::EtaDepResElement::EtaDepResElement ( double  eta1,
double  eta2,
const Resolution p_res,
const Resolution eta_res,
const Resolution phi_res,
bool  use_et 
)

Construct an instance of EtaDepResElement from the lower limit, upper limit, and the resolution. The constructor will determine automatically which one among the two input $ \eta $ s is the lower (upper) limit.

Parameters
eta1Value of $ \eta $ in one end of the valid $ \eta $ range.
eta2Walue of $ \eta $ in the other end of the valid $ \eta $ range.
p_resThe energy/momentum resolution.
eta_resThe $ \eta $ resolution.
phi_resThe $ \phi $ resolution.
use_etIf true, then the energy/momentum resolution is for transverse component $ (p_{T}/E_{T}) $ instead for radial $ (p/E) $ component.

Definition at line 52 of file EtaDepResElement.cc.

References SetEta().

56  :
57  _Vector_Resolution(p_res,eta_res,phi_res,use_et)
58 {
59 
60  SetEta(eta1,eta2);
61 
62 }
Vector_Resolution _Vector_Resolution
void SetEta(double eta1, double eta2)
hitfit::EtaDepResElement::~EtaDepResElement ( )

Destructor.

Definition at line 65 of file EtaDepResElement.cc.

66 {
67 }

Member Function Documentation

const double hitfit::EtaDepResElement::EtaMax ( ) const

Return the lower limit of valid $ \eta $ range.

Definition at line 121 of file EtaDepResElement.cc.

References _EtaMax.

122 {
123 
124  return _EtaMax;
125 
126 }
const double hitfit::EtaDepResElement::EtaMin ( ) const

Return the lower limit of valid $ \eta $ range.

Definition at line 112 of file EtaDepResElement.cc.

References _EtaMin.

113 {
114 
115  return _EtaMin;
116 
117 }
const Vector_Resolution hitfit::EtaDepResElement::GetResolution ( ) const

Access the resolution.

Return:
The resolution.

Definition at line 177 of file EtaDepResElement.cc.

References _Vector_Resolution.

Referenced by hitfit::operator<<().

178 {
179 
180  return _Vector_Resolution;
181 
182 }
Vector_Resolution _Vector_Resolution
bool hitfit::EtaDepResElement::IsInInterval ( const double &  eta) const

Check if an $ \eta $ value is within this instance's $ \eta $ range.

Parameters
etaThe $ \eta $ value to be checked.
Return:
true if $ \eta $ is within the instance's $ \eta $ range. false if $ \eta $ is not within the instnace's $ \eta $ range.

Definition at line 148 of file EtaDepResElement.cc.

References _EtaMax, and _EtaMin.

Referenced by IsOverlap().

bool hitfit::EtaDepResElement::IsNotOverlap ( const EtaDepResElement e) const

Check if this instance does not have overlapping $ \eta $ range with another instance.

Parameters
eThe other instance of EtaDepResElement to be checked.
Return:
true if this instance does not have overlapping $ \eta $ range with another instance's $ \eta $ range. false if this instance has overlapping $ \eta $ range with another instance's $ \eta $ range.

Definition at line 139 of file EtaDepResElement.cc.

References IsOverlap().

140 {
141 
142  return !(IsOverlap(e));
143 
144 }
bool IsOverlap(const EtaDepResElement &e) const
Check if this instance has overlapping range with another instance of EtaDepResElement.
bool hitfit::EtaDepResElement::IsOnEdge ( const double &  eta) const

Check if an $ \eta $ value is at the edge/boundary of this instance's valid $ \eta $ range.

Parameters
etaThe $ \eta $ value to be checked.

Definition at line 157 of file EtaDepResElement.cc.

References _EtaMax, _EtaMin, and InverseEtaPrecision.

Referenced by IsOnEdge().

158 {
159 
160  bool nearEtaMin = fabs(eta - _EtaMin) < (1.0/double(InverseEtaPrecision));
161  bool nearEtaMax = fabs(eta - _EtaMax) < (1.0/double(InverseEtaPrecision));
162  return nearEtaMin || nearEtaMax ;
163 
164 }
static const int InverseEtaPrecision
Constant, the inverse of precision expected.
bool hitfit::EtaDepResElement::IsOnEdge ( const EtaDepResElement e) const

Check if another instance of EtaDepResElement lies at the edge/boundary of this instance's $ \eta $ range. this instance's valid $ \eta $ range. A tolerance factor of 1/1000000 is used.

Parameters
eThe $ \eta $ value to be checked.
Return:
true if $ \eta $ is at the edge/boundary the instance's $ \eta $ range. false if $ \eta $ is not at the edge/boundary within the instnace's $ \eta $ range.

Definition at line 168 of file EtaDepResElement.cc.

References _EtaMax, _EtaMin, and IsOnEdge().

169 {
170 
171  return (e.IsOnEdge(_EtaMin) || e.IsOnEdge(_EtaMax));
172 
173 }
bool hitfit::EtaDepResElement::IsOverlap ( const EtaDepResElement e) const

Check if this instance has overlapping $ \eta $ range with another instance of EtaDepResElement.

Parameters
eThe other instance of EtaDepResElement to be checked.
Return:
true if this instance has overlapping $ \eta $ range with another instance's $ \eta $ range.
false if this instance doesn't have overlapping $ \eta $ range with another instance's $ \eta $ range.

Definition at line 130 of file EtaDepResElement.cc.

References _EtaMax, _EtaMin, and IsInInterval().

Referenced by IsNotOverlap(), and hitfit::operator<().

131 {
132 
133  return (IsInInterval(e._EtaMin) || IsInInterval(e._EtaMax));
134 
135 }
bool IsInInterval(const double &eta) const
Check if an value is within this instance&#39;s range.
void hitfit::EtaDepResElement::SetEta ( double  eta1,
double  eta2 
)
private

Set the lower and upper limit of the valid eta range.

Parameters
eta1Value of $ \eta $ in one end of the valid $ \eta $ range.
eta2Value of $ \eta $ in the other end of the valid $ \eta $ range.

Definition at line 71 of file EtaDepResElement.cc.

References _EtaMax, _EtaMin, and InverseEtaPrecision.

Referenced by EtaDepResElement().

72 {
73 
74  if (fabs(eta1 - eta2) < (1.0/double(InverseEtaPrecision))) {
75  throw
76  std::runtime_error("EtaDepResElement::equal EtaMin and EtaMax");
77  }
78 
79  if (eta1 < eta2) {
80  _EtaMin = eta1 ;
81  _EtaMax = eta2 ;
82  } else {
83  _EtaMin = eta2 ;
84  _EtaMax = eta1 ;
85  }
86 
87 }
static const int InverseEtaPrecision
Constant, the inverse of precision expected.

Friends And Related Function Documentation

bool operator< ( const EtaDepResElement a,
const EtaDepResElement b 
)
friend

Comparison operator, compare two EtaDepResElement instances based on their respective valid $\eta$ ranges.

Parameters
aThe first instance of EtaDepResElement to be compared.
bThe second instance of EtaDepResElement to be compared.
Return:
TRUE if a's upper limit is less than b's lower limit.
FALSE all other cases.

Definition at line 102 of file EtaDepResElement.cc.

103 {
104 
105  if (a.IsOverlap(b)) { return false;}
106  return !(a._EtaMax > b._EtaMin);
107 
108 }
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
std::ostream& operator<< ( std::ostream &  s,
const EtaDepResElement e 
)
friend

Output stream operator.

Parameters
sThe output stream to write to.
eThe instance of EtaDepResElement to be printed.
Return:
The output stream s

Definition at line 185 of file EtaDepResElement.cc.

186 {
187 
188  s << "(" << e._EtaMin << " to " << e._EtaMax << ")" << " / " << e.GetResolution ();
189  return s ;
190 
191 }

Member Data Documentation

double hitfit::EtaDepResElement::_EtaMax
private

Upper limit of the valid $ \eta $ range.

Definition at line 74 of file EtaDepResElement.h.

Referenced by EtaMax(), IsInInterval(), IsOnEdge(), IsOverlap(), hitfit::operator<(), hitfit::operator<<(), and SetEta().

double hitfit::EtaDepResElement::_EtaMin
private

Lower limit of the valid $ \eta $ range.

Definition at line 69 of file EtaDepResElement.h.

Referenced by EtaMin(), IsInInterval(), IsOnEdge(), IsOverlap(), hitfit::operator<(), hitfit::operator<<(), and SetEta().

Vector_Resolution hitfit::EtaDepResElement::_Vector_Resolution
private

The resolution.

Definition at line 88 of file EtaDepResElement.h.

Referenced by GetResolution().

const int hitfit::EtaDepResElement::InverseEtaPrecision = 1000000
static

Constant, the inverse of precision expected.

Definition at line 242 of file EtaDepResElement.h.

Referenced by IsOnEdge(), and SetEta().