ATLAS Offline Software
FPGATrackSimGenScanBinning.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 #ifndef FPGATrackSimGenScanBinning_H
4 #define FPGATrackSimGenScanBinning_H
5 
58 
60 #include "GaudiKernel/StatusCode.h"
61 
62 #include <string>
63 #include <vector>
64 
65 //-------------------------------------------------------------------------------------------------------
66 // Binning base class
67 // Nomenclature:
68 // slice = first larger region binning (z0-eta binning in typical Hough)
69 // scan, row are the independent and dependent variables in a standard Hough ( e.g. pT and phi_track)
70 // slicePar = variables used to slice into overlapping regions (e.g. z0,eta)
71 // sliceVar = variable that slicePars specify a valid range of (e.g. hit_z)
72 // scanPar = scan variables of Hough-like scan (e.g. pT,d0)
73 // rowPar = variable that scanPars specify a valid range of for a given hit (e.g. phi_track)
74 //-------------------------------------------------------------------------------------------------------
76 {
77 public:
78  typedef std::vector<double> ParSet;
79  typedef std::vector<unsigned int> IdxSet;
80 
81  //--------------------------------------------------------------------------------------------------
82  //
83  // Virtual methods that are overloaded to define the binning
84  //
85  //--------------------------------------------------------------------------------------------------
86 
87  // Specification of parameters
88  virtual const std::string &parNames(unsigned i) const = 0;
89 
90  // overloaded to define which parameters are slice, scan, and row
91  // they return vectors which are the numbers of the parameters in the slice or scan
92  // and just an unsigned for row since there can be only one row parmeter
93  virtual std::vector<unsigned> slicePars() const = 0;
94  virtual std::vector<unsigned> scanPars() const = 0;
95  virtual unsigned rowParIdx() const = 0;
96 
97  // convert back and forth from pT, eta, phi, d0, z0 and internal paramater set
98  virtual const ParSet trackParsToParSet(const FPGATrackSimTrackPars &pars) const = 0;
99  virtual const FPGATrackSimTrackPars parSetToTrackPars(const ParSet &parset) const = 0;
100 
101  // calculate the distance in phi or eta from a track defined by parset to a hit
102  // these can be implemented as any variable in the r-phi or r-eta plane (not necessarily eta and phi).
103  virtual double phiResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug=false) const = 0;
104  virtual double etaResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug=false) const = 0;
105 
106  // Used to scale the histograms binning appropriately (very approximate, but at least the default ranges come up reasonable)
107  virtual double phiHistScale() const = 0;
108  virtual double etaHistScale() const = 0;
109 
110  // To determine if a hit is in a slice or row there are two options
111  // 1) Directly implement hitInSlice and idxsetToRowParBinRange.
112  // 2) Use the default implementaions of those in which case sliceVar, sliceVarExpected, and rowPar should be implemented
113  // Tells if a hit is in a slice
114  virtual bool hitInSlice(const IdxSet &idx, FPGATrackSimHit const *hit) const;
115 
116  // Tells the range of row parameters a hit is conistent with assuming the other parameters (slice and scan)
117  // are set by the given bin idx
118  virtual std::pair<unsigned, unsigned> idxsetToRowParBinRange(const IdxSet &idx, FPGATrackSimHit const *hit) const;
119 
120  private:
121  // Hit variable used in slicing (e.g. for eta-z0 slicing it would be the z of the hit)
122  virtual double sliceVar([[maybe_unused]] FPGATrackSimHit const *hit) const;
123 
124  // Find expected sliceVar for a track with the given parameters (e.g. or eta-z0 slicing this is the expect z for a given hit radius)
125  virtual double sliceVarExpected([[maybe_unused]] const ParSet &pars, [[maybe_unused]] FPGATrackSimHit const *hit) const;
126 
127  // Find the parameter for a given hit and parameters (e.g. given pT and d0 what is track phi)
128  virtual double rowPar([[maybe_unused]] const ParSet &pars, [[maybe_unused]] FPGATrackSimHit const *hit) const;
129 
130 
131  //--------------------------------------------------------------------------------------------------
132  //
133  // Functional Implementation
134  //
135  //--------------------------------------------------------------------------------------------------
136 
137  public:
138  // merge of both slice and scan par lists
139  std::vector<unsigned> sliceAndScanPars() const {
140  std::vector<unsigned> retv = slicePars();
141  std::vector<unsigned> scan = scanPars();
142  retv.insert(retv.end(), scan.begin(), scan.end());
143  return retv;
144  };
145 
146  // Find distance from bin center to hit in either slice direction or the row direction
147  double phiShift(const IdxSet &idx, FPGATrackSimHit const *hit, bool debug=false) const { return phiResidual(binCenter(idx),hit,debug);}
148  double etaShift(const IdxSet &idx, FPGATrackSimHit const *hit, bool debug=false) const { return etaResidual(binCenter(idx),hit,debug);}
149 
150  // accessors to get the numbers of bins in just the slice, scan, sliceAndScan, or row (subset of the 5-d space)
151  virtual std::vector<unsigned> sliceBins() const { return subVec(slicePars(), m_parBins); }
152  virtual std::vector<unsigned> scanBins() const { return subVec(scanPars(), m_parBins); }
153  virtual std::vector<unsigned> sliceAndScanBins() const { return subVec(sliceAndScanPars(), m_parBins); }
154  virtual unsigned rowBin() const { return m_parBins[rowParIdx()]; }
155 
156  // extract just the slice, scan, sliceAndScan, or row part of a 5-d index
157  virtual std::vector<unsigned> sliceIdx(const IdxSet &idx) const { return subVec(slicePars(), idx); }
158  virtual std::vector<unsigned> scanIdx(const IdxSet &idx) const { return subVec(scanPars(), idx); }
159  virtual std::vector<unsigned> sliceAndScanIdx(const IdxSet &idx) const { return subVec(sliceAndScanPars(), idx); }
160  virtual unsigned rowIdx(const IdxSet &idx) const { return idx[rowParIdx()]; }
161 
162  // Bin boundary utilities
163  double binCenter(unsigned par, unsigned bin) const { return m_parMin[par] + m_parStep[par] * (double(bin) + 0.5); }
164  double binLowEdge(unsigned par, unsigned bin) const { return m_parMin[par] + m_parStep[par] * (double(bin)); }
165  double binHighEdge(unsigned par, unsigned bin) const { return m_parMin[par] + m_parStep[par] * (double(bin) + 1.0); }
166  ParSet binLowEdge(const IdxSet &idx) const;
167  ParSet binCenter(const IdxSet &idx) const;
168 
169  // center of whole region
170  ParSet center() const;
171 
172  // get bin value for a specific parameter value
173  unsigned binIdx(unsigned par, double val) const { return (val > m_parMin[par]) ? unsigned(floor((val - m_parMin[par]) / m_parStep[par])) : 0; }
174  unsigned rowParBinIdx(double val) const { return binIdx(rowParIdx(), val); }
175 
176  // check if 1-d or 5-d parameter is within the range of the binning
177  bool inRange(unsigned par, double val) const { return ((val < m_parMax[par]) && (val > m_parMin[par])); }
178  bool inRange(const ParSet &pars) const;
179 
180  // convert parset (the binning parameters) to a 5-d bin
181  IdxSet binIdx(const ParSet &pars) const;
182 
183  // convert FPGATrackSimTrackPars to 5-d bin
185 
186  // Generic Utility for splitting in vector (e.g. idx or #bins 5-d vectors)
187  // into subvectors (e.g. idx for just the scan parameters). Technically, for
188  // a list of parameter indices (elems) gives the subvector of the invec with just those indices
189  std::vector<unsigned> subVec(const std::vector<unsigned>& elems, const std::vector<unsigned>& invec) const;
190 
191  // Opposite of above subVec, this sets the subvector
192  StatusCode setIdxSubVec(IdxSet &idx, const std::vector<unsigned>& subvecelems, const std::vector<unsigned>& subvecidx) const;
193 
194  // Makes are set of parameters corresponding to the corners specified by scanpars of the bin specified by idx
195  // e.g. if scan pars is (pT,d0) then the set is (low pT,low d0), (low pT, high d0), (high pT,low d0), (high pT, high d0)
196  std::vector<ParSet> makeVariationSet(const std::vector<unsigned> &scanpars, const IdxSet &idx) const;
197 
198  //
199  // Internal data
200  //
201  static constexpr unsigned NPars = 5;
202  std::vector<double> m_parMin;
203  std::vector<double> m_parMax;
204  std::vector<double> m_parStep;
205  std::vector<unsigned> m_parBins;
206 
207  // invalid bin value, there is no way a true bin could be there
210 };
211 
212 //-------------------------------------------------------------------------------------------------------
213 //
214 // Geometry Helpers -- does basic helix calculations
215 //
216 //-------------------------------------------------------------------------------------------------------
218 {
219 public:
220  // This is the constant needed to relate hit phi to track phi due to curvature
221  static constexpr double CurvatureConstant = fpgatracksim::A;
222 
223  // standard eta to theta calculation
224  static double ThetaFromEta(double eta);
225 
226  // standard theta to eta calculation
227  static double EtaFromTheta(double theta);
228 
229  // find the expected z position from the radius and track parameters
230  static double zFromPars(double r, const FPGATrackSimTrackPars &pars);
231 
232  // find the expected z position from the radius and track parameters
233  static double phiFromPars(double r, const FPGATrackSimTrackPars &pars);
234 
235  // find the track phi that would be consistent with the other track parameters and the hit (r,phi)
236  static double parsToTrkPhi(const FPGATrackSimTrackPars &pars, FPGATrackSimHit const *hit);
237 };
238 
239 //-------------------------------------------------------------------------------------------------------
240 //
241 // Standard pT, d0, phi, eta, z0 implmentation of FPGATrackSimGenScanStdTrkBinning
242 // -- this is then effectively a "standard" Hough transform except that it slices
243 // in (z0,eta) and then the accumulator scans is in both pT and d0 with phi_track
244 // as the row of the accumulator
245 //
246 //-------------------------------------------------------------------------------------------------------
248 {
249 public:
250  FPGATrackSimGenScanStdTrkBinning() : m_parNames({"z0", "eta", "qOverPt", "d0", "phi"}) {}
251  virtual const std::string &parNames(unsigned i) const override { return m_parNames[i]; }
252  virtual unsigned rowParIdx() const override { return 4;}
253 
254  virtual std::vector<unsigned> slicePars() const override { return std::vector<unsigned>({0,1}); }
255  virtual std::vector<unsigned> scanPars() const override { return std::vector<unsigned>({2,3}); }
256 
257  virtual double etaHistScale() const override {return 200.0;}
258  virtual double phiHistScale() const override {return 0.1;}
259 
260  virtual const ParSet trackParsToParSet(const FPGATrackSimTrackPars &pars) const override
261  {
262  return std::vector<double>({pars[FPGATrackSimTrackPars::IZ0], pars[FPGATrackSimTrackPars::IETA],
264  }
265  virtual const FPGATrackSimTrackPars parSetToTrackPars(const ParSet &parset) const override
266  {
268  pars[FPGATrackSimTrackPars::IZ0] = parset[0];
269  pars[FPGATrackSimTrackPars::IETA] = parset[1];
270  pars[FPGATrackSimTrackPars::IHIP] = parset[2];
271  pars[FPGATrackSimTrackPars::ID0] = parset[3];
272  pars[FPGATrackSimTrackPars::IPHI] = parset[4];
273  return pars;
274  }
275 
276  virtual double sliceVarExpected(const ParSet &pars, FPGATrackSimHit const *hit) const override
277  {
279  }
280  virtual double sliceVar(FPGATrackSimHit const *hit) const override
281  {
282  return hit->getZ();
283  }
284  virtual double rowPar(const ParSet &pars, FPGATrackSimHit const *hit) const override
285  {
287  }
288 
289  virtual double etaResidual(const ParSet &parset ,FPGATrackSimHit const * hit, [[maybe_unused]] bool debug=false) const override {
290  // this uses a shift in "eta*radius" instead of "z"
291  double theta = FPGATrackSimGenScanGeomHelpers::ThetaFromEta(parset[1]); // 1 = eta
292  return (hit->getZ() - parset[0]) * sin(theta) - hit->getR() * cos(theta); // 0=z0
293  }
294  virtual double phiResidual(const ParSet &parset,FPGATrackSimHit const *hit, [[maybe_unused]] bool debug=false) const override {
296  }
297 
298 private:
299  const std::vector<std::string> m_parNames;
300 };
301 
302 //-------------------------------------------------------------------------------------------------------
303 //
304 // Tool for doing Key Layer Math
305 // -- that is converting be the track parameters set by the standard (pT,eta,phi,d0,z0) and
306 // the "KeyLayer" parametes set by the phi and z at to radii (R1,R2) and a deviation from
307 // straight line between the two points (xm)
308 // -- All the math for the r-phi plane is based finding the rotated coordinate system where
309 // the points (R1,phiR1) and (R2,phiR2) both lie on the x=0 axis. Then the x of a track halfway
310 // between the points (called xm) is the sagitta.
311 //
312 //-------------------------------------------------------------------------------------------------------
314 {
315 public:
316  FPGATrackSimGenScanKeyLyrHelper(double r1, double r2) : m_R1(r1), m_R2(r2) {}
317 
318  struct KeyLyrPars {
319  double z1;
320  double z2;
321  double phi1;
322  double phi2;
323  double xm;
324  };
325 
326  // convert (r,phi) to (x,y)
327  std::pair<double, double> getXY(double r, double phi) const;
328 
329  // Get rotation angles need to rotate the two given points to be only seperated in the y direction (both have same x)
330  // results is the sin and cos of rotation
331  std::pair<double, double> getRotationAngles(const std::pair<double, double>& xy1, const std::pair<double, double>& xy2) const;
332 
333  // Apply a rotation angles (sin and cos) to a point xy
334  std::pair<double, double> rotateXY(const std::pair<double, double>& xy, const std::pair<double, double>& ang) const;
335 
336  // Simple struct and function to get the rotation angle and full rotated information in one call
338  {
339  std::pair<double, double> xy1p; // point 1 after rotation
340  std::pair<double, double> xy2p; // point 2 after rotation
341  std::pair<double, double> rotang; // rotation angle
342  double y; // y seperation after rotation
343  };
344  rotatedConfig getRotatedConfig(const KeyLyrPars &keypars) const;
345 
346  // get the x,y coordinates of a hit in the rotated coordinate system specified by rotang
347  std::pair<double, double> getRotatedHit(const std::pair<double, double>& rotang, const FPGATrackSimHit *hit) const;
348 
349  // Convert back and forth to standard track parameters
352 
353  // find expected z hit position given a radius
354  double zExpected(KeyLyrPars keypars, double r) const;
355 
356  // find expected x position of a hit at given a radius in the rotated coordinate system
357  double xExpected(KeyLyrPars keypars, const FPGATrackSimHit *hit) const;
358 
359  // takes hit position and calculated what xm would be for track going through that hit
360  double xmForHit(KeyLyrPars keypars, const FPGATrackSimHit *hit) const;
361 
362  // Find shift from nominal track to hit in the "x" direction
363  double deltaX(KeyLyrPars keypars, const FPGATrackSimHit *hit) const;
364 
365  // accessors
366  double R1() const {return m_R1;}
367  double R2() const {return m_R2;}
368 
369  private:
370  double m_R1;
371  double m_R2;
372 };
373 
374 //-------------------------------------------------------------------------------------------------------
375 //
376 // Key Layer Binning implementation (z slice then phi scan)
377 // -- Using the FPGATrackSimGenScanKeyLyrHelper to implement an instance of
378 // FPGATrackSimGenScanBinningBase which slices in z and then scans in (phiR1,phiR2),
379 // and then uses xm as the final row variable
380 //
381 //-------------------------------------------------------------------------------------------------------
383 {
384 public:
385 
386  FPGATrackSimGenScanKeyLyrBinning(double r_in, double r_out) :
387  m_keylyrtool(r_in,r_out), m_parNames({"zR1", "zR2", "phiR1", "phiR2", "xm"}) {}
388  virtual const std::string &parNames(unsigned i) const override { return m_parNames[i]; }
389  virtual unsigned rowParIdx() const override { return 4;}
390  virtual std::vector<unsigned> slicePars() const override { return std::vector<unsigned>({0,1}); }
391  virtual std::vector<unsigned> scanPars() const override { return std::vector<unsigned>({2,3}); }
392 
393  virtual double etaHistScale() const override {return 300.0;}
394  virtual double phiHistScale() const override {return 60.0;}
395 
397  return ParSet({keypars.z1,keypars.z2,keypars.phi1,keypars.phi2,keypars.xm});
398  }
399 
402  keypars.z1 = parset[0];
403  keypars.z2 = parset[1];
404  keypars.phi1 = parset[2];
405  keypars.phi2 = parset[3];
406  keypars.xm = parset[4];
407  return keypars;
408  }
409 
410  virtual const ParSet trackParsToParSet(const FPGATrackSimTrackPars &pars) const override {
412  }
413  virtual const FPGATrackSimTrackPars parSetToTrackPars(const ParSet &parset) const override {
415  }
416  virtual double sliceVarExpected(const ParSet &pars, FPGATrackSimHit const *hit) const override
417  {
419  }
420  virtual double sliceVar(FPGATrackSimHit const *hit) const override {
421  return hit->getZ();
422  }
423  virtual double rowPar(const ParSet &parset, FPGATrackSimHit const *hit) const override
424  {
425  return m_keylyrtool.xmForHit(parSetToKeyPars(parset),hit);
426  }
427  virtual double etaResidual(const ParSet &parset,FPGATrackSimHit const * hit, [[maybe_unused]] bool debug=false) const override {
428  return hit->getZ()- m_keylyrtool.zExpected(parSetToKeyPars(parset),hit->getR());
429  }
430 
431  virtual double phiResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug=false) const override {
432  return m_keylyrtool.deltaX(parSetToKeyPars(parset),hit);
433  }
434 
435 private:
437  const std::vector<std::string> m_parNames;
438 
439  };
440 
441 //-------------------------------------------------------------------------------------------------------
442 //
443 // Key Layer Binning Phi Sliced (then z scanned)
444 // -- This scans slices in all phi parameters ("phiR1", "phiR2", "xm")
445 // and then scans in in ("zR1", "zR2")
446 // -- This was used to explore the throughput of inverting these opperations
447 // -- Also the hitInSlice and idxsetToRowParBinRange functions were switched
448 // to be simple windows so that its more like real firmware
449 //
450 //-------------------------------------------------------------------------------------------------------
452 {
453 public:
454 
455  FPGATrackSimGenScanPhiSlicedKeyLyrBinning(double r_in, double r_out) :
456  m_keylyrtool(r_in,r_out), m_parNames({"zR1", "zR2", "phiR1", "phiR2", "xm"}) {}
457  virtual const std::string &parNames(unsigned i) const override { return m_parNames[i]; }
458  virtual unsigned rowParIdx() const override { return 4;}
459  virtual std::vector<unsigned> slicePars() const override { return std::vector<unsigned>({2,3,4}); }
460  virtual std::vector<unsigned> scanPars() const override { return std::vector<unsigned>({0,1}); }
461 
462  virtual double etaHistScale() const override {return 60.0;}
463  virtual double phiHistScale() const override {return 30.0;}
464 
466  return ParSet({keypars.z1,keypars.z2,keypars.phi1,keypars.phi2,keypars.xm});
467  }
468 
471  keypars.z1 = parset[0];
472  keypars.z2 = parset[1];
473  keypars.phi1 = parset[2];
474  keypars.phi2 = parset[3];
475  keypars.xm = parset[4];
476  return keypars;
477  }
478 
479  virtual const ParSet trackParsToParSet(const FPGATrackSimTrackPars &pars) const override {
481  }
482  virtual const FPGATrackSimTrackPars parSetToTrackPars(const ParSet &parset) const override {
484  }
485 
486  virtual double phiResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug) const override;
487 
488  virtual double etaResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug) const override
489  {
490  return hit->getZ()- m_keylyrtool.zExpected(parSetToKeyPars(parset),hit->getR());
491  }
492 
493  virtual bool hitInSlice(const IdxSet &idx, FPGATrackSimHit const *hit) const override {
494  double r1 = m_keylyrtool.R1();
495  double r2 = m_keylyrtool.R2();
496  auto keypars = parSetToKeyPars(binCenter(idx));
497  auto tmppars = keypars;
498  tmppars.xm = m_parStep[4] / 2.0;
499  double xrange = m_keylyrtool.xExpected(tmppars, hit) + (r1*m_parStep[2] + (r2*m_parStep[3] - r1*m_parStep[2]) / (r2 - r1) * (hit->getR() - r1))/2.0;
500  return (std::abs(phiShift(idx, hit)) < xrange);
501  }
502 
503  virtual std::pair<unsigned, unsigned> idxsetToRowParBinRange(const IdxSet &idx, [[maybe_unused]] FPGATrackSimHit const *hit) const override
504  {
505  double r1 = m_keylyrtool.R1();
506  double r2 = m_keylyrtool.R2();
507  double lowz_in = binLowEdge(0,idx[0]);
508  double highz_in = binHighEdge(0,idx[0]);
509  double lowz_out = binLowEdge(1,idx[1]);
510  double highz_out = binHighEdge(1,idx[1]);
511 
512 
513  // simple box cut
514  if (hit->getZ() < lowz_in + (lowz_out-lowz_in) * (hit->getR()-r1)/(r2-r1))
515  return std::pair<unsigned, unsigned>(0, 0); // empty range
516 
517  if (hit->getZ() > highz_in + (highz_out-highz_in) * (hit->getR()-r1)/(r2-r1))
518  return std::pair<unsigned, unsigned>(0, 0); // empty range
519 
520  return std::pair<unsigned, unsigned>(rowIdx(idx), rowIdx(idx) + 1); // range covers just 1 row bin
521  }
522 
523 private:
525  const std::vector<std::string> m_parNames;
526 
527  };
528 
529 
530 #endif // FPGATrackSimGenScanBinning_H
FPGATrackSimGenScanKeyLyrHelper::rotatedConfig
Definition: FPGATrackSimGenScanBinning.h:338
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
FPGATrackSimGenScanBinningBase::IdxSet
std::vector< unsigned int > IdxSet
Definition: FPGATrackSimGenScanBinning.h:79
xrange
void xrange(TH1 *h, bool symmetric)
Definition: computils.cxx:515
FPGATrackSimGenScanGeomHelpers::phiFromPars
static double phiFromPars(double r, const FPGATrackSimTrackPars &pars)
Definition: FPGATrackSimGenScanBinning.cxx:197
FPGATrackSimTrackPars::IHIP
@ IHIP
Definition: FPGATrackSimTrackPars.h:49
beamspotman.r
def r
Definition: beamspotman.py:676
FPGATrackSimGenScanKeyLyrHelper::R1
double R1() const
Definition: FPGATrackSimGenScanBinning.h:366
FPGATrackSimGenScanKeyLyrHelper::rotatedConfig::xy1p
std::pair< double, double > xy1p
Definition: FPGATrackSimGenScanBinning.h:339
FPGATrackSimGenScanBinningBase::scanBins
virtual std::vector< unsigned > scanBins() const
Definition: FPGATrackSimGenScanBinning.h:152
FPGATrackSimTrackPars::ID0
@ ID0
Definition: FPGATrackSimTrackPars.h:49
FPGATrackSimGenScanStdTrkBinning::slicePars
virtual std::vector< unsigned > slicePars() const override
Definition: FPGATrackSimGenScanBinning.h:254
FPGATrackSimGenScanBinningBase::m_parStep
std::vector< double > m_parStep
Definition: FPGATrackSimGenScanBinning.h:204
FPGATrackSimGenScanKeyLyrHelper::rotateXY
std::pair< double, double > rotateXY(const std::pair< double, double > &xy, const std::pair< double, double > &ang) const
Definition: FPGATrackSimGenScanBinning.cxx:233
max
#define max(a, b)
Definition: cfImp.cxx:41
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::FPGATrackSimGenScanPhiSlicedKeyLyrBinning
FPGATrackSimGenScanPhiSlicedKeyLyrBinning(double r_in, double r_out)
Definition: FPGATrackSimGenScanBinning.h:455
FPGATrackSimGenScanKeyLyrHelper::R2
double R2() const
Definition: FPGATrackSimGenScanBinning.h:367
FPGATrackSimGenScanBinningBase::ParSet
std::vector< double > ParSet
Definition: FPGATrackSimGenScanBinning.h:78
FPGATrackSimGenScanBinningBase::setIdxSubVec
StatusCode setIdxSubVec(IdxSet &idx, const std::vector< unsigned > &subvecelems, const std::vector< unsigned > &subvecidx) const
Definition: FPGATrackSimGenScanBinning.cxx:87
FPGATrackSimGenScanKeyLyrBinning::phiHistScale
virtual double phiHistScale() const override
Definition: FPGATrackSimGenScanBinning.h:394
FPGATrackSimGenScanGeomHelpers::CurvatureConstant
static constexpr double CurvatureConstant
Definition: FPGATrackSimGenScanBinning.h:221
FPGATrackSimGenScanBinningBase::rowPar
virtual double rowPar([[maybe_unused]] const ParSet &pars, [[maybe_unused]] FPGATrackSimHit const *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:167
FPGATrackSimGenScanKeyLyrBinning::etaResidual
virtual double etaResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug=false) const override
Definition: FPGATrackSimGenScanBinning.h:427
FPGATrackSimGenScanKeyLyrHelper::getXY
std::pair< double, double > getXY(double r, double phi) const
Definition: FPGATrackSimGenScanBinning.cxx:218
FPGATrackSimGenScanKeyLyrHelper::deltaX
double deltaX(KeyLyrPars keypars, const FPGATrackSimHit *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:363
FPGATrackSimTrackPars
Definition: FPGATrackSimTrackPars.h:22
FPGATrackSimGenScanBinningBase::inRange
bool inRange(unsigned par, double val) const
Definition: FPGATrackSimGenScanBinning.h:177
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
xAODP4Helpers.h
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::idxsetToRowParBinRange
virtual std::pair< unsigned, unsigned > idxsetToRowParBinRange(const IdxSet &idx, [[maybe_unused]] FPGATrackSimHit const *hit) const override
Definition: FPGATrackSimGenScanBinning.h:503
FPGATrackSimGenScanStdTrkBinning::sliceVar
virtual double sliceVar(FPGATrackSimHit const *hit) const override
Definition: FPGATrackSimGenScanBinning.h:280
FPGATrackSimTrackPars::IZ0
@ IZ0
Definition: FPGATrackSimTrackPars.h:49
FPGATrackSimGenScanGeomHelpers::ThetaFromEta
static double ThetaFromEta(double eta)
Definition: FPGATrackSimGenScanBinning.cxx:176
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars::z1
double z1
Definition: FPGATrackSimGenScanBinning.h:319
FPGATrackSimGenScanKeyLyrHelper::m_R2
double m_R2
Definition: FPGATrackSimGenScanBinning.h:371
FPGATrackSimGenScanKeyLyrBinning::sliceVar
virtual double sliceVar(FPGATrackSimHit const *hit) const override
Definition: FPGATrackSimGenScanBinning.h:420
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:75
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars::xm
double xm
Definition: FPGATrackSimGenScanBinning.h:323
FPGATrackSimGenScanKeyLyrHelper::FPGATrackSimGenScanKeyLyrHelper
FPGATrackSimGenScanKeyLyrHelper(double r1, double r2)
Definition: FPGATrackSimGenScanBinning.h:316
FPGATrackSimGenScanBinningBase::sliceAndScanIdx
virtual std::vector< unsigned > sliceAndScanIdx(const IdxSet &idx) const
Definition: FPGATrackSimGenScanBinning.h:159
FPGATrackSimGenScanKeyLyrHelper::xmForHit
double xmForHit(KeyLyrPars keypars, const FPGATrackSimHit *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:339
FPGATrackSimGenScanBinningBase::hitInSlice
virtual bool hitInSlice(const IdxSet &idx, FPGATrackSimHit const *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:122
FPGATrackSimGenScanKeyLyrBinning::trackParsToParSet
virtual const ParSet trackParsToParSet(const FPGATrackSimTrackPars &pars) const override
Definition: FPGATrackSimGenScanBinning.h:410
FPGATrackSimGenScanKeyLyrHelper::keyParsToTrackPars
FPGATrackSimTrackPars keyParsToTrackPars(const KeyLyrPars &keypars) const
Definition: FPGATrackSimGenScanBinning.cxx:286
bin
Definition: BinsDiffFromStripMedian.h:43
FPGATrackSimGenScanKeyLyrBinning::etaHistScale
virtual double etaHistScale() const override
Definition: FPGATrackSimGenScanBinning.h:393
FPGATrackSimGenScanBinningBase::parNames
virtual const std::string & parNames(unsigned i) const =0
FPGATrackSimGenScanBinningBase::m_parBins
std::vector< unsigned > m_parBins
Definition: FPGATrackSimGenScanBinning.h:205
FPGATrackSimGenScanBinningBase::center
ParSet center() const
Definition: FPGATrackSimGenScanBinning.cxx:47
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::rowParIdx
virtual unsigned rowParIdx() const override
Definition: FPGATrackSimGenScanBinning.h:458
xAOD::P4Helpers::deltaPhi
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[
Definition: xAODP4Helpers.h:69
FPGATrackSimGenScanKeyLyrBinning::m_parNames
const std::vector< std::string > m_parNames
Definition: FPGATrackSimGenScanBinning.h:437
FPGATrackSimGenScanBinningBase::etaResidual
virtual double etaResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug=false) const =0
FPGATrackSimGenScanBinningBase::binIdx
unsigned binIdx(unsigned par, double val) const
Definition: FPGATrackSimGenScanBinning.h:173
FPGATrackSimGenScanBinningBase::m_invalidBin
const std::vector< unsigned > m_invalidBin
Definition: FPGATrackSimGenScanBinning.h:208
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
FPGATrackSimGenScanStdTrkBinning::parNames
virtual const std::string & parNames(unsigned i) const override
Definition: FPGATrackSimGenScanBinning.h:251
FPGATrackSimGenScanKeyLyrBinning::phiResidual
virtual double phiResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug=false) const override
Definition: FPGATrackSimGenScanBinning.h:431
FPGATrackSimGenScanBinningBase::idxsetToRowParBinRange
virtual std::pair< unsigned, unsigned > idxsetToRowParBinRange(const IdxSet &idx, FPGATrackSimHit const *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:142
FPGATrackSimGenScanBinningBase::phiHistScale
virtual double phiHistScale() const =0
xAOD::unsigned
unsigned
Definition: RingSetConf_v1.cxx:662
FPGATrackSimGenScanKeyLyrBinning::rowPar
virtual double rowPar(const ParSet &parset, FPGATrackSimHit const *hit) const override
Definition: FPGATrackSimGenScanBinning.h:423
FPGATrackSimGenScanBinningBase::scanIdx
virtual std::vector< unsigned > scanIdx(const IdxSet &idx) const
Definition: FPGATrackSimGenScanBinning.h:158
FPGATrackSimGenScanStdTrkBinning::phiResidual
virtual double phiResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug=false) const override
Definition: FPGATrackSimGenScanBinning.h:294
FPGATrackSimGenScanBinningBase::trackParsToParSet
virtual const ParSet trackParsToParSet(const FPGATrackSimTrackPars &pars) const =0
FPGATrackSimGenScanKeyLyrHelper::rotatedConfig::rotang
std::pair< double, double > rotang
Definition: FPGATrackSimGenScanBinning.h:341
FPGATrackSimGenScanStdTrkBinning::etaResidual
virtual double etaResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug=false) const override
Definition: FPGATrackSimGenScanBinning.h:289
FPGATrackSimConstants.h
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::phiHistScale
virtual double phiHistScale() const override
Definition: FPGATrackSimGenScanBinning.h:463
FPGATrackSimGenScanBinningBase::sliceVar
virtual double sliceVar([[maybe_unused]] FPGATrackSimHit const *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:165
FPGATrackSimGenScanKeyLyrBinning::parNames
virtual const std::string & parNames(unsigned i) const override
Definition: FPGATrackSimGenScanBinning.h:388
FPGATrackSimHit
Definition: FPGATrackSimHit.h:41
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars::phi2
double phi2
Definition: FPGATrackSimGenScanBinning.h:322
FPGATrackSimHit::getGPhi
float getGPhi() const
Definition: FPGATrackSimHit.h:134
FPGATrackSimGenScanBinningBase::m_parMax
std::vector< double > m_parMax
Definition: FPGATrackSimGenScanBinning.h:203
FPGATrackSimGenScanBinningBase::rowParBinIdx
unsigned rowParBinIdx(double val) const
Definition: FPGATrackSimGenScanBinning.h:174
FPGATrackSimGenScanBinningBase::sliceAndScanPars
std::vector< unsigned > sliceAndScanPars() const
Definition: FPGATrackSimGenScanBinning.h:139
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::scanPars
virtual std::vector< unsigned > scanPars() const override
Definition: FPGATrackSimGenScanBinning.h:460
FPGATrackSimGenScanBinningBase::m_parMin
std::vector< double > m_parMin
Definition: FPGATrackSimGenScanBinning.h:202
FPGATrackSimGenScanKeyLyrHelper::xExpected
double xExpected(KeyLyrPars keypars, const FPGATrackSimHit *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:377
FPGATrackSimGenScanBinningBase::etaHistScale
virtual double etaHistScale() const =0
FPGATrackSimGenScanBinningBase::NPars
static constexpr unsigned NPars
Definition: FPGATrackSimGenScanBinning.h:201
FPGATrackSimGenScanBinningBase::sliceIdx
virtual std::vector< unsigned > sliceIdx(const IdxSet &idx) const
Definition: FPGATrackSimGenScanBinning.h:157
FPGATrackSimGenScanKeyLyrBinning::sliceVarExpected
virtual double sliceVarExpected(const ParSet &pars, FPGATrackSimHit const *hit) const override
Definition: FPGATrackSimGenScanBinning.h:416
FPGATrackSimGenScanStdTrkBinning
Definition: FPGATrackSimGenScanBinning.h:248
FPGATrackSimGenScanBinningBase::scanPars
virtual std::vector< unsigned > scanPars() const =0
FPGATrackSimGenScanBinningBase::slicePars
virtual std::vector< unsigned > slicePars() const =0
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::etaResidual
virtual double etaResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug) const override
Definition: FPGATrackSimGenScanBinning.h:488
FPGATrackSimGenScanBinningBase::phiResidual
virtual double phiResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug=false) const =0
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::keyparsToParSet
ParSet keyparsToParSet(const FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars &keypars) const
Definition: FPGATrackSimGenScanBinning.h:465
FPGATrackSimGenScanKeyLyrBinning::rowParIdx
virtual unsigned rowParIdx() const override
Definition: FPGATrackSimGenScanBinning.h:389
lumiFormat.i
int i
Definition: lumiFormat.py:85
FPGATrackSimGenScanKeyLyrBinning::scanPars
virtual std::vector< unsigned > scanPars() const override
Definition: FPGATrackSimGenScanBinning.h:391
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::m_keylyrtool
FPGATrackSimGenScanKeyLyrHelper m_keylyrtool
Definition: FPGATrackSimGenScanBinning.h:524
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars::phi1
double phi1
Definition: FPGATrackSimGenScanBinning.h:321
FPGATrackSimGenScanKeyLyrBinning::FPGATrackSimGenScanKeyLyrBinning
FPGATrackSimGenScanKeyLyrBinning(double r_in, double r_out)
Definition: FPGATrackSimGenScanBinning.h:386
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::phiResidual
virtual double phiResidual(const ParSet &parset, FPGATrackSimHit const *hit, [[maybe_unused]] bool debug) const override
Definition: FPGATrackSimGenScanBinning.cxx:391
FPGATrackSimGenScanKeyLyrHelper::getRotatedHit
std::pair< double, double > getRotatedHit(const std::pair< double, double > &rotang, const FPGATrackSimHit *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:254
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars::z2
double z2
Definition: FPGATrackSimGenScanBinning.h:320
FPGATrackSimGenScanPhiSlicedKeyLyrBinning
Definition: FPGATrackSimGenScanBinning.h:452
FPGATrackSimGenScanKeyLyrHelper::rotatedConfig::xy2p
std::pair< double, double > xy2p
Definition: FPGATrackSimGenScanBinning.h:340
FPGATrackSimGenScanBinningBase::rowIdx
virtual unsigned rowIdx(const IdxSet &idx) const
Definition: FPGATrackSimGenScanBinning.h:160
FPGATrackSimGenScanBinningBase::sliceAndScanBins
virtual std::vector< unsigned > sliceAndScanBins() const
Definition: FPGATrackSimGenScanBinning.h:153
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::m_parNames
const std::vector< std::string > m_parNames
Definition: FPGATrackSimGenScanBinning.h:525
FPGATrackSimHit::getZ
float getZ() const
Definition: FPGATrackSimHit.h:132
FPGATrackSimGenScanKeyLyrBinning
Definition: FPGATrackSimGenScanBinning.h:383
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars
Definition: FPGATrackSimGenScanBinning.h:318
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::parSetToTrackPars
virtual const FPGATrackSimTrackPars parSetToTrackPars(const ParSet &parset) const override
Definition: FPGATrackSimGenScanBinning.h:482
FPGATrackSimGenScanKeyLyrHelper::getRotationAngles
std::pair< double, double > getRotationAngles(const std::pair< double, double > &xy1, const std::pair< double, double > &xy2) const
Definition: FPGATrackSimGenScanBinning.cxx:223
FPGATrackSimGenScanStdTrkBinning::m_parNames
const std::vector< std::string > m_parNames
Definition: FPGATrackSimGenScanBinning.h:299
FPGATrackSimGenScanKeyLyrBinning::m_keylyrtool
FPGATrackSimGenScanKeyLyrHelper m_keylyrtool
Definition: FPGATrackSimGenScanBinning.h:436
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::etaHistScale
virtual double etaHistScale() const override
Definition: FPGATrackSimGenScanBinning.h:462
debug
const bool debug
Definition: MakeUncertaintyPlots.cxx:53
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
FPGATrackSimGenScanStdTrkBinning::parSetToTrackPars
virtual const FPGATrackSimTrackPars parSetToTrackPars(const ParSet &parset) const override
Definition: FPGATrackSimGenScanBinning.h:265
FPGATrackSimHit.h
: FPGATrackSim-specific class to represent an hit in the detector.
FPGATrackSimGenScanGeomHelpers
Definition: FPGATrackSimGenScanBinning.h:218
FPGATrackSimGenScanKeyLyrHelper::zExpected
double zExpected(KeyLyrPars keypars, double r) const
Definition: FPGATrackSimGenScanBinning.cxx:333
FPGATrackSimGenScanGeomHelpers::parsToTrkPhi
static double parsToTrkPhi(const FPGATrackSimTrackPars &pars, FPGATrackSimHit const *hit)
Definition: FPGATrackSimGenScanBinning.cxx:204
FPGATrackSimGenScanKeyLyrHelper::getRotatedConfig
rotatedConfig getRotatedConfig(const KeyLyrPars &keypars) const
Definition: FPGATrackSimGenScanBinning.cxx:239
FPGATrackSimGenScanStdTrkBinning::trackParsToParSet
virtual const ParSet trackParsToParSet(const FPGATrackSimTrackPars &pars) const override
Definition: FPGATrackSimGenScanBinning.h:260
FPGATrackSimGenScanBinningBase::etaShift
double etaShift(const IdxSet &idx, FPGATrackSimHit const *hit, bool debug=false) const
Definition: FPGATrackSimGenScanBinning.h:148
FPGATrackSimTrackPars::IPHI
@ IPHI
Definition: FPGATrackSimTrackPars.h:49
FPGATrackSimGenScanBinningBase::rowBin
virtual unsigned rowBin() const
Definition: FPGATrackSimGenScanBinning.h:154
FPGATrackSimGenScanBinningBase::parsToBin
const IdxSet parsToBin(FPGATrackSimTrackPars &pars) const
Definition: FPGATrackSimGenScanBinning.cxx:37
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::hitInSlice
virtual bool hitInSlice(const IdxSet &idx, FPGATrackSimHit const *hit) const override
Definition: FPGATrackSimGenScanBinning.h:493
FPGATrackSimGenScanStdTrkBinning::sliceVarExpected
virtual double sliceVarExpected(const ParSet &pars, FPGATrackSimHit const *hit) const override
Definition: FPGATrackSimGenScanBinning.h:276
FPGATrackSimHit::getR
float getR() const
Definition: FPGATrackSimHit.h:133
FPGATrackSimGenScanStdTrkBinning::phiHistScale
virtual double phiHistScale() const override
Definition: FPGATrackSimGenScanBinning.h:258
scan
void scan(TDirectory *td=0, int depth=0)
Definition: listroot.cxx:440
FPGATrackSimGenScanStdTrkBinning::scanPars
virtual std::vector< unsigned > scanPars() const override
Definition: FPGATrackSimGenScanBinning.h:255
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
FPGATrackSimGenScanBinningBase::parSetToTrackPars
virtual const FPGATrackSimTrackPars parSetToTrackPars(const ParSet &parset) const =0
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
FPGATrackSimGenScanKeyLyrBinning::parSetToTrackPars
virtual const FPGATrackSimTrackPars parSetToTrackPars(const ParSet &parset) const override
Definition: FPGATrackSimGenScanBinning.h:413
FPGATrackSimGenScanBinningBase::binLowEdge
double binLowEdge(unsigned par, unsigned bin) const
Definition: FPGATrackSimGenScanBinning.h:164
FPGATrackSimGenScanBinningBase::subVec
std::vector< unsigned > subVec(const std::vector< unsigned > &elems, const std::vector< unsigned > &invec) const
Definition: FPGATrackSimGenScanBinning.cxx:77
FPGATrackSimGenScanBinningBase::rowParIdx
virtual unsigned rowParIdx() const =0
FPGATrackSimGenScanStdTrkBinning::rowParIdx
virtual unsigned rowParIdx() const override
Definition: FPGATrackSimGenScanBinning.h:252
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
FPGATrackSimGenScanKeyLyrHelper::rotatedConfig::y
double y
Definition: FPGATrackSimGenScanBinning.h:342
FPGATrackSimGenScanStdTrkBinning::rowPar
virtual double rowPar(const ParSet &pars, FPGATrackSimHit const *hit) const override
Definition: FPGATrackSimGenScanBinning.h:284
FPGATrackSimGenScanBinningBase
Definition: FPGATrackSimGenScanBinning.h:76
FPGATrackSimGenScanStdTrkBinning::etaHistScale
virtual double etaHistScale() const override
Definition: FPGATrackSimGenScanBinning.h:257
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::trackParsToParSet
virtual const ParSet trackParsToParSet(const FPGATrackSimTrackPars &pars) const override
Definition: FPGATrackSimGenScanBinning.h:479
FPGATrackSimGenScanBinningBase::phiShift
double phiShift(const IdxSet &idx, FPGATrackSimHit const *hit, bool debug=false) const
Definition: FPGATrackSimGenScanBinning.h:147
FPGATrackSimGenScanKeyLyrHelper::m_R1
double m_R1
Definition: FPGATrackSimGenScanBinning.h:370
FPGATrackSimGenScanBinningBase::sliceVarExpected
virtual double sliceVarExpected([[maybe_unused]] const ParSet &pars, [[maybe_unused]] FPGATrackSimHit const *hit) const
Definition: FPGATrackSimGenScanBinning.cxx:166
FPGATrackSimGenScanKeyLyrHelper::trackParsToKeyPars
KeyLyrPars trackParsToKeyPars(const FPGATrackSimTrackPars &pars) const
Definition: FPGATrackSimGenScanBinning.cxx:260
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::parNames
virtual const std::string & parNames(unsigned i) const override
Definition: FPGATrackSimGenScanBinning.h:457
FPGATrackSimGenScanBinningBase::makeVariationSet
std::vector< ParSet > makeVariationSet(const std::vector< unsigned > &scanpars, const IdxSet &idx) const
Definition: FPGATrackSimGenScanBinning.cxx:104
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::slicePars
virtual std::vector< unsigned > slicePars() const override
Definition: FPGATrackSimGenScanBinning.h:459
FPGATrackSimGenScanBinningBase::sliceBins
virtual std::vector< unsigned > sliceBins() const
Definition: FPGATrackSimGenScanBinning.h:151
FPGATrackSimGenScanPhiSlicedKeyLyrBinning::parSetToKeyPars
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars parSetToKeyPars(const ParSet &parset) const
Definition: FPGATrackSimGenScanBinning.h:469
FPGATrackSimGenScanStdTrkBinning::FPGATrackSimGenScanStdTrkBinning
FPGATrackSimGenScanStdTrkBinning()
Definition: FPGATrackSimGenScanBinning.h:250
FPGATrackSimGenScanBinningBase::binCenter
double binCenter(unsigned par, unsigned bin) const
Definition: FPGATrackSimGenScanBinning.h:163
FPGATrackSimGenScanKeyLyrBinning::slicePars
virtual std::vector< unsigned > slicePars() const override
Definition: FPGATrackSimGenScanBinning.h:390
FPGATrackSimGenScanKeyLyrHelper
Definition: FPGATrackSimGenScanBinning.h:314
FPGATrackSimGenScanKeyLyrBinning::keyparsToParSet
ParSet keyparsToParSet(const FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars &keypars) const
Definition: FPGATrackSimGenScanBinning.h:396
FPGATrackSimTrackPars.h
Structs that store the 5 track parameters.
FPGATrackSimGenScanGeomHelpers::EtaFromTheta
static double EtaFromTheta(double theta)
Definition: FPGATrackSimGenScanBinning.cxx:181
FPGATrackSimGenScanBinningBase::binHighEdge
double binHighEdge(unsigned par, unsigned bin) const
Definition: FPGATrackSimGenScanBinning.h:165
FPGATrackSimGenScanGeomHelpers::zFromPars
static double zFromPars(double r, const FPGATrackSimTrackPars &pars)
Definition: FPGATrackSimGenScanBinning.cxx:186
FPGATrackSimGenScanKeyLyrBinning::parSetToKeyPars
FPGATrackSimGenScanKeyLyrHelper::KeyLyrPars parSetToKeyPars(const ParSet &parset) const
Definition: FPGATrackSimGenScanBinning.h:400
FPGATrackSimTrackPars::IETA
@ IETA
Definition: FPGATrackSimTrackPars.h:49