ATLAS Offline Software
TGCDQAUtils.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Package : TGCDQAUtils
7 // Author: A.Ishikawa(Kobe)
8 // Oct. 2008
9 //
10 // DESCRIPTION:
11 // Subject: Helper classes for TGC DQA
13 
14 #ifndef TGCDQAUtils_H
15 #define TGCDQAUtils_H
16 #include <iostream>
17 
19 {
20  //y = a*x + b
21  private:
22  double m_a;
23  double m_b;
24  double m_chi2;
25  int m_ndf;
26  int m_nLayer;
28 
29  public:
31  m_a=m_b=m_chi2=0.;
33  }
35  LinearTrack(double a,
36  double b,
37  double chi2,
38  int ndf,
39  int nLayer,
40  int nStation)
41  :m_a(a),
42  m_b(b),
43  m_chi2(chi2),
44  m_ndf(ndf),
47  {
48  }
49 
50  double a(){return m_a;}
51  double b(){return m_b;}
52  double chi2(){return m_chi2;}
53  int ndf(){return m_ndf;}
54  int nLayer(){return m_nLayer;}
55  int nStation(){return m_nStation;}
56 
57  double chi2OverNdf(){return m_chi2/m_ndf;}
58  double y(double x){return m_a*x+m_b;}
59  double x(double y){return (y-m_b)/m_a;}
60 
61  void a(double a){m_a=a;}
62  void b(double b){m_b=b;}
63  void chi2(double chi2){m_chi2=chi2;}
64  void ndf(int ndf){m_ndf=ndf;}
67 
68 };
69 
71 {
72  private:
73  double m_x;
74  double m_y;
75  double m_sigma;
76  double m_pchi2;
77  int m_signchi;
78 
79  double m_X;
80  double m_XX;
81  double m_XY;
82  double m_Y;
83  double m_YY;
84  double m_SS;
85 
86 
87  int m_layer;
88  bool m_used;
89  bool m_usable;
90 
91  int m_type;
92 
93  public:
96  XYPosition(double x,
97  double y,
98  double sigma,
99  int layer)
100  :m_x(x),
101  m_y(y),
102  m_sigma(sigma),
103  m_pchi2(0.0),
104  m_signchi(0),
105  m_layer(layer),
106  m_used(true),
107  m_usable(true),
108  m_type(0)
109  {
110  m_SS = 1./(sigma*sigma);
111  m_X = x*m_SS;
112  m_XX = x*m_X;
113  m_XY = y*m_X;
114  m_Y = y*m_SS;
115  m_YY = y*m_Y;
116  }
117 
118  XYPosition(double x,
119  double y,
120  double sigma,
121  int layer,
122  int type)
123  :m_x(x),
124  m_y(y),
125  m_sigma(sigma),
126  m_pchi2(0.0),
127  m_signchi(0),
128  m_layer(layer),
129  m_used(true),
130  m_usable(true),
131  m_type(type)
132  {
133  m_SS = 1./(sigma*sigma);
134  m_X = x*m_SS;
135  m_XX = x*m_X;
136  m_XY = y*m_X;
137  m_Y = y*m_SS;
138  m_YY = y*m_Y;
139  }
140 
141 
142 
143  double x(){return m_x;}
144  double y(){return m_y;}
145  double sigma(){return m_sigma;}
146  double pchi2(){return m_pchi2;}
147  int signchi(){return m_signchi;}
148 
149  double X(){return m_X;}
150  double XX(){return m_XX;}
151  double XY(){return m_XY;}
152  double Y(){return m_Y;}
153  double YY(){return m_YY;}
154  double SS(){return m_SS;}
155 
156  int layer(){return m_layer;}
157  bool used(){return m_used;}
158  bool usable(){return m_usable;}
159 
160  int type(){return m_type;}
161 
162  void x(double x){m_x=x;}
163  void y(double y){m_y=y;}
164  void sigma(double sigma){m_sigma=sigma;}
165  void pchi2(double pchi2){m_pchi2=pchi2;}
167 
168  void X(double X){m_X=X;}
169  void XX(double XX){m_XX=XX;}
170  void XY(double XY){m_XY=XY;}
171  void Y(double Y){m_Y=Y;}
172  void YY(double YY){m_YY=YY;}
173  void SS(double SS){m_SS=SS;}
174 
175  void layer(int layer){m_layer=layer;}
176  void used(bool used){m_used=used;}
178 
179  friend std::ostream &operator << (std::ostream &s, XYPosition &xy) {
180  s <<"x y sigma signchi*pchi2 layer used usable type : "<<xy.x()<<" "<<xy.y()<<" "<<xy.sigma()<<" "<<std::setw(9)<<std::setprecision(2)<<xy.signchi()*xy.pchi2()<<" "<<xy.layer()<<" "<<xy.used()<<" "<<xy.usable()<<" "<<xy.type();
181  return s;
182  }
183 
184  friend bool operator<(XYPosition& xy0, XYPosition& xy1) {
185  if( xy0.layer() < xy1.layer() )
186  return true;
187  else if(xy0.layer() == xy1.layer())
188  return xy0.x()<xy1.x();
189  else
190  return false;
191  }
192  friend bool operator>(XYPosition& xy0, XYPosition& xy1) {
193  if( xy0.layer() > xy1.layer() )
194  return true;
195  else if(xy0.layer() == xy1.layer())
196  return xy0.x()>xy1.x();
197  else
198  return false;
199  }
200 
201 };
202 
203 #endif
used
XYPosition::m_signchi
int m_signchi
Definition: TGCDQAUtils.h:77
XYPosition::type
int type()
Definition: TGCDQAUtils.h:160
XYPosition::usable
void usable(bool usable)
Definition: TGCDQAUtils.h:177
XYPosition::XYPosition
XYPosition(double x, double y, double sigma, int layer)
Definition: TGCDQAUtils.h:96
XYPosition::operator>
friend bool operator>(XYPosition &xy0, XYPosition &xy1)
Definition: TGCDQAUtils.h:192
LinearTrack::chi2
double chi2()
Definition: TGCDQAUtils.h:52
LinearTrack::chi2
void chi2(double chi2)
Definition: TGCDQAUtils.h:63
XYPosition::~XYPosition
~XYPosition()
Definition: TGCDQAUtils.h:95
XYPosition::YY
double YY()
Definition: TGCDQAUtils.h:153
XYPosition::m_XX
double m_XX
Definition: TGCDQAUtils.h:80
XYPosition::pchi2
double pchi2()
Definition: TGCDQAUtils.h:146
XYPosition::SS
void SS(double SS)
Definition: TGCDQAUtils.h:173
XYPosition::m_YY
double m_YY
Definition: TGCDQAUtils.h:83
XYPosition::sigma
double sigma()
Definition: TGCDQAUtils.h:145
XYPosition::m_type
int m_type
Definition: TGCDQAUtils.h:91
LinearTrack::m_a
double m_a
Definition: TGCDQAUtils.h:22
XYPosition::m_usable
bool m_usable
Definition: TGCDQAUtils.h:89
LinearTrack::x
double x(double y)
Definition: TGCDQAUtils.h:59
LinearTrack::m_nLayer
int m_nLayer
Definition: TGCDQAUtils.h:26
XYPosition::usable
bool usable()
Definition: TGCDQAUtils.h:158
LinearTrack::y
double y(double x)
Definition: TGCDQAUtils.h:58
LinearTrack::m_ndf
int m_ndf
Definition: TGCDQAUtils.h:25
XYPosition::XX
double XX()
Definition: TGCDQAUtils.h:150
LinearTrack::ndf
int ndf()
Definition: TGCDQAUtils.h:53
LinearTrack::m_b
double m_b
Definition: TGCDQAUtils.h:23
XYPosition::x
void x(double x)
Definition: TGCDQAUtils.h:162
LinearTrack::~LinearTrack
~LinearTrack()
Definition: TGCDQAUtils.h:34
XYPosition::XYPosition
XYPosition()
Definition: TGCDQAUtils.h:94
XYPosition::used
void used(bool used)
Definition: TGCDQAUtils.h:176
LinearTrack::chi2OverNdf
double chi2OverNdf()
Definition: TGCDQAUtils.h:57
XYPosition::m_used
bool m_used
Definition: TGCDQAUtils.h:88
XYPosition::m_Y
double m_Y
Definition: TGCDQAUtils.h:82
LinearTrack::ndf
void ndf(int ndf)
Definition: TGCDQAUtils.h:64
XYPosition::YY
void YY(double YY)
Definition: TGCDQAUtils.h:172
XYPosition::XY
void XY(double XY)
Definition: TGCDQAUtils.h:170
XYPosition::layer
void layer(int layer)
Definition: TGCDQAUtils.h:175
XYPosition::m_SS
double m_SS
Definition: TGCDQAUtils.h:84
XYPosition::XYPosition
XYPosition(double x, double y, double sigma, int layer, int type)
Definition: TGCDQAUtils.h:118
XYPosition::layer
int layer()
Definition: TGCDQAUtils.h:156
LinearTrack::b
double b()
Definition: TGCDQAUtils.h:51
XYPosition::m_sigma
double m_sigma
Definition: TGCDQAUtils.h:75
LinearTrack::m_chi2
double m_chi2
Definition: TGCDQAUtils.h:24
LinearTrack::nStation
void nStation(int nStation)
Definition: TGCDQAUtils.h:66
XYPosition::m_X
double m_X
Definition: TGCDQAUtils.h:79
LinearTrack::LinearTrack
LinearTrack()
Definition: TGCDQAUtils.h:30
XYPosition::pchi2
void pchi2(double pchi2)
Definition: TGCDQAUtils.h:165
LinearTrack::nStation
int nStation()
Definition: TGCDQAUtils.h:55
LinearTrack::nLayer
void nLayer(int nLayer)
Definition: TGCDQAUtils.h:65
LinearTrack::nLayer
int nLayer()
Definition: TGCDQAUtils.h:54
XYPosition::X
double X()
Definition: TGCDQAUtils.h:149
XYPosition::m_XY
double m_XY
Definition: TGCDQAUtils.h:81
XYPosition::XX
void XX(double XX)
Definition: TGCDQAUtils.h:169
LinearTrack::a
double a()
Definition: TGCDQAUtils.h:50
XYPosition::y
double y()
Definition: TGCDQAUtils.h:144
LinearTrack::LinearTrack
LinearTrack(double a, double b, double chi2, int ndf, int nLayer, int nStation)
Definition: TGCDQAUtils.h:35
XYPosition::used
bool used()
Definition: TGCDQAUtils.h:157
LinearTrack::b
void b(double b)
Definition: TGCDQAUtils.h:62
XYPosition::m_pchi2
double m_pchi2
Definition: TGCDQAUtils.h:76
XYPosition
Definition: TGCDQAUtils.h:71
XYPosition::Y
double Y()
Definition: TGCDQAUtils.h:152
XYPosition::signchi
void signchi(int signchi)
Definition: TGCDQAUtils.h:166
XYPosition::m_x
double m_x
Definition: TGCDQAUtils.h:73
XYPosition::operator<<
friend std::ostream & operator<<(std::ostream &s, XYPosition &xy)
Definition: TGCDQAUtils.h:179
XYPosition::X
void X(double X)
Definition: TGCDQAUtils.h:168
python.SystemOfUnits.s
float s
Definition: SystemOfUnits.py:147
XYPosition::m_layer
int m_layer
Definition: TGCDQAUtils.h:87
XYPosition::Y
void Y(double Y)
Definition: TGCDQAUtils.h:171
XYPosition::operator<
friend bool operator<(XYPosition &xy0, XYPosition &xy1)
Definition: TGCDQAUtils.h:184
XYPosition::sigma
void sigma(double sigma)
Definition: TGCDQAUtils.h:164
XYPosition::signchi
int signchi()
Definition: TGCDQAUtils.h:147
XYPosition::y
void y(double y)
Definition: TGCDQAUtils.h:163
XYPosition::XY
double XY()
Definition: TGCDQAUtils.h:151
LinearTrack
Definition: TGCDQAUtils.h:19
XYPosition::x
double x()
Definition: TGCDQAUtils.h:143
LinearTrack::a
void a(double a)
Definition: TGCDQAUtils.h:61
LinearTrack::m_nStation
int m_nStation
Definition: TGCDQAUtils.h:27
XYPosition::SS
double SS()
Definition: TGCDQAUtils.h:154
XYPosition::m_y
double m_y
Definition: TGCDQAUtils.h:74