ATLAS Offline Software
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
FPGATrackSimKeyLayerBinDesc Class Reference

#include <FPGATrackSimKeyLayerBinDesc.h>

Inheritance diagram for FPGATrackSimKeyLayerBinDesc:
Collaboration diagram for FPGATrackSimKeyLayerBinDesc:

Classes

struct  etaLUTConsts
 
struct  phiLUTConsts
 

Public Member Functions

virtual StatusCode initialize () override
 
virtual const std::string & parNames (unsigned i) const override
 
virtual const FPGATrackSimBinUtil::ParSet trackParsToParSet (const FPGATrackSimTrackPars &pars) const override
 
virtual const FPGATrackSimTrackPars parSetToTrackPars (const FPGATrackSimBinUtil::ParSet &parset) const override
 
virtual double phiResidual (const FPGATrackSimBinUtil::ParSet &parset, FPGATrackSimHit const *hit) const override
 
virtual double etaResidual (const FPGATrackSimBinUtil::ParSet &parset, FPGATrackSimHit const *hit) const override
 
bool stepIsRPhi (const FPGATrackSimBinStep &step) const
 
bool stepIsREta (const FPGATrackSimBinStep &step) const
 
virtual bool hitInBin (const FPGATrackSimBinStep &step, const FPGATrackSimBinUtil::IdxSet &idx, FPGATrackSimBinUtil::StoredHit &storedhit) const override
 
phiLUTConsts getPhiLUTConsts (const FPGATrackSimBinStep &step, const std::vector< unsigned > &idx) const
 
etaLUTConsts getEtaLUTConsts (const FPGATrackSimBinStep &step, const std::vector< unsigned > &idx) const
 
virtual void writeLUTs (const FPGATrackSimBinStep &step) const override
 

Private Member Functions

FPGATrackSimBinUtil::ParSet keyparsToParSet (const FPGATrackSimKeyLayerTool::KeyLyrPars &keypars) const
 
FPGATrackSimKeyLayerTool::KeyLyrPars parSetToKeyPars (const FPGATrackSimBinUtil::ParSet &parset) const
 

Private Attributes

Gaudi::Property< double > m_rin {this, "rin", {-1.0}, "Radius of inner layer for keylayer definition"}
 
Gaudi::Property< double > m_rout {this, "rout", {-1.0}, "Radius of outer layer for keylayer definition"}
 
Gaudi::Property< bool > m_approxMath {this, "approxMath", {false}, "Use approximate math to emulate possible firmware"}
 
Gaudi::Property< double > m_d0pad {this, "D0Pad", 0.0, "Extra phi padding from d0 resolution"}
 
Gaudi::Property< double > m_phipad {this, "PhiPad", 0.0, "Extra phi padding from phi resolution"}
 
Gaudi::Property< double > m_qptpad {this, "QPtPad", 0.0, "Extra phi padding from q/pT resolution"}
 
Gaudi::Property< double > m_z0pad {this, "Z0Pad", 0.0, "Extra eta padding from z0 resolution"}
 
Gaudi::Property< double > m_etapad {this, "EtaPad", 0.0, "Extra eta padding from eta resolution"}
 
Gaudi::Property< unsigned > m_region {this, "region", 0, "Region number, needed to write out lookup tables for test vectors"}
 
Gaudi::Property< std::vector< double > > m_slPerEtaMod
 
Gaudi::Property< double > m_phiOffset {this, "PhiOffset", 0.0, "Phi offset between local and global parameters (avoids phi wrap around effects in region code)"}
 
Gaudi::Property< unsigned > m_fieldCorRegion { this, "fieldCorRegion", 2, "region for fieldCorrection"}
 
Gaudi::Property< bool > m_fieldCorrection {this, "fieldCorrection", true, "Use magnetic field correction for Hough transform"}
 
FPGATrackSimKeyLayerTool m_keylyrtool
 
const std::vector< std::string > m_parNames {"zR1", "zR2", "phiR1", "phiR2", "xm"}
 
const std::vector< unsigned > m_phipars {2, 3, 4}
 
const std::vector< unsigned > m_etapars {0, 1}
 

Detailed Description

Definition at line 42 of file FPGATrackSimKeyLayerBinDesc.h.

Member Function Documentation

◆ etaResidual()

virtual double FPGATrackSimKeyLayerBinDesc::etaResidual ( const FPGATrackSimBinUtil::ParSet parset,
FPGATrackSimHit const hit 
) const
inlineoverridevirtual

Definition at line 81 of file FPGATrackSimKeyLayerBinDesc.h.

81  {
82  return hit->getZ()- m_keylyrtool.zExpected(parSetToKeyPars(parset),hit->getR());
83  }

◆ getEtaLUTConsts()

