ATLAS Offline Software
Loading...
Searching...
No Matches
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;
28
29 public:
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;
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
88 bool m_used;
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
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
void ndf(int ndf)
Definition TGCDQAUtils.h:64
void b(double b)
Definition TGCDQAUtils.h:62
void nLayer(int nLayer)
Definition TGCDQAUtils.h:65
int nStation()
Definition TGCDQAUtils.h:55
double chi2()
Definition TGCDQAUtils.h:52
double x(double y)
Definition TGCDQAUtils.h:59
LinearTrack(double a, double b, double chi2, int ndf, int nLayer, int nStation)
Definition TGCDQAUtils.h:35
void chi2(double chi2)
Definition TGCDQAUtils.h:63
void nStation(int nStation)
Definition TGCDQAUtils.h:66
double b()
Definition TGCDQAUtils.h:51
double y(double x)
Definition TGCDQAUtils.h:58
double chi2OverNdf()
Definition TGCDQAUtils.h:57
void a(double a)
Definition TGCDQAUtils.h:61
double m_chi2
Definition TGCDQAUtils.h:24
double a()
Definition TGCDQAUtils.h:50
double m_X
Definition TGCDQAUtils.h:79
void pchi2(double pchi2)
double Y()
double m_XY
Definition TGCDQAUtils.h:81
double XY()
double SS()
void sigma(double sigma)
void y(double y)
void Y(double Y)
double m_pchi2
Definition TGCDQAUtils.h:76
double m_XX
Definition TGCDQAUtils.h:80
void YY(double YY)
void X(double X)
double m_y
Definition TGCDQAUtils.h:74
double m_x
Definition TGCDQAUtils.h:73
bool m_usable
Definition TGCDQAUtils.h:89
double pchi2()
bool usable()
int signchi()
void usable(bool usable)
double sigma()
void XY(double XY)
void layer(int layer)
double m_YY
Definition TGCDQAUtils.h:83
double m_sigma
Definition TGCDQAUtils.h:75
friend bool operator<(XYPosition &xy0, XYPosition &xy1)
double XX()
double YY()
double X()
XYPosition(double x, double y, double sigma, int layer, int type)
void used(bool used)
double x()
void signchi(int signchi)
double m_SS
Definition TGCDQAUtils.h:84
XYPosition(double x, double y, double sigma, int layer)
Definition TGCDQAUtils.h:96
void x(double x)
double y()
void SS(double SS)
friend std::ostream & operator<<(std::ostream &s, XYPosition &xy)
void XX(double XX)
bool used()
double m_Y
Definition TGCDQAUtils.h:82
friend bool operator>(XYPosition &xy0, XYPosition &xy1)