Definition at line 13 of file Stub.cc.
References funct::abs(), bend_, c, c_, col_, trackerDTC::SensorModule::cos(), cot_, d_, digi(), trackerDTC::SensorModule::Disk2S, HLT_2022v14_cff::distance, l1ctLayer1_cff::dr, trackerDTC::SensorModule::encodedR(), spr::find(), hybrid_, createfilelist::int, visualization-live-secondInstance_cfg::m, m_, SiStripPI::max, SiStripPI::min, beam_dqm_sourceclient-live_cfg::minPt, trackerDTC::SensorModule::numColumns(), trackerDTC::SensorModule::numRows(), trackerDTC::SensorModule::offsetR(), trackerDTC::SensorModule::offsetZ(), trackerDTC::SensorModule::phi(), phi_, phiT_, trackerDTC::SensorModule::pitchCol(), trackerDTC::SensorModule::pitchRow(), funct::pow(), trackerDTC::SensorModule::psModule(), qOverPt_, trackerDTC::SensorModule::r(), r_, regions_, row_, rowLUT_, rowSub_, trackerDTC::SensorModule::sep(), singleTopDQM_cfi::setup, trackerDTC::SensorModule::side(), trackerDTC::SensorModule::signBend(), trackerDTC::SensorModule::signCol(), trackerDTC::SensorModule::signRow(), trackerDTC::SensorModule::sin(), mathSSE::sqrt(), edm::swap(), ttStubRef(), trackerDTC::SensorModule::type(), valid_, trackerDTC::SensorModule::windowSize(), PV2DBase< T, PVType, FrameType >::x(), x, testProducerWithPsetDescEmpty_cfi::x1, PV2DBase< T, PVType, FrameType >::y(), trackerDTC::SensorModule::z(), and z_.
22 col_ = (
int)floor(
pow(-1, sm->signCol()) * (mp.
y() - sm->numColumns() / 2) /
setup.baseCol());
24 row_ = (
int)floor(
pow(-1, sm->signRow()) * (mp.
x() - sm->numRows() / 2) /
setup.baseRow());
34 const double y = (
col_ + .5) *
setup.baseCol() * sm->pitchCol();
36 d_ = sm->r() +
y * sm->sin();
40 const double x0 =
rowLUT_ *
setup.baseRow() *
setup.dtcNumMergedRows() * sm->pitchRow();
41 const double x1 = (
rowLUT_ + 1) *
setup.baseRow() *
setup.dtcNumMergedRows() * sm->pitchRow();
42 const double x = (
rowLUT_ + .5) *
setup.baseRow() *
setup.dtcNumMergedRows() * sm->pitchRow();
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();
83 const double dr = sm->sep() / (sm->cos() - sm->sin() *
z_ /
d_);
85 const double qOverPtOverBend = sm->pitchRow() /
dr /
d_;
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.)
123 r_ -= sm->offsetR() - chosenRofPhi;
128 r_ = sm->encodedR() + (sm->side() ? -
col_ : (
col_ + sm->numColumns() / 2));
129 r_ = (
r_ + 0.5) *
setup.hybridBaseR(sm->type());
133 const vector<double>& encodingBend =
setup.encodingBend(sm->windowSize(), sm->psModule());
135 const int uBend =
distance(encodingBend.begin(),
pos);
T getParameter(std::string const &) const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
std::vector< int > regions_
void swap(Association< C > &lhs, Association< C > &rhs)
Abs< T >::type abs(const T &t)
std::pair< double, double > phiT_
std::pair< double, double > qOverPt_
TTStubRef ttStubRef() const
double digi(double value, double precision) const
std::pair< double, double > cot_
Power< A, B >::type pow(const A &a, const B &b)