FPGATrackSimKeyLayerBinDesc::etaLUTConsts FPGATrackSimKeyLayerBinDesc::getEtaLUTConsts ( const FPGATrackSimBinStep step,
const std::vector< unsigned > &  idx 
) const

Definition at line 209 of file FPGATrackSimKeyLayerBinDesc.cxx.

209  {
210  etaLUTConsts retv;
211 
212  double r_in = m_keylyrtool.R1();
213  double r_out = m_keylyrtool.R2();
214  retv.r_in = r_in;
215  retv.r_out= r_out;
216 
217  double z_in = step.binCenter(0, idx[0]);
218  double z_out = step.binCenter(1, idx[1]);
219  double dz_dr = (z_out - z_in) / (r_out - r_in);
220 
221  retv.z_in = z_in;
222  retv.dz_dr = dz_dr;
223 
224  double w_in = step.binWidth(0) / 2.0;
225  double w_out = step.binWidth(1) / 2.0;
226  double dw_dr = (w_out - w_in) / (r_out - r_in);
227  retv.w_in = w_in;
228  retv.dw_dr = dw_dr;
229 
230  return retv;
231 }

◆ getPhiLUTConsts()

FPGATrackSimKeyLayerBinDesc::phiLUTConsts FPGATrackSimKeyLayerBinDesc::getPhiLUTConsts ( const FPGATrackSimBinStep step,
const std::vector< unsigned > &  idx 
) const

Definition at line 175 of file FPGATrackSimKeyLayerBinDesc.cxx.

175  {
176  phiLUTConsts retv;
177 
179  keypars.phi1 = step.binCenter(2,idx[0]);
180  keypars.phi2 = step.binCenter(3,idx[1]);
181  keypars.xm = step.binCenter(4, idx[2]);
182 
183  auto rotated_coords = m_keylyrtool.getRotatedConfig(keypars);
184 
185  retv.y = rotated_coords.y;
186  retv.x1p = rotated_coords.xy1p.first;
187  retv.y1p = rotated_coords.xy1p.second;
188  retv.cosb = rotated_coords.rotang.first;
189  retv.sinb = rotated_coords.rotang.second;
190  retv.x_m = keypars.xm;
191  retv.x_factor = 4.0 * keypars.xm / (rotated_coords.y * rotated_coords.y);
192 
193  double r_in = m_keylyrtool.R1();
194  double r_out = m_keylyrtool.R2();
195  retv.r_in = r_in;
196  retv.r_out= r_out;
197 
198  double w_in = r_in * step.binWidth(2) / 2.0;
199  double w_out = r_out * step.binWidth(3) / 2.0;
200  double w_x = step.binWidth(4) / 2.0;
201 
202  retv.w_x = 4.0 * w_x / ((r_out - r_in) * (r_out - r_in));
203  retv.w_in = w_in;
204  retv.dw_dr = (w_out - w_in) / (r_out - r_in);
205 
206  return retv;
207 }

◆ hitInBin()

bool FPGATrackSimKeyLayerBinDesc::hitInBin ( const FPGATrackSimBinStep step,
const FPGATrackSimBinUtil::IdxSet idx,
FPGATrackSimBinUtil::StoredHit storedhit 
) const
overridevirtual

Definition at line 41 of file FPGATrackSimKeyLayerBinDesc.cxx.

