128 |
|
} |
129 |
|
} |
130 |
|
|
131 |
+ |
|
132 |
+ |
double EtaDetector(const BaseVars & v1){ |
133 |
+ |
double pDet[3]; |
134 |
+ |
pDet[0] = v1.pT*cos(v1.phi) + v1.vx; |
135 |
+ |
pDet[1] = v1.pT*sin(v1.phi) + v1.vy; |
136 |
+ |
|
137 |
+ |
double theta = 2*atan(exp(-v1.eta)); |
138 |
+ |
if (pDet[1]<0) theta = TMath::Pi()+theta; |
139 |
+ |
|
140 |
+ |
if (tan(theta)!=0) pDet[2] = v1.pT/tan(theta) + v1.vz; |
141 |
+ |
else return -10; |
142 |
+ |
|
143 |
+ |
double pTDet = sqrt(pDet[0]*pDet[0] + pDet[1]*pDet[1]); |
144 |
+ |
double pDetNorm = sqrt(pDet[0]*pDet[0] + pDet[1]*pDet[1] + pDet[2]*pDet[2]); |
145 |
+ |
double thetaDet = 0; |
146 |
+ |
double cosThetaDet = 0; |
147 |
+ |
if (pDetNorm!=0) cosThetaDet = pDet[2]/pDetNorm; |
148 |
+ |
else return -10; |
149 |
+ |
if (pDet[2]!=0) thetaDet = atan(pTDet/pDet[2]); |
150 |
+ |
else return -10; |
151 |
+ |
if (cosThetaDet<0) thetaDet += TMath::Pi(); |
152 |
+ |
|
153 |
+ |
return -log(tan(thetaDet/2.)); |
154 |
+ |
} |
155 |
+ |
|
156 |
+ |
double EtaDetector(const GenVars & v1){ |
157 |
+ |
double pDet[3]; |
158 |
+ |
pDet[0] = v1.pT*cos(v1.phi) + v1.vx; |
159 |
+ |
pDet[1] = v1.pT*sin(v1.phi) + v1.vy; |
160 |
+ |
|
161 |
+ |
double theta = 2*atan(exp(-v1.eta)); |
162 |
+ |
if (pDet[1]<0) theta = TMath::Pi()+theta; |
163 |
+ |
|
164 |
+ |
if (tan(theta)!=0) pDet[2] = v1.pT/tan(theta) + v1.vz; |
165 |
+ |
else return -10; |
166 |
+ |
|
167 |
+ |
double pTDet = sqrt(pDet[0]*pDet[0] + pDet[1]*pDet[1]); |
168 |
+ |
double pDetNorm = sqrt(pDet[0]*pDet[0] + pDet[1]*pDet[1] + pDet[2]*pDet[2]); |
169 |
+ |
double thetaDet = 0; |
170 |
+ |
double cosThetaDet = 0; |
171 |
+ |
if (pDetNorm!=0) cosThetaDet = pDet[2]/pDetNorm; |
172 |
+ |
else return -10; |
173 |
+ |
if (pDet[2]!=0) thetaDet = atan(pTDet/pDet[2]); |
174 |
+ |
else return -10; |
175 |
+ |
if (cosThetaDet<0) thetaDet += TMath::Pi(); |
176 |
+ |
|
177 |
+ |
return -log(tan(thetaDet/2.)); |
178 |
+ |
} |
179 |
+ |
|
180 |
+ |
|
181 |
+ |
|
182 |
|
}//namespace |
183 |
|
|