ATLAS Offline Software
FPGATrackSimKeyLayerBinDesc.cxx
Go to the documentation of this file.
1 
2 // Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 
18 #include <cmath>
19 
20 
21 
24 
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 }
40 
42  const IdxSet &idx,
43  StoredHit &storedhit) const
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 }
146 
147 // figure out if step is r-phi or r-eta plan
149  const FPGATrackSimBinStep &step) const {
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 }
158 
160  const FPGATrackSimBinStep &step) const {
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 }
169 
170 //---------------------------------------------------------------------------------------
171 //
172 // Calculate the Firmware LUT for a bin
173 //
174 //---------------------------------------------------------------------------------------
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 }
208 
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 }
232 
234  double xc = r*cos(phi);
235  double yc = r*sin(phi);
236  double xh = xc*cosb+yc*sinb-x1p;
237  double yh = -xc*sinb+yc*cosb-y1p;
238  return xh - x_factor*yh*(y-yh);
239 }
241  return w_in + dw_dr*(r-r_in) + w_x*(r-r_in)*(r_out-r);
242 }
244  return z - z_in - dz_dr*(r-r_in);
245 }
247  return w_in + dw_dr*(r-r_in);
248 }
249 
250 
251 //---------------------------------------------------------------------------------------
252 //
253 // Write the relevant LUT tables for firmware
254 //
255 //---------------------------------------------------------------------------------------
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 }
332 
FPGATrackSimKeyLayerTool::setR1
void setR1(const double r1)
Definition: FPGATrackSimKeyLayerTool.h:100
xrange
void xrange(TH1 *h, bool symmetric)
Definition: computils.cxx:517
beamspotman.r
def r
Definition: beamspotman.py:672
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
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::x1p
double x1p
Definition: FPGATrackSimKeyLayerBinDesc.h:102
FPGATrackSimKeyLayerBinDesc::etaLUTConsts::r_in
double r_in
Definition: FPGATrackSimKeyLayerBinDesc.h:115
FPGATrackSimBinStep
Definition: FPGATrackSimBinStep.h:45
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
AthMsgStreamMacros.h
FPGATrackSimTrackPars
Definition: FPGATrackSimTrackPars.h:22
FPGATrackSimKeyLayerTool.h
Binning Classes for BinTool.
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::etaLUTConsts::etaWindow
double etaWindow(double r)
Definition: FPGATrackSimKeyLayerBinDesc.cxx:246
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::phiLUTConsts::dw_dr
double dw_dr
Definition: FPGATrackSimKeyLayerBinDesc.h:110
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::x_m
double x_m
Definition: FPGATrackSimKeyLayerBinDesc.h:106
FPGATrackSimKeyLayerBinDesc::m_rout
Gaudi::Property< double > m_rout
Definition: FPGATrackSimKeyLayerBinDesc.h:135
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
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
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::w_in
double w_in
Definition: FPGATrackSimKeyLayerBinDesc.h:109
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
FPGATrackSimBinStep.h
Binning Classes for BinStep.
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
FPGATrackSimKeyLayerBinDesc::etaLUTConsts::etaShift
double etaShift(double z, double r)
Definition: FPGATrackSimKeyLayerBinDesc.cxx:243
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
FPGATrackSimKeyLayerBinDesc::phiLUTConsts
Definition: FPGATrackSimKeyLayerBinDesc.h:98
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
FPGATrackSimKeyLayerBinDesc::m_phipad
Gaudi::Property< double > m_phipad
Definition: FPGATrackSimKeyLayerBinDesc.h:138
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::r_out
double r_out
Definition: FPGATrackSimKeyLayerBinDesc.h:100
z
#define z
FPGATrackSimKeyLayerBinDesc::etaLUTConsts::z_in
double z_in
Definition: FPGATrackSimKeyLayerBinDesc.h:117
FPGATrackSimKeyLayerBinDesc::hitInBin
virtual bool hitInBin(const FPGATrackSimBinStep &step, const FPGATrackSimBinUtil::IdxSet &idx, FPGATrackSimBinUtil::StoredHit &storedhit) const override
Definition: FPGATrackSimKeyLayerBinDesc.cxx:41
FPGATrackSimBinUtil::StreamManager
Definition: FPGATrackSimBinUtil.h:83
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
FPGATrackSimBinUtil.h
Binning Utilities for GenScanTool.
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
FPGATrackSimKeyLayerBinDesc::etaLUTConsts
Definition: FPGATrackSimKeyLayerBinDesc.h:114
FPGATrackSimBinArray
Definition: FPGATrackSimBinArray.h:41
FPGATrackSimKeyLayerBinDesc::etaLUTConsts::dz_dr
double dz_dr
Definition: FPGATrackSimKeyLayerBinDesc.h:118
FPGATrackSimKeyLayerBinDesc::stepIsREta
bool stepIsREta(const FPGATrackSimBinStep &step) const
Definition: FPGATrackSimKeyLayerBinDesc.cxx:159
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::x_factor
double x_factor
Definition: FPGATrackSimKeyLayerBinDesc.h:107
FPGATrackSimKeyLayerTool::KeyLyrPars::phi1
double phi1
Definition: FPGATrackSimKeyLayerTool.h:53
FPGATrackSimKeyLayerTool::setR2
void setR2(const double r2)
Definition: FPGATrackSimKeyLayerTool.h:101
FPGATrackSimKeyLayerTool::getRotatedConfig
rotatedConfig getRotatedConfig(const KeyLyrPars &keypars) const
Definition: FPGATrackSimKeyLayerTool.cxx:32
FPGATrackSimBinUtil::StoredHit
Definition: FPGATrackSimBinUtil.h:101
remainder
std::vector< std::string > remainder(const std::vector< std::string > &v1, const std::vector< std::string > &v2)
Definition: compareFlatTrees.cxx:44
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::sinb
double sinb
Definition: FPGATrackSimKeyLayerBinDesc.h:105
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
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::cosb
double cosb
Definition: FPGATrackSimKeyLayerBinDesc.h:104
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::phiWindow
double phiWindow(double r)
Definition: FPGATrackSimKeyLayerBinDesc.cxx:240
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::y1p
double y1p
Definition: FPGATrackSimKeyLayerBinDesc.h:103
FPGATrackSimKeyLayerBinDesc::etaLUTConsts::w_in
double w_in
Definition: FPGATrackSimKeyLayerBinDesc.h:119
FPGATrackSimKeyLayerBinDesc::m_keylyrtool
FPGATrackSimKeyLayerTool m_keylyrtool
Definition: FPGATrackSimKeyLayerBinDesc.h:166
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::r_in
double r_in
Definition: FPGATrackSimKeyLayerBinDesc.h:99
FPGATrackSimKeyLayerBinDesc::stepIsRPhi
bool stepIsRPhi(const FPGATrackSimBinStep &step) const
Definition: FPGATrackSimKeyLayerBinDesc.cxx:148
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::y
double y
Definition: FPGATrackSimKeyLayerBinDesc.h:101
FPGATrackSimBinUtil::GeomHelpers::dZdEta
static double dZdEta(double eta)
Definition: FPGATrackSimBinUtil.cxx:179
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
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::w_x
double w_x
Definition: FPGATrackSimKeyLayerBinDesc.h:108
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
FPGATrackSimKeyLayerBinDesc.h
Binning Classes for BinTool.
LArCellBinning.step
step
Definition: LArCellBinning.py:158
FPGATrackSimKeyLayerBinDesc::initialize
virtual StatusCode initialize() override
Definition: FPGATrackSimKeyLayerBinDesc.cxx:25
FPGATrackSimBinUtil::StreamManager::writeVar
void writeVar(const std::string &var, T val)
Definition: FPGATrackSimBinUtil.h:86
FPGATrackSimBinUtil::StoredHit::etaShift
double etaShift
Definition: FPGATrackSimBinUtil.h:105
FPGATrackSimKeyLayerBinDesc::etaLUTConsts::dw_dr
double dw_dr
Definition: FPGATrackSimKeyLayerBinDesc.h:120
FPGATrackSimBinUtil::StoredHit::phiShift
double phiShift
Definition: FPGATrackSimBinUtil.h:104
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
FPGATrackSimBinUtil::IdxSet
Definition: FPGATrackSimBinUtil.h:50
FPGATrackSimTypes.h
FPGATrackSimKeyLayerBinDesc::writeLUTs
virtual void writeLUTs(const FPGATrackSimBinStep &step) const override
Definition: FPGATrackSimKeyLayerBinDesc.cxx:256
FPGATrackSimKeyLayerBinDesc::m_slPerEtaMod
Gaudi::Property< std::vector< double > > m_slPerEtaMod
Definition: FPGATrackSimKeyLayerBinDesc.h:143
FPGATrackSimTrackPars.h
Structs that store the 5 track parameters.
FPGATrackSimKeyLayerBinDesc::etaLUTConsts::r_out
double r_out
Definition: FPGATrackSimKeyLayerBinDesc.h:116
FPGATrackSimKeyLayerBinDesc::phiLUTConsts::phiShift
double phiShift(double phi, double r)
Definition: FPGATrackSimKeyLayerBinDesc.cxx:233
FPGATrackSimKeyLayerBinDesc::m_region
Gaudi::Property< unsigned > m_region
Definition: FPGATrackSimKeyLayerBinDesc.h:142
FPGATrackSimKeyLayerTool::KeyLyrPars
Definition: FPGATrackSimKeyLayerTool.h:47