44 {
45  double r1 = m_keylyrtool.R1();
46  double r2 = m_keylyrtool.R2();
47  double hitr= storedhit.hitptr->getR();
48 
49  bool passesPhi = true;
50  bool passesEta = true;
51 
52  FPGATrackSimTrackPars trackpars = parSetToTrackPars(step.binCenter(idx));
53 
54  bool isTruthBin = ((m_truthbin.size()>step.stepNum())&&(m_truthbin[step.stepNum()]==idx));
55 
56  if (stepIsRPhi(step)) {
57  // distance of hit from bin center
58  storedhit.phiShift =
59  phiResidual(step.binCenter(idx), storedhit.hitptr.get());
60 
61  // Get expected curvature shift from bin center
62  auto half_xm_bin_pars = parSetToKeyPars(step.binCenter(idx));
63  half_xm_bin_pars.xm = step.binWidth(4)/2.0; // 4 = xm par
64  double xshift =
65  m_keylyrtool.xExpected(half_xm_bin_pars, storedhit.hitptr->getR(), remainder(storedhit.hitptr->getGPhi()+m_phiOffset,2*M_PI));
66  double xrange = std::abs(xshift) + r1 * step.binWidth(2) / 2.0
67  + ((r2*step.binWidth(3) - r1*step.binWidth(2)) / (r2 - r1) * (hitr - r1))/2.0;
68 
69  if (xrange < 0) {
70  ATH_MSG_ERROR("Negative xrange: " << std::abs(xshift) << " " << r1 * step.binWidth(2) / 2.0 << " "
71  << ((r2*step.binWidth(3) - r1*step.binWidth(2)) / (r2 - r1) * (hitr - r1))/2.0);
72  }
73 
74  double padding = 0.0;
75  double stripLength = 25.0;
76  if (storedhit.hitptr->getDetType() == SiliconTech::strip) {
77  if (!storedhit.hitptr->isBarrel()) {
78  // varying strip lengths per eta mod in endcap
79  int etamod = storedhit.hitptr->getEtaModule();
80  stripLength = m_slPerEtaMod[etamod]/2.0;
81  }
82  padding += stripLength*std::abs(FPGATrackSimBinUtil::GeomHelpers::dPhiHitTrkFromPars(hitr,trackpars));
83  }
84  // add phiShift resolution padding, 1000.0 is the GeV to MeV conversion
86  passesPhi = std::abs(storedhit.phiShift) < (xrange+padding);
87  ATH_MSG_VERBOSE("Phi qpt pad: " << storedhit.phiShift << " " << hitr*m_qptpad*1000.0*FPGATrackSimBinUtil::GeomHelpers::dPhidQOverPt(hitr) << " " << m_qptpad);
88  if (isTruthBin && !passesPhi) ATH_MSG_DEBUG("Hit fails Phi cut, lyr=" << storedhit.hitptr->getPhysLayer() << " "
89  << storedhit.phiShift << " " << xrange + padding << " " <<xrange << " "<< padding
90  << " " << m_d0pad << " " << hitr*m_phipad << " " << hitr*m_qptpad*FPGATrackSimBinUtil::GeomHelpers::dPhidQOverPt(hitr)
91  << " " << ((storedhit.hitptr->getDetType() == SiliconTech::strip) ? (stripLength*std::abs(FPGATrackSimBinUtil::GeomHelpers::dPhiHitTrkFromPars(hitr,trackpars))) : 99999)
92  << " " << hitr << " " << trackpars);
93 
94  // Firmware x-check
95  phiLUTConsts phiconsts = getPhiLUTConsts(step,step.stepIdx(idx));
96  double fw_phiShift = phiconsts.phiShift(remainder(storedhit.hitptr->getGPhi() + m_phiOffset,2*M_PI), hitr);
97  double fw_phiWindow = phiconsts.phiWindow( hitr);
98  ATH_MSG_VERBOSE("FW x-check: phiShift orig: " << storedhit.phiShift << " fwcalc: " << fw_phiShift << " diff: " << storedhit.phiShift-fw_phiShift);
99  ATH_MSG_VERBOSE("FW " << phiconsts.w_in << " " << phiconsts.dw_dr*(hitr-phiconsts.r_in) << " " << phiconsts.w_x*(hitr-phiconsts.r_in)*(phiconsts.r_out-hitr)
100  << " Orig: " << r1 * step.binWidth(2) / 2.0 << " " << ((r2*step.binWidth(3) - r1*step.binWidth(2)) / (r2 - r1) * (hitr - r1))/2.0 << " " << std::abs(xshift));
101  ATH_MSG_VERBOSE("FW x-check: phiWindow orig: " << xrange << " fwcalc: " << fw_phiWindow << " diff: " << xrange-fw_phiWindow);
102 
103  }
104 
105  if (stepIsREta(step)) {
106  // distance of hit from bin center
107  storedhit.etaShift = etaResidual(step.binCenter(idx),storedhit.hitptr.get());
108 
109  double width_z_in = step.binWidth(0)/2.0;
110  double width_z_out = step.binWidth(1)/2.0;
111  double zrange = width_z_in + (width_z_out-width_z_in) * std::abs((hitr-r1))/(r2-r1);
112 
113  // pad for strip length or imprecise SP.
114  double padding = 0;
115  double stripLength = 25.0; //barrel strip length
116  if (storedhit.hitptr->getDetType() == SiliconTech::strip) {
117  if (!storedhit.hitptr->isBarrel()) {
118  // varying strip lengths per eta mod in endcap
119  int etamod = storedhit.hitptr->getEtaModule();
120  stripLength = m_slPerEtaMod[etamod]/2.0;
121  }
122  // length of longest correspinding to endcap or barrel strip
123  padding += stripLength;
124  }
125  // add etaShift resolution padding
126  padding += (m_z0pad + std::abs(hitr*m_etapad*FPGATrackSimBinUtil::GeomHelpers::dZdEta(trackpars.eta)));
127  passesEta = std::abs(storedhit.etaShift) < (zrange+padding);
128  if (isTruthBin && !passesEta) ATH_MSG_DEBUG("Hit fails Eta cut , lyr=" << storedhit.hitptr->getPhysLayer() << " r=" << hitr << " "
129  << storedhit.etaShift << " " << zrange + padding << " " <<zrange << " "<< padding << " " << hitr << " " << trackpars);
130 
131  // Firmware x-check
132  etaLUTConsts etaconsts = getEtaLUTConsts(step,step.stepIdx(idx));
133  double fw_etaShift = etaconsts.etaShift(storedhit.hitptr->getZ(), hitr);
134  double fw_etaWindow = etaconsts.etaWindow( hitr);
135  ATH_MSG_VERBOSE("FW x-check: etaShift orig: " << storedhit.etaShift << " fwcalc: " << fw_etaShift << " diff: " << storedhit.etaShift-fw_etaShift);
136  ATH_MSG_VERBOSE("FW x-check: etaWindow orig: " << zrange << " fwcalc: " << fw_etaWindow << " diff: " << zrange-fw_etaWindow);
137 
138 
139  }
140 
141 
142  if (isTruthBin && !(passesPhi && passesEta)) ATH_MSG_DEBUG("Hit in truth bin fails cuts: " << " passesPhi=" << passesPhi << " passesEta=" << passesEta);
143 
144  return passesPhi && passesEta;
145 }

