14 : setup_(&
setup), sm_(sm), ttStubRef_(ttStubRef), hybrid_(iConfig.getParameter<
bool>(
"UseHybrid")),
valid_(
true) {
36 d_ = sm->
r() + y * sm->
sin();
46 const double phi0 = sm->
phi() + atan2(x0,
d_);
47 const double phi1 = sm->
phi() + atan2(
x1,
d_);
48 const double c = (phi0 + phi1) / 2.;
49 const double m = (phi1 - phi0) /
setup.dtcNumMergedRows();
62 const double zT =
setup.chosenRofZ() *
z_ /
r_;
64 const double dZT =
setup.beamWindowZ() *
abs(1. -
setup.chosenRofZ() /
r_);
65 double zTMin = zT - dZT;
66 double zTMax = zT + dZT;
67 if (zTMin >=
setup.maxZT() || zTMax < -
setup.maxZT())
79 static const double chosenRofPhi =
hybrid_ ?
setup.hybridChosenRofPhi() :
setup.chosenRofPhi();
87 const double qOverPt =
bend_ *
setup.baseBend() * qOverPtOverBend;
89 const double dQoverPt =
setup.bendCut() * qOverPtOverBend;
91 const double maxQoverPt =
setup.invPtToDphi() /
minPt -
setup.dtcBaseQoverPt() / 2.;
92 double qOverPtMin =
digi(qOverPt - dQoverPt,
setup.dtcBaseQoverPt());
93 double qOverPtMax =
digi(qOverPt + dQoverPt,
setup.dtcBaseQoverPt());
94 if (qOverPtMin >= maxQoverPt || qOverPtMax < -maxQoverPt)
98 qOverPtMin =
max(qOverPtMin, -maxQoverPt);
99 qOverPtMax =
min(qOverPtMax, maxQoverPt);
102 qOverPt_ = {qOverPtMin, qOverPtMax};
113 if (
phiT_.first < 0.)
115 if (
phiT_.second >= 0.)
134 const auto pos =
find(encodingBend.begin(), encodingBend.end(),
abs(
bend_));
135 const int uBend =
distance(encodingBend.begin(),
pos);
161 const TTBV hwValid(1, 1);
163 return TTDTC::BV(hwGap.str() + hwR.str() + hwZ.str() + hwPhi.str() + hwAlpha.str() + hwBend.str() + hwLayer.str() +
174 else if (layerM == 2)
176 else if (layerM == 6 || layerM == 11)
178 else if (layerM == 5 || layerM == 12)
180 else if (layerM == 4 || layerM == 13)
182 else if (layerM == 14)
184 else if (layerM == 3 || layerM == 15)
188 if (
phiT_.first < 0.) {
196 if (
phiT_.second >= 0.) {
208 setcorEta.first =
bin;
211 for (
int bin = setcorEta.first; bin < setup_->numSectorsEta();
bin++)
213 setcorEta.second =
bin;
219 const TTBV hwValid(1, 1);
233 return TTDTC::BV(hwGap.str() + hwValid.
str() + hwR.str() + hwPhi.str() + hwZ.str() + hwQoverPtMin.str() +
234 hwQoverPtMax.str() + hwSectorEtaMin.str() + hwSectorEtaMax.str() + hwSectorPhis.str() +