Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
FPGATrackSimGenScanBinning.cxx
Go to the documentation of this file.
1 // Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
11 
12 
13 //--------------------------------------------------------------------------------------------------
14 //
15 // FPGATrackSimGenScanBinningBase base class implementation
16 //
17 //--------------------------------------------------------------------------------------------------
18 
20 {
21  for (unsigned i = 0; i < NPars; i++)
22  {
23  if (!inRange(i, pars[i]))
24  return false;
25  }
26  return true;
27 }
28 
30 {
31  IdxSet retv;
32  for (unsigned i = 0; i < NPars; i++)
33  {
34  retv[i] = binIdx(i, pars[i]);
35  }
36  return retv;
37 }
39 {
40  ParSet parset = trackParsToParSet(pars);
41  if (inRange(parset))
42  {
43  return binIdx(parset);
44  }
45  return m_invalidBin;
46 }
47 
49 {
50  ParSet parset;
51  for (unsigned i = 0; i < NPars; i++)
52  {
53  parset[i] = (m_parMin[i] + m_parMin[i]) / 2.0;
54  }
55  return parset;
56 }
57 
59 {
60  ParSet parset;
61  for (unsigned i = 0; i < NPars; i++)
62  {
63  parset[i] = binLowEdge(i, idx[i]);
64  }
65  return parset;
66 }
67 
69 {
70  ParSet parset;
71  for (unsigned i = 0; i < NPars; i++)
72  {
73  parset[i] = binCenter(i, idx[i]);
74  }
75  return parset;
76 }
77 
78 std::vector<unsigned> FPGATrackSimGenScanBinningBase::subVec(const std::vector<unsigned>& elems, const IdxSet& invec) const
79 {
80  std::vector<unsigned> retv;
81  for (auto elem : elems)
82  {
83  retv.push_back(invec[elem]);
84  }
85  return retv;
86 }
87 
89  IdxSet &idx, const std::vector<unsigned> &subvecelems,
90  const std::vector<unsigned> &subvecidx) const {
91 
92  if (subvecelems.size() != subvecidx.size()) {
93  throw std::invalid_argument(
94  "Setting FPGATrackSimGenScanBinningBase::setIdxSubVec with mismatched "
95  "sizes");
96  }
97 
98  for (unsigned i = 0; i < subvecelems.size(); i++) {
99  if (subvecelems[i] >= idx.size()) {
100  throw std::invalid_argument(
101  "FPGATrackSimGenScanBinningBase::setIdxSubVec input out of range");
102  }
103  idx[subvecelems[i]] = subvecidx[i];
104  }
105 
106 }
107 
108 // This gives a list tracks parameters for the corners of bin of dimensions scanpars.size()
109 std::vector<FPGATrackSimGenScanBinningBase::ParSet> FPGATrackSimGenScanBinningBase::makeVariationSet(const std::vector<unsigned> &scanpars, const IdxSet &idx) const
110 {
111  std::vector<ParSet> retv;
112  for (unsigned corners = 0; corners < unsigned((1 << scanpars.size())); corners++)
113  {
114  IdxSet newidx = idx;
115  int scanDimCnt = 0;
116  for (auto &par : scanpars)
117  {
118  newidx[par] = idx[par] + ((corners >> scanDimCnt) & 1);
119  scanDimCnt++;
120  }
121  retv.push_back(binLowEdge(newidx));
122  }
123  return retv;
124 }
125 
126 // find valid range for sliceVar
128 {
129  // Get float values
130  double slicevarmin = std::numeric_limits<double>::max();
131  double slicevarmax = std::numeric_limits<double>::min();
132 
134 
135  for (auto &pars : variations)
136  {
137  double slicevarhit = sliceVarExpected(pars, hit);
138  slicevarmin = std::min(slicevarmin, slicevarhit);
139  slicevarmax = std::max(slicevarmax, slicevarhit);
140  }
141  double slicevar = sliceVar(hit);
142  return ( slicevar > slicevarmin) && (slicevar < slicevarmax);
143 }
144 
145 
146 
148 {
149  // Get float values
150  double rowparmin = std::numeric_limits<double>::max();
151  double rowparmax = std::numeric_limits<double>::min();
152 
154 
155  for (auto &pars : variations)
156  {
157  double rowparhit = rowPar(pars, hit);
158  rowparmin = std::min(rowparmin, rowparhit);
159  rowparmax = std::max(rowparmax, rowparhit);
160  }
161 
162  // only consider parameter bins in range
163  unsigned lowbin = std::max(rowParBinIdx(rowparmin), unsigned(0));
164  unsigned highbin = std::min(rowParBinIdx(rowparmax) + 1, m_parBins[rowParIdx()] );
165 
166  return {lowbin, highbin};
167 }
168 
169 // Default implementations
170 double FPGATrackSimGenScanBinningBase::sliceVar([[maybe_unused]] FPGATrackSimHit const *hit) const { return 0.0; };
171 double FPGATrackSimGenScanBinningBase::sliceVarExpected([[maybe_unused]] const ParSet &pars, [[maybe_unused]] FPGATrackSimHit const *hit) const {return 0.0; };
172 double FPGATrackSimGenScanBinningBase::rowPar([[maybe_unused]] const ParSet &pars, [[maybe_unused]] FPGATrackSimHit const *hit) const {return 0.0; };
173 
174 // FW constants writer
175 std::ostream &operator<<(std::ostream &os, const std::vector<unsigned>& idx) {
176  bool first = true;
177  for (auto &val : idx) {
178  if (!first)
179  os << ",";
180  os << val;
181  first = false;
182  }
183  return os;
184 }
185 template <typename T> void FPGATrackSimGenScanBinningBase::StreamManager::writeVar(const std::string &var, T val) {
186  auto emplace_result = m_map.try_emplace(
187  var, m_setname + "_" + var + "_const.txt", std::ios_base::out);
188  if (!emplace_result.second) {
189  emplace_result.first->second << ",\n";
190  }
191  emplace_result.first->second << val;
192 }
193 
194 //--------------------------------------------------------------------------------------------------
195 //
196 // Geometry Helpers
197 //
198 //--------------------------------------------------------------------------------------------------
199 
201 {
202  return 2.0 * atan(exp(-1.0 * eta));
203 }
204 
206 {
207  return -log(tan(theta / 2.0));
208 }
209 
211 {
212  double theta = ThetaFromEta(pars.eta);
213  double zhit = pars.z0 + r / tan(theta);
214  if (std::abs(pars.qOverPt) > 0)
215  {
216  zhit = pars.z0 + 1.0 / tan(theta) * asin(r * CurvatureConstant * pars.qOverPt) / (CurvatureConstant * pars.qOverPt);
217  }
218  return zhit;
219 }
220 
222 {
223  double phi_hit = xAOD::P4Helpers::deltaPhi(pars.phi,asin(r * CurvatureConstant * pars.qOverPt - pars.d0 / r));
224 
225  return phi_hit;
226 }
227 
229 {
230  double r = hit->getR(); // mm
231  double phi_hit = hit->getGPhi(); // radians
232  double phi_trk = xAOD::P4Helpers::deltaPhi(phi_hit,asin(r * CurvatureConstant * pars.qOverPt - pars.d0 / r));
233  return phi_trk;
234 }
235 
236 //
237 //
238 // Tool for doing Key Layer Math
239 //
240 //
241 
242 std::pair<double, double> FPGATrackSimGenScanKeyLyrHelper::getXY(double r, double phi) const
243 {
244  return std::pair<double, double>(r * cos(phi), r * sin(phi));
245 }
246 
247 std::pair<double, double> FPGATrackSimGenScanKeyLyrHelper::getRotationAngles(const std::pair<double, double>& xy1, const std::pair<double, double>& xy2) const
248 {
249  double dr12x = xy2.first - xy1.first;
250  double dr12y = xy2.second - xy1.second;
251  double dr12mag = std::hypot(dr12x, dr12y);
252  double cos_rot = dr12y / dr12mag;
253  double sin_rot = -dr12x / dr12mag;
254  return std::pair<double, double>(cos_rot, sin_rot);
255 }
256 
257 std::pair<double, double> FPGATrackSimGenScanKeyLyrHelper::rotateXY(const std::pair<double, double>& xy, const std::pair<double, double>& ang) const
258 {
259  return std::pair<double, double>(xy.first * ang.first + xy.second * ang.second,
260  -xy.first * ang.second + xy.second * ang.first);
261 }
262 
264 {
266 
267  auto xy1 = getXY(m_R1, keypars.phi1);
268  auto xy2 = getXY(m_R2, keypars.phi2);
269 
270  result.rotang = getRotationAngles(xy1, xy2);
271  result.xy1p = rotateXY(xy1, result.rotang);
272  result.xy2p = rotateXY(xy2, result.rotang);
273  result.y = result.xy2p.second - result.xy1p.second;
274 
275  return result;
276 }
277 
278 std::pair<double, double> FPGATrackSimGenScanKeyLyrHelper::getRotatedHit(const std::pair<double, double>& rotang, const FPGATrackSimHit *hit) const
279 {
280  auto xyh = getXY(hit->getR(), hit->getGPhi());
281  return rotateXY(xyh, rotang);
282 }
283 
285 {
286  KeyLyrPars retv;
291 
293  if (Rinv != 0)
294  {
295  double R = 1 / Rinv;
296  auto xy1 = getXY(m_R1, retv.phi1);
297  auto xy2 = getXY(m_R2, retv.phi2);
298  double ysqr = (xy2.first - xy1.first) * (xy2.first - xy1.first) + (xy2.second - xy1.second) * (xy2.second - xy1.second);
299  double sign = (R > 0) - (R < 0);
300  retv.xm = -1 * sign * (std::abs(R) - sqrt(R * R - ysqr / 4.0));
301  }
302  else
303  {
304  retv.xm = 0;
305  }
306 
307  return retv;
308 }
309 
311 {
312 
314  pars[FPGATrackSimTrackPars::IZ0] = (keypars.z1 * m_R2 - keypars.z2 * m_R1) / (m_R2 - m_R1);
315  pars[FPGATrackSimTrackPars::IETA] = FPGATrackSimGenScanGeomHelpers::EtaFromTheta(atan2(m_R2 - m_R1, keypars.z2 - keypars.z1));
316 
317  // This is the exact math which is a bit messy
318  // if you want the math contact lipeles@sas.upenn.edu
319 
320  double xm = keypars.xm;
321 
322  auto rotated_coords = getRotatedConfig(keypars);
323  auto xy1p = rotated_coords.xy1p;
324  auto rotang = rotated_coords.rotang;
325  auto y = rotated_coords.y;
326 
327  // reverse rotation
328  auto revang = rotang;
329  revang.second = -rotang.second;
330 
331  if (xm != 0)
332  {
333  double Rinv = 2 * xm / (xm * xm + (y / 2) * (y / 2));
334  double d = (y * y / 4.0 - xm * xm) / (2.0 * xm);
335  double sign = (xm > 0) - (xm < 0);
336 
338 
339  std::pair<double, double> xycp(-d + xy1p.first, y / 2.0 + xy1p.second);
340 
341  pars[FPGATrackSimTrackPars::ID0] = -1 * sign * (std::abs(1 / Rinv) - std::hypot(xycp.first, xycp.second));
342 
343  auto xyc = rotateXY(xycp, revang);
344 
345  pars[FPGATrackSimTrackPars::IPHI] = atan2(sign * -xyc.first, sign * xyc.second);
346  }
347  else
348  {
350  pars[FPGATrackSimTrackPars::ID0] = -1 * xy1p.first;
351  pars[FPGATrackSimTrackPars::IPHI] = atan2(rotang.first, -rotang.second);
352  }
353 
354  return pars;
355 }
356 
357 double FPGATrackSimGenScanKeyLyrHelper::zExpected(const KeyLyrPars& keypars, double r) const
358 {
359  return (keypars.z2 - keypars.z1) / (m_R2 - m_R1) * (r - m_R1) + keypars.z1;
360 }
361 
362 // takes hit position and calculated what xm should be for that hit
364 {
365  auto rotated_coords = getRotatedConfig(keypars);
366  auto xy1p = rotated_coords.xy1p;
367  auto rotang = rotated_coords.rotang;
368  auto y = rotated_coords.y;
369 
370  auto xyhp = getRotatedHit(rotang, hit);
371  double xh = xyhp.first - xy1p.first;
372  double yh = xyhp.second - xy1p.second;
373 
374  // use taylor expanded xm calculation
375  double sign = ((yh > 0) && (yh < y)) ? 1 : -1;
376  if ((std::abs(yh) < std::abs(xh)) || (std::abs(y - yh) < std::abs(xh)))
377  {
378  return ((xh > 0) ? 1 : -1) * 100000;
379  }
380 
381  double xm_taylor = sign * y * y / (y * y - 4 * xh * xh - 4 * (yh - y / 2.0) * (yh - y / 2.0)) * xh;
382 
383  return xm_taylor;
384 }
385 
386 // Find shift from nominal track to hit in the "x" direction
388 {
389  auto rotated_coords = getRotatedConfig(keypars);
390 
391  auto rotang = rotated_coords.rotang;
392 
393  auto xyhp = getRotatedHit(rotang, hit);
394 
395  double xh = xyhp.first-rotated_coords.xy1p.first;
396 
397  return xh - xExpected(keypars,hit);
398 }
399 
400 // Find shift from nominal track to hit in the "x" direction
402 {
403  auto rotated_coords = getRotatedConfig(keypars);
404 
405  auto rotang = rotated_coords.rotang;
406  auto y = rotated_coords.y;
407 
408  auto xyhp = getRotatedHit(rotang, hit);
409 
410  double yh = xyhp.second-rotated_coords.xy1p.second;
411 
412  return keypars.xm * (keypars.xm * keypars.xm + yh * (y - yh)) / (keypars.xm * keypars.xm + (y / 2) * (y / 2));
413 }
414 
415 double FPGATrackSimGenScanPhiSlicedKeyLyrBinning::phiResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug) const
416 {
417  return m_keylyrtool.deltaX(parSetToKeyPars(parset), hit);
418 }
419 
420 
FPGATrackSimGenScanKeyLyrHelper::rotatedConfig
Definition: FPGATrackSimGenScanBinning.h:416
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
FPGATrackSimGenScanGeomHelpers::phiFromPars
static double phiFromPars(double r, const FPGATrackSimTrackPars &pars)
Definition: FPGATrackSimGenScanBinning.cxx:221
FPGATrackSimTrackPars::IHIP
@ IHIP
Definition: FPGATrackSimTrackPars.h:49
beamspotman.r
def r
Definition: beamspotman.py:676
beamspotnt.var
var
Definition: bin/beamspotnt.py:1394
FPGATrackSimTrackPars::ID0
@ ID0
Definition: FPGATrackSimTrackPars.h:49
FPGATrackSimGenScanBinningBase::IdxSet
Definition: FPGATrackSimGenScanBinning.h:111
get_generator_info.result
result
Definition: get_generator_info.py:21
FPGATrackSimGenScanKeyLyrHelper::rotateXY
std::pair< double, double > rotateXY(const std::pair< double, double > &xy, const std::pair< double, double > &ang) const
Definition: FPGATrackSimGenScanBinning.cxx:257
FPGATrackSimGenScanBinningBase::StreamManager::m_setname
std::string m_setname
Definition: FPGATrackSimGenScanBinning.h:259
FPGATrackSimGenScanKeyLyrHelper::xmForHit
double xmForHit(const KeyLyrPars &keypars, const FPGATrackSimHit *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:363
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
FPGATrackSimGenScanGeomHelpers::CurvatureConstant
static constexpr double CurvatureConstant
Definition: FPGATrackSimGenScanBinning.h:288
FPGATrackSimGenScanBinningBase::rowPar
virtual double rowPar([[maybe_unused]] const ParSet &pars, [[maybe_unused]] FPGATrackSimHit const *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:172
yodamerge_tmp.variations
variations
Definition: yodamerge_tmp.py:257
FPGATrackSimGenScanKeyLyrHelper::getXY
std::pair< double, double > getXY(double r, double phi) const
Definition: FPGATrackSimGenScanBinning.cxx:242
FPGATrackSimTrackPars
Definition: FPGATrackSimTrackPars.h:22
FPGATrackSimGenScanBinningBase::inRange
bool inRange(unsigned par, double val) const
Definition: FPGATrackSimGenScanBinning.h:227
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
FPGATrackSimGenScanBinningBase::setIdxSubVec
void setIdxSubVec(IdxSet &idx, const std::vector< unsigned > &subvecelems, const std::vector< unsigned > &subvecidx) const
Definition: FPGATrackSimGenScanBinning.cxx:88
hist_file_dump.d
d
Definition: hist_file_dump.py:143
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
FPGATrackSimGenScanBinningBase::m_parBins
IdxSet m_parBins
Definition: FPGATrackSimGenScanBinning.h:270
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
FPGATrackSimTrackPars::IZ0
@ IZ0
Definition: FPGATrackSimTrackPars.h:49
FPGATrackSimGenScanGeomHelpers::ThetaFromEta
static double ThetaFromEta(double eta)
Definition: FPGATrackSimGenScanBinning.cxx:200
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars::z1
double z1
Definition: FPGATrackSimGenScanBinning.h:397
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:75
FPGATrackSimGenScanBinningBase::ParSet
Definition: FPGATrackSimGenScanBinning.h:101
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars::xm
double xm
Definition: FPGATrackSimGenScanBinning.h:401
FPGATrackSimGenScanBinningBase::hitInSlice
virtual bool hitInSlice(const IdxSet &idx, FPGATrackSimHit const *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:127
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
FPGATrackSimGenScanKeyLyrHelper::keyParsToTrackPars
FPGATrackSimTrackPars keyParsToTrackPars(const KeyLyrPars &keypars) const
Definition: FPGATrackSimGenScanBinning.cxx:310
operator<<
std::ostream & operator<<(std::ostream &os, const std::vector< unsigned > &idx)
Definition: FPGATrackSimGenScanBinning.cxx:175
FPGATrackSimGenScanBinningBase::center
ParSet center() const
Definition: FPGATrackSimGenScanBinning.cxx:48
xAOD::P4Helpers::deltaPhi
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[
Definition: xAODP4Helpers.h:69
FPGATrackSimGenScanBinningBase::binIdx
unsigned binIdx(unsigned par, double val) const
Definition: FPGATrackSimGenScanBinning.h:223
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
FPGATrackSimGenScanBinningBase::idxsetToRowParBinRange
virtual std::pair< unsigned, unsigned > idxsetToRowParBinRange(const IdxSet &idx, FPGATrackSimHit const *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:147
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
xAOD::unsigned
unsigned
Definition: RingSetConf_v1.cxx:662
FPGATrackSimGenScanBinningBase::trackParsToParSet
virtual const ParSet trackParsToParSet(const FPGATrackSimTrackPars &pars) const =0
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
FPGATrackSimGenScanBinningBase::sliceVar
virtual double sliceVar([[maybe_unused]] FPGATrackSimHit const *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:170
FPGATrackSimHit
Definition: FPGATrackSimHit.h:41
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars::phi2
double phi2
Definition: FPGATrackSimGenScanBinning.h:400
FPGATrackSimGenScanBinningBase::m_invalidBin
const IdxSet m_invalidBin
Definition: FPGATrackSimGenScanBinning.h:273
FPGATrackSimHit::getGPhi
float getGPhi() const
Definition: FPGATrackSimHit.h:144
FPGATrackSimGenScanBinning.h
Binning Classes for GenScanTool.
FPGATrackSimGenScanBinningBase::rowParBinIdx
unsigned rowParBinIdx(double val) const
Definition: FPGATrackSimGenScanBinning.h:224
FPGATrackSimGenScanBinningBase::NPars
static constexpr unsigned NPars
Definition: FPGATrackSimGenScanBinning.h:266
FPGATrackSimGenScanBinningBase::scanPars
virtual std::vector< unsigned > scanPars() const =0
FPGATrackSimGenScanBinningBase::slicePars
virtual std::vector< unsigned > slicePars() const =0
lumiFormat.i
int i
Definition: lumiFormat.py:85
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars::phi1
double phi1
Definition: FPGATrackSimGenScanBinning.h:399
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::phiResidual
virtual double phiResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug) const override
Definition: FPGATrackSimGenScanBinning.cxx:415
FPGATrackSimGenScanKeyLyrHelper::getRotatedHit
std::pair< double, double > getRotatedHit(const std::pair< double, double > &rotang, const FPGATrackSimHit *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:278
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars::z2
double z2
Definition: FPGATrackSimGenScanBinning.h:398
sign
int sign(int a)
Definition: TRT_StrawNeighbourSvc.h:107
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
AnalysisUtils::Delta::R
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
Definition: AnalysisMisc.h:49
FPGATrackSimGenScanBinningBase::StreamManager::m_map
std::map< std::string, std::fstream > m_map
Definition: FPGATrackSimGenScanBinning.h:260
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars
Definition: FPGATrackSimGenScanBinning.h:393
FPGATrackSimGenScanKeyLyrHelper::getRotationAngles
std::pair< double, double > getRotationAngles(const std::pair< double, double > &xy1, const std::pair< double, double > &xy2) const
Definition: FPGATrackSimGenScanBinning.cxx:247
debug
const bool debug
Definition: MakeUncertaintyPlots.cxx:53
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
FPGATrackSimGenScanGeomHelpers::parsToTrkPhi
static double parsToTrkPhi(const FPGATrackSimTrackPars &pars, FPGATrackSimHit const *hit)
Definition: FPGATrackSimGenScanBinning.cxx:228
FPGATrackSimGenScanKeyLyrHelper::getRotatedConfig
rotatedConfig getRotatedConfig(const KeyLyrPars &keypars) const
Definition: FPGATrackSimGenScanBinning.cxx:263
FPGATrackSimTrackPars::IPHI
@ IPHI
Definition: FPGATrackSimTrackPars.h:49
FPGATrackSimGenScanKeyLyrHelper::xExpected
double xExpected(const KeyLyrPars &keypars, const FPGATrackSimHit *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:401
FPGATrackSimGenScanBinningBase::parsToBin
const IdxSet parsToBin(FPGATrackSimTrackPars &pars) const
Definition: FPGATrackSimGenScanBinning.cxx:38
FPGATrackSimGenScanBinningBase::m_parMin
ParSet m_parMin
Definition: FPGATrackSimGenScanBinning.h:267
FPGATrackSimHit::getR
float getR() const
Definition: FPGATrackSimHit.h:143
y
#define y
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
DeMoScan.first
bool first
Definition: DeMoScan.py:536
FPGATrackSimGenScanKeyLyrHelper::deltaX
double deltaX(const KeyLyrPars &keypars, const FPGATrackSimHit *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:387
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
FPGATrackSimGenScanBinningBase::binLowEdge
double binLowEdge(unsigned par, unsigned bin) const
Definition: FPGATrackSimGenScanBinning.h:213
FPGATrackSimGenScanKeyLyrHelper::zExpected
double zExpected(const KeyLyrPars &keypars, double r) const
Definition: FPGATrackSimGenScanBinning.cxx:357
FPGATrackSimGenScanBinningBase::StreamManager::writeVar
void writeVar(const std::string &var, T val)
Definition: FPGATrackSimGenScanBinning.cxx:185
FPGATrackSimGenScanBinningBase::rowParIdx
virtual unsigned rowParIdx() const =0
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
FPGATrackSimGenScanBinningBase::sliceVarExpected
virtual double sliceVarExpected([[maybe_unused]] const ParSet &pars, [[maybe_unused]] FPGATrackSimHit const *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:171
FPGATrackSimGenScanKeyLyrHelper::trackParsToKeyPars
KeyLyrPars trackParsToKeyPars(const FPGATrackSimTrackPars &pars) const
Definition: FPGATrackSimGenScanBinning.cxx:284
FPGATrackSimGenScanBinningBase::makeVariationSet
std::vector< ParSet > makeVariationSet(const std::vector< unsigned > &scanpars, const IdxSet &idx) const
Definition: FPGATrackSimGenScanBinning.cxx:109
FPGATrackSimGenScanBinningBase::binCenter
double binCenter(unsigned par, unsigned bin) const
Definition: FPGATrackSimGenScanBinning.h:212
FPGATrackSimGenScanGeomHelpers::EtaFromTheta
static double EtaFromTheta(double theta)
Definition: FPGATrackSimGenScanBinning.cxx:205
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
FPGATrackSimGenScanGeomHelpers::zFromPars
static double zFromPars(double r, const FPGATrackSimTrackPars &pars)
Definition: FPGATrackSimGenScanBinning.cxx:210
FPGATrackSimGenScanBinningBase::subVec
std::vector< unsigned > subVec(const std::vector< unsigned > &elems, const IdxSet &invec) const
Definition: FPGATrackSimGenScanBinning.cxx:78
FPGATrackSimTrackPars::IETA
@ IETA
Definition: FPGATrackSimTrackPars.h:49