◆ initialize()

StatusCode FPGATrackSimKeyLayerBinDesc::initialize ( )
overridevirtual

Definition at line 25 of file FPGATrackSimKeyLayerBinDesc.cxx.

26 {
27  // Dump the configuration to make sure it propagated through right
28  const std::vector<Gaudi::Details::PropertyBase*> props = this->getProperties();
29  for( Gaudi::Details::PropertyBase* prop : props ) {
30  if (prop->ownerTypeName()==this->type()) {
31  ATH_MSG_DEBUG("Property:\t" << prop->name() << "\t : \t"<< prop->toString());
32  }
33  }
34 
37 
38  return StatusCode::SUCCESS;
39 }

◆ keyparsToParSet()

FPGATrackSimBinUtil::ParSet FPGATrackSimKeyLayerBinDesc::keyparsToParSet ( const FPGATrackSimKeyLayerTool::KeyLyrPars keypars) const
inlineprivate

Definition at line 158 of file FPGATrackSimKeyLayerBinDesc.h.

158  {
159  return FPGATrackSimBinUtil::ParSet({keypars.z1,keypars.z2,keypars.phi1,keypars.phi2,keypars.xm});
160  }

◆ parNames()

virtual const std::string& FPGATrackSimKeyLayerBinDesc::parNames ( unsigned  i) const
inlineoverridevirtual

Definition at line 50 of file FPGATrackSimKeyLayerBinDesc.h.

50 { return m_parNames[i]; }

◆ parSetToKeyPars()

FPGATrackSimKeyLayerTool::KeyLyrPars FPGATrackSimKeyLayerBinDesc::parSetToKeyPars ( const FPGATrackSimBinUtil::ParSet parset) const
inlineprivate

Definition at line 161 of file FPGATrackSimKeyLayerBinDesc.h.

161  {
163  }

◆ parSetToTrackPars()

virtual const FPGATrackSimTrackPars FPGATrackSimKeyLayerBinDesc::parSetToTrackPars ( const FPGATrackSimBinUtil::ParSet parset) const
inlineoverridevirtual

Definition at line 67 of file FPGATrackSimKeyLayerBinDesc.h.

67  {
69  keypars.phi1=remainder(keypars.phi1-m_phiOffset,2*M_PI);
70  keypars.phi2=remainder(keypars.phi2-m_phiOffset,2*M_PI);
71  return m_keylyrtool.keyParsToTrackPars(keypars);
72  }

◆ phiResidual()

virtual double FPGATrackSimKeyLayerBinDesc::phiResidual ( const FPGATrackSimBinUtil::ParSet parset,
FPGATrackSimHit const hit 
) const
inlineoverridevirtual

Definition at line 77 of file FPGATrackSimKeyLayerBinDesc.h.

77  {
78  return m_keylyrtool.deltaX(parSetToKeyPars(parset), hit->getR(), hit->getGPhi() + m_phiOffset);
79  }

◆ stepIsREta()

bool FPGATrackSimKeyLayerBinDesc::stepIsREta ( const FPGATrackSimBinStep step) const

Definition at line 159 of file FPGATrackSimKeyLayerBinDesc.cxx.

160  {
161  for (const unsigned &steppar : step.stepPars()) {
162  for (const unsigned &etapar : m_etapars) {
163  if (steppar == etapar)
164  return true;
165  }
166  }
167  return false;
168 }

◆ stepIsRPhi()

bool FPGATrackSimKeyLayerBinDesc::stepIsRPhi ( const FPGATrackSimBinStep step) const

Definition at line 148 of file FPGATrackSimKeyLayerBinDesc.cxx.

149  {
150  for (const unsigned &steppar : step.stepPars()) {
151  for (const unsigned &phipar : m_phipars) {
152  if (steppar == phipar)
153  return true;
154  }
155  }
156  return false;
157 }

◆ trackParsToParSet()

virtual const FPGATrackSimBinUtil::ParSet FPGATrackSimKeyLayerBinDesc::trackParsToParSet ( const FPGATrackSimTrackPars pars) const
inlineoverridevirtual

Definition at line 54 of file FPGATrackSimKeyLayerBinDesc.h.

54  {
56  if (m_fieldCorrection) {
57  keypars.phi1+=fieldCorrection(m_fieldCorRegion, pars.qOverPt/1000.0 ,m_keylyrtool.R1());
58  keypars.phi2+=fieldCorrection(m_fieldCorRegion, pars.qOverPt/1000.0 ,m_keylyrtool.R2());
59  }
60  keypars.phi1=remainder(keypars.phi1+m_phiOffset,2*M_PI);
61  keypars.phi2=remainder(keypars.phi2+m_phiOffset,2*M_PI);
62  return keyparsToParSet(keypars);
63  }

◆ writeLUTs()

void FPGATrackSimKeyLayerBinDesc::writeLUTs ( const FPGATrackSimBinStep step) const
overridevirtual

Definition at line 256 of file FPGATrackSimKeyLayerBinDesc.cxx.

256  {
257  double r_in = m_keylyrtool.R1();
258  double r_out = m_keylyrtool.R2();
259 
260  ATH_MSG_INFO("Writing constants for step:" << step.stepName() << " isRPhi="<< stepIsRPhi(step) << " isREta="<< stepIsREta(step));
261 
262  // write the keylayer definition
263  if (step.isFirstStep()) {
264  std::string keylayerName = "reg_" + std::to_string(m_region.value()) + "_KeyLayer";
265  FPGATrackSimBinUtil::StreamManager sm(keylayerName);
266  sm.writeVar("r_in",r_in);
267  sm.writeVar("r_out",r_out);
268  }
269 
270  if (stepIsRPhi(step)) {
271 
272  std::string stepName = "reg_" + std::to_string(m_region.value()) + "_" + step.stepName();
274  int nbins = 0;
275  for (FPGATrackSimBinArray<int>::ConstIterator &bin : step.validBinsLocal()) {
276  if (!bin.data())
277  continue;
278  phiLUTConsts phiconsts = getPhiLUTConsts(step,bin.idx());
279 
280  sm.writeVar("phi_bin", bin.idx());
281 
282  sm.writeVar("y", phiconsts.y);
283  sm.writeVar("x1p", phiconsts.x1p);
284  sm.writeVar("y1p", phiconsts.y1p);
285  sm.writeVar("cosb", phiconsts.cosb);
286  sm.writeVar("sinb", phiconsts.sinb);
287 
288  sm.writeVar("x_m", phiconsts.x_m);
289  sm.writeVar("x_factor", phiconsts.x_factor);
290 
291  if (nbins == 0) {
292  sm.writeVar("w_x", phiconsts.w_x);
293  sm.writeVar("w_in", phiconsts.w_in);
294  sm.writeVar("dw_dr", phiconsts.dw_dr);
295  }
296 
297  nbins++;
298  }
299 
300  sm.writeVar("nbins", nbins);
301  }
302 
303  if (stepIsREta(step)) {
304 
305  std::string stepName = "reg_" + std::to_string(m_region.value()) + "_" + step.stepName();
307 
308  int nbins = 0;
309  for (FPGATrackSimBinArray<int>::ConstIterator &bin : step.validBinsLocal()) {
310  if (!bin.data())
311  continue;
312 
313  etaLUTConsts etaconsts = getEtaLUTConsts(step,bin.idx());
314 
315  // write just this steps idxs
316  sm.writeVar("z_bin", bin.idx());
317  sm.writeVar("z_in", etaconsts.z_in);
318  sm.writeVar("dz_dr", etaconsts.dz_dr);
319 
320  if (nbins==0) {
321  sm.writeVar("w_in", etaconsts.w_in);
322  sm.writeVar("dw_dr", etaconsts.dw_dr);
323  };
324 
325  nbins++;
326  }
327  sm.writeVar("nbins", nbins);
328 
329  }
330 
331 }

Member Data Documentation

◆ m_approxMath

Gaudi::Property<bool> FPGATrackSimKeyLayerBinDesc::m_approxMath {this, "approxMath", {false}, "Use approximate math to emulate possible firmware"}
private

Definition at line 136 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_d0pad

Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_d0pad {this, "D0Pad", 0.0, "Extra phi padding from d0 resolution"}
private

Definition at line 137 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_etapad

Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_etapad {this, "EtaPad", 0.0, "Extra eta padding from eta resolution"}
private

Definition at line 141 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_etapars

const std::vector<unsigned> FPGATrackSimKeyLayerBinDesc::m_etapars {0, 1}
private

Definition at line 170 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_fieldCorrection

Gaudi::Property<bool> FPGATrackSimKeyLayerBinDesc::m_fieldCorrection {this, "fieldCorrection", true, "Use magnetic field correction for Hough transform"}
private

Definition at line 154 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_fieldCorRegion

Gaudi::Property<unsigned> FPGATrackSimKeyLayerBinDesc::m_fieldCorRegion { this, "fieldCorRegion", 2, "region for fieldCorrection"}
private

Definition at line 153 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_keylyrtool

FPGATrackSimKeyLayerTool FPGATrackSimKeyLayerBinDesc::m_keylyrtool
private

Definition at line 166 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_parNames

const std::vector<std::string> FPGATrackSimKeyLayerBinDesc::m_parNames {"zR1", "zR2", "phiR1", "phiR2", "xm"}
private

Definition at line 167 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_phiOffset

Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_phiOffset {this, "PhiOffset", 0.0, "Phi offset between local and global parameters (avoids phi wrap around effects in region code)"}
private

Definition at line 151 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_phipad

Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_phipad {this, "PhiPad", 0.0, "Extra phi padding from phi resolution"}
private

Definition at line 138 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_phipars

const std::vector<unsigned> FPGATrackSimKeyLayerBinDesc::m_phipars {2, 3, 4}
private

Definition at line 169 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_qptpad

Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_qptpad {this, "QPtPad", 0.0, "Extra phi padding from q/pT resolution"}
private

Definition at line 139 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_region

Gaudi::Property<unsigned> FPGATrackSimKeyLayerBinDesc::m_region {this, "region", 0, "Region number, needed to write out lookup tables for test vectors"}
private

Definition at line 142 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_rin

Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_rin {this, "rin", {-1.0}, "Radius of inner layer for keylayer definition"}
private

Definition at line 134 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_rout

Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_rout {this, "rout", {-1.0}, "Radius of outer layer for keylayer definition"}
private

Definition at line 135 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_slPerEtaMod

Gaudi::Property<std::vector<double> > FPGATrackSimKeyLayerBinDesc::m_slPerEtaMod
private
Initial value:
{
this,
"slPerEtaMod",
std::vector<double>{19.0, 24.0, 29.0, 32.0, 18.1, 27.1, 24.1, 15.1, 30.8,
30.8, 26.2, 32.2, 32.2, 26.2, 54.6, 54.6, 40.2, 60.2},
"Strip length per eta eta mod"
}

Definition at line 143 of file FPGATrackSimKeyLayerBinDesc.h.

◆ m_z0pad

Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_z0pad {this, "Z0Pad", 0.0, "Extra eta padding from z0 resolution"}
private

Definition at line 140 of file FPGATrackSimKeyLayerBinDesc.h.


The documentation for this class was generated from the following files:
FPGATrackSimKeyLayerTool::setR1
void setR1(const double r1)
Definition: FPGATrackSimKeyLayerTool.h:100
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
xrange
void xrange(TH1 *h, bool symmetric)
Definition: computils.cxx:517
FPGATrackSimKeyLayerBinDesc::m_etapars
const std::vector< unsigned > m_etapars
Definition: FPGATrackSimKeyLayerBinDesc.h:170
FPGATrackSimBinUtil::StoredHit::hitptr
std::shared_ptr< const FPGATrackSimHit > hitptr
Definition: FPGATrackSimBinUtil.h:103
SiliconTech::strip
@ strip
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
FPGATrackSimTrackPars
Definition: FPGATrackSimTrackPars.h:22
SCT_CalibAlgs::nbins
@ nbins
Definition: SCT_CalibNumbers.h:10
FPGATrackSimKeyLayerTool::R2
double R2() const
Definition: FPGATrackSimKeyLayerTool.h:99
FPGATrackSimKeyLayerBinDesc::etaResidual
virtual double etaResidual(const FPGATrackSimBinUtil::ParSet &parset, FPGATrackSimHit const *hit) const override
Definition: FPGATrackSimKeyLayerBinDesc.h:81
FPGATrackSimKeyLayerBinDesc::m_fieldCorRegion
Gaudi::Property< unsigned > m_fieldCorRegion
Definition: FPGATrackSimKeyLayerBinDesc.h:153
M_PI
#define M_PI
Definition: ActiveFraction.h:11
bin
Definition: BinsDiffFromStripMedian.h:43
FPGATrackSimKeyLayerBinDesc::getPhiLUTConsts
phiLUTConsts getPhiLUTConsts(const FPGATrackSimBinStep &step, const std::vector< unsigned > &idx) const
Definition: FPGATrackSimKeyLayerBinDesc.cxx:175
FPGATrackSimKeyLayerBinDesc::m_rout
Gaudi::Property< double > m_rout
Definition: FPGATrackSimKeyLayerBinDesc.h:135
FPGATrackSimKeyLayerBinDesc::keyparsToParSet
FPGATrackSimBinUtil::ParSet keyparsToParSet(const FPGATrackSimKeyLayerTool::KeyLyrPars &keypars) const
Definition: FPGATrackSimKeyLayerBinDesc.h:158
FPGATrackSimKeyLayerBinDesc::m_parNames
const std::vector< std::string > m_parNames
Definition: FPGATrackSimKeyLayerBinDesc.h:167
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
FPGATrackSimKeyLayerTool::KeyLyrPars::xm
double xm
Definition: FPGATrackSimKeyLayerTool.h:55
MuonR4::to_string
std::string to_string(const SectorProjector proj)
Definition: MsTrackSeeder.cxx:66
MCP::ScaleSmearParam::r2
@ r2
FPGATrackSimKeyLayerBinDesc::m_etapad
Gaudi::Property< double > m_etapad
Definition: FPGATrackSimKeyLayerBinDesc.h:141
FPGATrackSimTrackPars::eta
double eta
Definition: FPGATrackSimTrackPars.h:28
FPGATrackSimKeyLayerBinDesc::parSetToTrackPars
virtual const FPGATrackSimTrackPars parSetToTrackPars(const FPGATrackSimBinUtil::ParSet &parset) const override
Definition: FPGATrackSimKeyLayerBinDesc.h:67
FPGATrackSimKeyLayerBinDesc::getEtaLUTConsts
etaLUTConsts getEtaLUTConsts(const FPGATrackSimBinStep &step, const std::vector< unsigned > &idx) const
Definition: FPGATrackSimKeyLayerBinDesc.cxx:209
dqutils::padding
std::atomic< int > padding
Definition: MonitoringFile_MoveVertexMonitoring.cxx:20
FPGATrackSimKeyLayerBinDesc::m_phiOffset
Gaudi::Property< double > m_phiOffset
Definition: FPGATrackSimKeyLayerBinDesc.h:151
FPGATrackSimKeyLayerTool::KeyLyrPars::phi2
double phi2
Definition: FPGATrackSimKeyLayerTool.h:54
FPGATrackSimBinUtil::GeomHelpers::dPhidQOverPt
static double dPhidQOverPt(double hitr)
Definition: FPGATrackSimBinUtil.cxx:185
FPGATrackSimBinUtil::GeomHelpers::dPhiHitTrkFromPars
static double dPhiHitTrkFromPars(double r, const FPGATrackSimTrackPars &pars)
Definition: FPGATrackSimBinUtil.cxx:162
CaloSwCorrections.etamod
def etamod(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:206
FPGATrackSimKeyLayerBinDesc::m_phipars
const std::vector< unsigned > m_phipars
Definition: FPGATrackSimKeyLayerBinDesc.h:169
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
FPGATrackSimKeyLayerBinDesc::m_phipad
Gaudi::Property< double > m_phipad
Definition: FPGATrackSimKeyLayerBinDesc.h:138
lumiFormat.i
int i
Definition: lumiFormat.py:85
FPGATrackSimBinUtil::StreamManager
Definition: FPGATrackSimBinUtil.h:83
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
FPGATrackSimKeyLayerBinDesc::m_qptpad
Gaudi::Property< double > m_qptpad
Definition: FPGATrackSimKeyLayerBinDesc.h:139
FPGATrackSimKeyLayerBinDesc::m_d0pad
Gaudi::Property< double > m_d0pad
Definition: FPGATrackSimKeyLayerBinDesc.h:137
FPGATrackSimKeyLayerBinDesc::m_rin
Gaudi::Property< double > m_rin
Definition: FPGATrackSimKeyLayerBinDesc.h:134
FPGATrackSimBinArray
Definition: FPGATrackSimBinArray.h:41
FPGATrackSimKeyLayerBinDesc::stepIsREta
bool stepIsREta(const FPGATrackSimBinStep &step) const
Definition: FPGATrackSimKeyLayerBinDesc.cxx:159
FPGATrackSimBinUtil::ParSet
Definition: FPGATrackSimBinUtil.h:45
FPGATrackSimKeyLayerTool::KeyLyrPars::z2
double z2
Definition: FPGATrackSimKeyLayerTool.h:52
FPGATrackSimKeyLayerTool::KeyLyrPars::phi1
double phi1
Definition: FPGATrackSimKeyLayerTool.h:53
FPGATrackSimKeyLayerTool::setR2
void setR2(const double r2)
Definition: FPGATrackSimKeyLayerTool.h:101
FPGATrackSimKeyLayerTool::trackParsToKeyPars
KeyLyrPars trackParsToKeyPars(const FPGATrackSimTrackPars &pars) const
Definition: FPGATrackSimKeyLayerTool.cxx:53
FPGATrackSimKeyLayerTool::getRotatedConfig
rotatedConfig getRotatedConfig(const KeyLyrPars &keypars) const
Definition: FPGATrackSimKeyLayerTool.cxx:32
remainder
std::vector< std::string > remainder(const std::vector< std::string > &v1, const std::vector< std::string > &v2)
Definition: compareFlatTrees.cxx:44
FPGATrackSimKeyLayerTool::R1
double R1() const
Definition: FPGATrackSimKeyLayerTool.h:98
FPGATrackSimKeyLayerBinDesc::phiResidual
virtual double phiResidual(const FPGATrackSimBinUtil::ParSet &parset, FPGATrackSimHit const *hit) const override
Definition: FPGATrackSimKeyLayerBinDesc.h:77
zrange
void zrange(double nsigma, double fence, double &zed, double &zedMinus, double &zedPlus, const SG::ReadCondHandleKey< InDet::BeamSpotData > &bs, const EventContext &ctx)
Definition: RoiUpdaterTool.cxx:33
FPGATrackSimKeyLayerTool::KeyLyrPars::z1
double z1
Definition: FPGATrackSimKeyLayerTool.h:51
FPGATrackSimKeyLayerBinDesc::m_keylyrtool
FPGATrackSimKeyLayerTool m_keylyrtool
Definition: FPGATrackSimKeyLayerBinDesc.h:166
FPGATrackSimKeyLayerBinDesc::stepIsRPhi
bool stepIsRPhi(const FPGATrackSimBinStep &step) const
Definition: FPGATrackSimKeyLayerBinDesc.cxx:148
FPGATrackSimKeyLayerTool::deltaX
double deltaX(const KeyLyrPars &keypars, double rHit, double phiHit) const
Definition: FPGATrackSimKeyLayerTool.cxx:157
FPGATrackSimBinUtil::GeomHelpers::dZdEta
static double dZdEta(double eta)
Definition: FPGATrackSimBinUtil.cxx:179
FPGATrackSimKeyLayerTool::rotatedConfig::y
double y
Definition: FPGATrackSimKeyLayerTool.h:74
FPGATrackSimKeyLayerTool::zExpected
double zExpected(const KeyLyrPars &keypars, double r) const
Definition: FPGATrackSimKeyLayerTool.cxx:127
FPGATrackSimKeyLayerBinDesc::parSetToKeyPars
FPGATrackSimKeyLayerTool::KeyLyrPars parSetToKeyPars(const FPGATrackSimBinUtil::ParSet &parset) const
Definition: FPGATrackSimKeyLayerBinDesc.h:161
FPGATrackSimKeyLayerBinDesc::m_z0pad
Gaudi::Property< double > m_z0pad
Definition: FPGATrackSimKeyLayerBinDesc.h:140
FPGATrackSimKeyLayerTool::xExpected
double xExpected(const KeyLyrPars &keypars, double rHit, double phiHit) const
Definition: FPGATrackSimKeyLayerTool.cxx:171
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
LArCellBinning.step
step
Definition: LArCellBinning.py:158
fieldCorrection
double fieldCorrection(unsigned region, double qoverpt, double r)
Definition: FPGATrackSimFunctions.cxx:163
FPGATrackSimBinUtil::StoredHit::etaShift
double etaShift
Definition: FPGATrackSimBinUtil.h:105
FPGATrackSimBinUtil::StoredHit::phiShift
double phiShift
Definition: FPGATrackSimBinUtil.h:104
FPGATrackSimKeyLayerBinDesc::m_fieldCorrection
Gaudi::Property< bool > m_fieldCorrection
Definition: FPGATrackSimKeyLayerBinDesc.h:154
MCP::ScaleSmearParam::r1
@ r1
FPGATrackSimKeyLayerBinDesc::m_slPerEtaMod
Gaudi::Property< std::vector< double > > m_slPerEtaMod
Definition: FPGATrackSimKeyLayerBinDesc.h:143
FPGATrackSimKeyLayerTool::keyParsToTrackPars
FPGATrackSimTrackPars keyParsToTrackPars(const KeyLyrPars &keypars) const
Definition: FPGATrackSimKeyLayerTool.cxx:79
FPGATrackSimKeyLayerBinDesc::m_region
Gaudi::Property< unsigned > m_region
Definition: FPGATrackSimKeyLayerBinDesc.h:142
FPGATrackSimKeyLayerTool::KeyLyrPars
Definition: FPGATrackSimKeyLayerTool.h:47