CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
trackerDTC::Stub Class Reference

Class to represent an outer tracker Stub. More...

#include <Stub.h>

Public Member Functions

int bend () const
 
tt::Frame frame (int region) const
 
bool inRegion (int region) const
 
 Stub (const edm::ParameterSet &, const tt::Setup *, const LayerEncoding *, tt::SensorModule *, const TTStubRef &)
 
TTStubRef ttStubRef () const
 
bool valid () const
 
 ~Stub ()
 

Private Member Functions

double digi (double value, double precision) const
 
tt::Frame formatHybrid (int region) const
 
tt::Frame formatTMTT (int region) const
 

Private Attributes

int bend_
 
double c_
 
int col_
 
std::pair< double, double > cot_
 
double d_
 
bool hybrid_
 
std::pair< double, double > inv2R_
 
const LayerEncodinglayerEncoding_
 
double m_
 
double phi_
 
std::pair< double, double > phiT_
 
double r_
 
std::vector< int > regions_
 
int row_
 
int rowLUT_
 
int rowSub_
 
const tt::Setupsetup_
 
tt::SensorModulesm_
 
TTStubRef ttStubRef_
 
bool valid_
 
double z_
 

Detailed Description

Class to represent an outer tracker Stub.

Author
Thomas Schuh
Date
2020, Jan

Definition at line 18 of file Stub.h.

Constructor & Destructor Documentation

◆ Stub()

trackerDTC::Stub::Stub ( const edm::ParameterSet iConfig,
const tt::Setup setup,
const LayerEncoding layerEncoding,
tt::SensorModule sm,
const TTStubRef ttStubRef 
)

Definition at line 14 of file Stub.cc.

References funct::abs(), bend_, HltBtagPostValidation_cff::c, c_, col_, tt::SensorModule::cosTilt(), cot_, d_, digi(), HLT_2023v12_cff::distance, tt::SensorModule::encodedR(), spr::find(), hybrid_, createfilelist::int, inv2R_, visualization-live-secondInstance_cfg::m, m_, SiStripPI::max, SiStripPI::min, PV_cfg::minPt, tt::SensorModule::numColumns(), tt::SensorModule::numRows(), tt::SensorModule::offsetR(), tt::SensorModule::offsetZ(), tt::SensorModule::phi(), phi_, phiT_, tt::SensorModule::pitchCol(), tt::SensorModule::pitchRow(), funct::pow(), tt::SensorModule::psModule(), tt::SensorModule::r(), r_, regions_, row_, rowLUT_, rowSub_, tt::SensorModule::sep(), singleTopDQM_cfi::setup, tt::SensorModule::side(), tt::SensorModule::signBend(), tt::SensorModule::signCol(), tt::SensorModule::signRow(), tt::SensorModule::sinTilt(), mathSSE::sqrt(), edm::swap(), ttStubRef(), tt::SensorModule::type(), valid_, tt::SensorModule::windowSize(), PV2DBase< T, PVType, FrameType >::x(), x, PV2DBase< T, PVType, FrameType >::y(), tt::SensorModule::z(), and z_.

19  : setup_(setup),
20  layerEncoding_(layerEncoding),
21  sm_(sm),
23  hybrid_(iConfig.getParameter<bool>("UseHybrid")),
24  valid_(true) {
25  regions_.reserve(setup->numOverlappingRegions());
26  // get stub local coordinates
27  const MeasurementPoint& mp = ttStubRef->clusterRef(0)->findAverageLocalCoordinatesCentered();
28 
29  // convert to uniformed local coordinates
30 
31  // column number in pitch units
32  col_ = (int)floor(pow(-1, sm->signCol()) * (mp.y() - sm->numColumns() / 2) / setup->baseCol());
33  // row number in half pitch units
34  row_ = (int)floor(pow(-1, sm->signRow()) * (mp.x() - sm->numRows() / 2) / setup->baseRow());
35  // bend number in quarter pitch units
36  bend_ = (int)floor(pow(-1, sm->signBend()) * (ttStubRef->bendBE()) / setup->baseBend());
37  // reduced row number for look up
38  rowLUT_ = (int)floor((double)row_ / pow(2., setup->widthRow() - setup->dtcWidthRowLUT()));
39  // sub row number inside reduced row number
40  rowSub_ = row_ - (rowLUT_ + .5) * pow(2, setup->widthRow() - setup->dtcWidthRowLUT());
41 
42  // convert local to global coordinates
43 
44  const double y = (col_ + .5) * setup->baseCol() * sm->pitchCol();
45  // radius of a column of strips/pixel in cm
46  d_ = sm->r() + y * sm->sinTilt();
47  // stub z in cm
48  z_ = digi(sm->z() + y * sm->cosTilt(), setup->tmttBaseZ());
49 
50  const double x0 = rowLUT_ * setup->baseRow() * setup->dtcNumMergedRows() * sm->pitchRow();
51  const double x1 = (rowLUT_ + 1) * setup->baseRow() * setup->dtcNumMergedRows() * sm->pitchRow();
52  const double x = (rowLUT_ + .5) * setup->baseRow() * setup->dtcNumMergedRows() * sm->pitchRow();
53  // stub r in cm
54  r_ = sqrt(d_ * d_ + x * x);
55 
56  const double phi0 = sm->phi() + atan2(x0, d_);
57  const double phi1 = sm->phi() + atan2(x1, d_);
58  const double c = (phi0 + phi1) / 2.;
59  const double m = (phi1 - phi0) / setup->dtcNumMergedRows();
60 
61  // intercept of linearized stub phi in rad
62  c_ = digi(c, setup->tmttBasePhi());
63  // slope of linearized stub phi in rad / strip
64  m_ = digi(m, setup->dtcBaseM());
65 
66  if (hybrid_) {
67  if (abs(z_ / r_) > setup->hybridMaxCot())
68  // did not pass eta cut
69  valid_ = false;
70  } else {
71  // extrapolated z at radius T assuming z0=0
72  const double zT = setup->chosenRofZ() * z_ / r_;
73  // extrapolated z0 window at radius T
74  const double dZT = setup->beamWindowZ() * abs(1. - setup->chosenRofZ() / r_);
75  double zTMin = zT - dZT;
76  double zTMax = zT + dZT;
77  if (zTMin >= setup->maxZT() || zTMax < -setup->maxZT())
78  // did not pass "eta" cut
79  valid_ = false;
80  else {
81  zTMin = max(zTMin, -setup->maxZT());
82  zTMax = min(zTMax, setup->maxZT());
83  }
84  // range of stub cot(theta)
85  cot_ = {zTMin / setup->chosenRofZ(), zTMax / setup->chosenRofZ()};
86  }
87 
88  // stub r w.r.t. chosenRofPhi in cm
89  static const double chosenRofPhi = hybrid_ ? setup->hybridChosenRofPhi() : setup->chosenRofPhi();
90  r_ = digi(r_ - chosenRofPhi, setup->tmttBaseR());
91 
92  // radial (cylindrical) component of sensor separation
93  const double dr = sm->sep() / (sm->cosTilt() - sm->sinTilt() * z_ / d_);
94  // converts bend into inv2R in 1/cm
95  const double inv2ROverBend = sm->pitchRow() / dr / d_;
96  // inv2R in 1/cm
97  const double inv2R = -bend_ * setup->baseBend() * inv2ROverBend;
98  // inv2R uncertainty in 1/cm
99  const double dInv2R = setup->bendCut() * inv2ROverBend;
100  const double minPt = hybrid_ ? setup->hybridMinPtStub() : setup->minPt();
101  const double maxInv2R = setup->invPtToDphi() / minPt - setup->dtcBaseInv2R() / 2.;
102  double inv2RMin = digi(inv2R - dInv2R, setup->dtcBaseInv2R());
103  double inv2RMax = digi(inv2R + dInv2R, setup->dtcBaseInv2R());
104  if (inv2RMin > maxInv2R || inv2RMax < -maxInv2R) {
105  // did not pass pt cut
106  valid_ = false;
107  } else {
108  inv2RMin = max(inv2RMin, -maxInv2R);
109  inv2RMax = min(inv2RMax, maxInv2R);
110  }
111  // range of stub inv2R in 1/cm
112  inv2R_ = {inv2RMin, inv2RMax};
113 
114  // stub phi w.r.t. detector region centre in rad
115  phi_ = c_ + rowSub_ * m_;
116 
117  // range of stub extrapolated phi to radius chosenRofPhi in rad
118  phiT_.first = phi_ - r_ * inv2R_.first;
119  phiT_.second = phi_ - r_ * inv2R_.second;
120  if (phiT_.first > phiT_.second)
121  swap(phiT_.first, phiT_.second);
122 
123  if (phiT_.first < 0.)
124  regions_.push_back(0);
125  if (phiT_.second >= 0.)
126  regions_.push_back(1);
127 
128  // apply data format specific manipulations
129  if (!hybrid_)
130  return;
131 
132  // stub r w.r.t. an offset in cm
133  r_ -= sm->offsetR() - chosenRofPhi;
134  // stub z w.r.t. an offset in cm
135  z_ -= sm->offsetZ();
136  if (sm->type() == SensorModule::Disk2S) {
137  // encoded r
138  r_ = sm->encodedR() + (sm->side() ? -col_ : (col_ + sm->numColumns() / 2));
139  r_ = (r_ + 0.5) * setup->hybridBaseR(sm->type());
140  }
141 
142  // encode bend
143  const vector<double>& encodingBend = setup->encodingBend(sm->windowSize(), sm->psModule());
144  const auto pos = find(encodingBend.begin(), encodingBend.end(), abs(ttStubRef->bendBE()));
145  const int uBend = distance(encodingBend.begin(), pos);
146  bend_ = pow(-1, signbit(bend_)) * uBend;
147  }
double offsetR() const
Definition: SensorModule.h:65
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
int numRows() const
Definition: SensorModule.h:41
double r_
Definition: Stub.h:65
Type type() const
Definition: SensorModule.h:19
int rowSub_
Definition: Stub.h:63
bool psModule() const
Definition: SensorModule.h:29
TTStubRef ttStubRef_
Definition: Stub.h:49
minPt
Definition: PV_cfg.py:223
tt::SensorModule * sm_
Definition: Stub.h:47
T x() const
Definition: PV2DBase.h:43
bool hybrid_
Definition: Stub.h:51
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
std::vector< int > regions_
Definition: Stub.h:83
const tt::Setup * setup_
Definition: Stub.h:43
double phi_
Definition: Stub.h:67
double c_
Definition: Stub.h:73
double m_
Definition: Stub.h:71
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:117
T y() const
Definition: PV2DBase.h:44
double d_
Definition: Stub.h:75
bool valid_
Definition: Stub.h:53
const LayerEncoding * layerEncoding_
Definition: Stub.h:45
T sqrt(T t)
Definition: SSEVec.h:19
double offsetZ() const
Definition: SensorModule.h:67
double cosTilt() const
Definition: SensorModule.h:61
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool signBend() const
Definition: SensorModule.h:37
double r() const
Definition: SensorModule.h:45
bool side() const
Definition: SensorModule.h:25
double pitchRow() const
Definition: SensorModule.h:53
int rowLUT_
Definition: Stub.h:61
std::pair< double, double > phiT_
Definition: Stub.h:81
int numColumns() const
Definition: SensorModule.h:39
double phi() const
Definition: SensorModule.h:47
double sep() const
Definition: SensorModule.h:51
double pitchCol() const
Definition: SensorModule.h:55
double z() const
Definition: SensorModule.h:49
TTStubRef ttStubRef() const
Definition: Stub.h:24
int windowSize() const
Definition: SensorModule.h:69
double z_
Definition: Stub.h:69
double digi(double value, double precision) const
Definition: Stub.cc:156
std::pair< double, double > cot_
Definition: Stub.h:79
int encodedR() const
Definition: SensorModule.h:63
double sinTilt() const
Definition: SensorModule.h:59
bool signCol() const
Definition: SensorModule.h:35
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
std::pair< double, double > inv2R_
Definition: Stub.h:77
bool signRow() const
Definition: SensorModule.h:33

◆ ~Stub()

trackerDTC::Stub::~Stub ( )
inline

Definition at line 21 of file Stub.h.

21 {}

Member Function Documentation

◆ bend()

int trackerDTC::Stub::bend ( ) const
inline

Definition at line 28 of file Stub.h.

References bend_.

Referenced by trackerDTC::DTC::DTC().

28 { return bend_; }

◆ digi()

double trackerDTC::Stub::digi ( double  value,
double  precision 
) const
private

Definition at line 156 of file Stub.cc.

References boostedTaus_cff::precision.

Referenced by Stub().

156 { return (floor(value / precision) + .5) * precision; }
Definition: value.py:1

◆ formatHybrid()

Frame trackerDTC::Stub::formatHybrid ( int  region) const
private

Definition at line 159 of file Stub.cc.

References tt::Setup::baseRegion(), bend_, trackerDTC::LayerEncoding::decode(), l1trig_cff::hwPhi, tt::Setup::hybridBaseAlpha(), tt::Setup::hybridBasePhi(), tt::Setup::hybridBaseR(), tt::Setup::hybridBaseZ(), tt::Setup::hybridNumUnusedBits(), tt::Setup::hybridRangePhi(), tt::Setup::hybridWidthAlpha(), tt::Setup::hybridWidthBend(), tt::Setup::hybridWidthLayerId(), tt::Setup::hybridWidthPhi(), tt::Setup::hybridWidthR(), tt::Setup::hybridWidthZ(), layerEncoding_, phi_, r_, HLT_2023v12_cff::region, row_, setup_, sm_, tt::SensorModule::type(), and z_.

Referenced by frame().

159  {
160  const SensorModule::Type type = sm_->type();
161  // layer encoding
162  const int decodedLayerId = layerEncoding_->decode(sm_);
163  // stub phi w.r.t. processing region border in rad
164  double phi = phi_ - (region - .5) * setup_->baseRegion() + setup_->hybridRangePhi() / 2.;
165  if (phi >= setup_->hybridRangePhi())
167  // convert stub variables into bit vectors
168  const TTBV hwR(r_, setup_->hybridBaseR(type), setup_->hybridWidthR(type), true);
170  const TTBV hwZ(z_, setup_->hybridBaseZ(type), setup_->hybridWidthZ(type), true);
171  const TTBV hwAlpha(row_, setup_->hybridBaseAlpha(type), setup_->hybridWidthAlpha(type), true);
172  const TTBV hwBend(bend_, setup_->hybridWidthBend(type), true);
173  const TTBV hwLayer(decodedLayerId, setup_->hybridWidthLayerId());
174  const TTBV hwGap(0, setup_->hybridNumUnusedBits(type));
175  const TTBV hwValid(1, 1);
176  // assemble final bitset
177  return Frame(hwGap.str() + hwR.str() + hwZ.str() + hwPhi.str() + hwAlpha.str() + hwBend.str() + hwLayer.str() +
178  hwValid.str());
179  }
std::bitset< TTBV::S_ > Frame
Definition: TTTypes.h:58
double hybridRangePhi() const
Definition: Setup.h:300
double r_
Definition: Stub.h:65
int hybridWidthLayerId() const
Definition: Setup.h:280
Bit vector used by Track Trigger emulators. Mainly used to convert integers into arbitrary (within ma...
Definition: TTBV.h:20
Type type() const
Definition: SensorModule.h:19
double hybridBaseAlpha(SensorModule::Type type) const
Definition: Setup.h:288
tt::SensorModule * sm_
Definition: Stub.h:47
int hybridWidthZ(SensorModule::Type type) const
Definition: Setup.h:272
const tt::Setup * setup_
Definition: Stub.h:43
double phi_
Definition: Stub.h:67
int hybridWidthPhi(SensorModule::Type type) const
Definition: Setup.h:274
double hybridBaseR(SensorModule::Type type) const
Definition: Setup.h:282
const LayerEncoding * layerEncoding_
Definition: Stub.h:45
int hybridNumUnusedBits(SensorModule::Type type) const
Definition: Setup.h:290
int hybridWidthAlpha(SensorModule::Type type) const
Definition: Setup.h:276
int hybridWidthBend(SensorModule::Type type) const
Definition: Setup.h:278
double z_
Definition: Stub.h:69
double hybridBasePhi(SensorModule::Type type) const
Definition: Setup.h:284
double hybridBaseZ(SensorModule::Type type) const
Definition: Setup.h:286
int decode(tt::SensorModule *sm) const
double baseRegion() const
Definition: Setup.h:184
int hybridWidthR(SensorModule::Type type) const
Definition: Setup.h:270

◆ formatTMTT()

Frame trackerDTC::Stub::formatTMTT ( int  region) const
private

Definition at line 181 of file Stub.cc.

References tt::Setup::baseRegion(), tt::Setup::baseSector(), newFWLiteAna::bin, tt::Setup::boundarieEta(), cot_, l1trig_cff::hwPhi, inv2R_, tt::SensorModule::layerId(), tt::Setup::numOverlappingRegions(), tt::Setup::numSectorsEta(), tt::Setup::numSectorsPhi(), phi_, phiT_, r_, HLT_2023v12_cff::region, setup_, sm_, TTBV::str(), tt::Setup::tmttBaseInv2R(), tt::Setup::tmttBasePhi(), tt::Setup::tmttBaseR(), tt::Setup::tmttBaseZ(), tt::Setup::tmttNumUnusedBits(), tt::Setup::tmttWidthInv2R(), tt::Setup::tmttWidthLayer(), tt::Setup::tmttWidthPhi(), tt::Setup::tmttWidthR(), tt::Setup::tmttWidthSectorEta(), tt::Setup::tmttWidthZ(), and z_.

Referenced by frame().

181  {
182  int layerM = sm_->layerId();
183  // convert unique layer id [1-6,11-15] into reduced layer id [0-6]
184  // a fiducial track may not cross more then 7 detector layers, for stubs from a given track the reduced layer id is actually unique
185  int layer(-1);
186  if (layerM == 1)
187  layer = 0;
188  else if (layerM == 2)
189  layer = 1;
190  else if (layerM == 6 || layerM == 11)
191  layer = 2;
192  else if (layerM == 5 || layerM == 12)
193  layer = 3;
194  else if (layerM == 4 || layerM == 13)
195  layer = 4;
196  else if (layerM == 14)
197  layer = 5;
198  else if (layerM == 3 || layerM == 15)
199  layer = 6;
200  // assign stub to phi sectors within a processing region, to be generalized
202  if (phiT_.first < 0.) {
203  if (phiT_.first < -setup_->baseSector())
204  sectorsPhi.set(0);
205  else
206  sectorsPhi.set(1);
207  if (phiT_.second < 0. && phiT_.second >= -setup_->baseSector())
208  sectorsPhi.set(1);
209  }
210  if (phiT_.second >= 0.) {
211  if (phiT_.second < setup_->baseSector())
212  sectorsPhi.set(2);
213  else
214  sectorsPhi.set(3);
215  if (phiT_.first >= 0. && phiT_.first < setup_->baseSector())
216  sectorsPhi.set(2);
217  }
218  // assign stub to eta sectors within a processing region
219  pair<int, int> sectorEta({0, setup_->numSectorsEta() - 1});
220  for (int bin = 0; bin < setup_->numSectorsEta(); bin++)
221  if (asinh(cot_.first) < setup_->boundarieEta(bin + 1)) {
222  sectorEta.first = bin;
223  break;
224  }
225  for (int bin = sectorEta.first; bin < setup_->numSectorsEta(); bin++)
226  if (asinh(cot_.second) < setup_->boundarieEta(bin + 1)) {
227  sectorEta.second = bin;
228  break;
229  }
230  // stub phi w.r.t. processing region centre in rad
231  const double phi = phi_ - (region - .5) * setup_->baseRegion();
232  // convert stub variables into bit vectors
233  const TTBV hwValid(1, 1);
234  const TTBV hwGap(0, setup_->tmttNumUnusedBits());
235  const TTBV hwLayer(layer, setup_->tmttWidthLayer());
236  const TTBV hwSectorEtaMin(sectorEta.first, setup_->tmttWidthSectorEta());
237  const TTBV hwSectorEtaMax(sectorEta.second, setup_->tmttWidthSectorEta());
238  const TTBV hwR(r_, setup_->tmttBaseR(), setup_->tmttWidthR(), true);
239  const TTBV hwPhi(phi, setup_->tmttBasePhi(), setup_->tmttWidthPhi(), true);
240  const TTBV hwZ(z_, setup_->tmttBaseZ(), setup_->tmttWidthZ(), true);
241  const TTBV hwInv2RMin(inv2R_.first, setup_->tmttBaseInv2R(), setup_->tmttWidthInv2R(), true);
242  const TTBV hwInv2RMax(inv2R_.second, setup_->tmttBaseInv2R(), setup_->tmttWidthInv2R(), true);
243  TTBV hwSectorPhis(0, setup_->numSectorsPhi());
244  for (int sectorPhi = 0; sectorPhi < setup_->numSectorsPhi(); sectorPhi++)
245  hwSectorPhis[sectorPhi] = sectorsPhi[region * setup_->numSectorsPhi() + sectorPhi];
246  // assemble final bitset
247  return Frame(hwGap.str() + hwValid.str() + hwR.str() + hwPhi.str() + hwZ.str() + hwLayer.str() +
248  hwSectorPhis.str() + hwSectorEtaMin.str() + hwSectorEtaMax.str() + hwInv2RMin.str() +
249  hwInv2RMax.str());
250  }
std::bitset< TTBV::S_ > Frame
Definition: TTTypes.h:58
int tmttWidthSectorEta() const
Definition: Setup.h:225
double r_
Definition: Stub.h:65
int tmttWidthZ() const
Definition: Setup.h:221
int numSectorsPhi() const
Definition: Setup.h:409
Bit vector used by Track Trigger emulators. Mainly used to convert integers into arbitrary (within ma...
Definition: TTBV.h:20
int tmttWidthInv2R() const
Definition: Setup.h:227
double tmttBasePhi() const
Definition: Setup.h:233
double boundarieEta(int eta) const
Definition: Setup.h:417
tt::SensorModule * sm_
Definition: Stub.h:47
const tt::Setup * setup_
Definition: Stub.h:43
double phi_
Definition: Stub.h:67
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer
int numSectorsEta() const
Definition: Setup.h:411
double baseSector() const
Definition: Setup.h:420
int tmttNumUnusedBits() const
Definition: Setup.h:239
int tmttWidthR() const
Definition: Setup.h:217
std::pair< double, double > phiT_
Definition: Stub.h:81
double tmttBaseR() const
Definition: Setup.h:229
double tmttBaseZ() const
Definition: Setup.h:231
int tmttWidthLayer() const
Definition: Setup.h:223
double z_
Definition: Stub.h:69
std::pair< double, double > cot_
Definition: Stub.h:79
int numOverlappingRegions() const
Definition: Setup.h:347
int tmttWidthPhi() const
Definition: Setup.h:219
int layerId() const
Definition: SensorModule.h:43
double baseRegion() const
Definition: Setup.h:184
double tmttBaseInv2R() const
Definition: Setup.h:235
std::pair< double, double > inv2R_
Definition: Stub.h:77

◆ frame()

Frame trackerDTC::Stub::frame ( int  region) const

Definition at line 150 of file Stub.cc.

References formatHybrid(), formatTMTT(), hybrid_, and HLT_2023v12_cff::region.

150 { return hybrid_ ? formatHybrid(region) : formatTMTT(region); }
tt::Frame formatHybrid(int region) const
Definition: Stub.cc:159
bool hybrid_
Definition: Stub.h:51
tt::Frame formatTMTT(int region) const
Definition: Stub.cc:181

◆ inRegion()

bool trackerDTC::Stub::inRegion ( int  region) const

Definition at line 153 of file Stub.cc.

References spr::find(), HLT_2023v12_cff::region, and regions_.

153 { return find(regions_.begin(), regions_.end(), region) != regions_.end(); }
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
std::vector< int > regions_
Definition: Stub.h:83

◆ ttStubRef()

TTStubRef trackerDTC::Stub::ttStubRef ( ) const
inline

Definition at line 24 of file Stub.h.

References ttStubRef_.

Referenced by Stub().

24 { return ttStubRef_; }
TTStubRef ttStubRef_
Definition: Stub.h:49

◆ valid()

bool trackerDTC::Stub::valid ( ) const
inline

Definition at line 26 of file Stub.h.

References valid_.

Referenced by trackerDTC::DTC::DTC().

26 { return valid_; }
bool valid_
Definition: Stub.h:53

Member Data Documentation

◆ bend_

int trackerDTC::Stub::bend_
private

Definition at line 59 of file Stub.h.

Referenced by bend(), formatHybrid(), and Stub().

◆ c_

double trackerDTC::Stub::c_
private

Definition at line 73 of file Stub.h.

Referenced by Stub().

◆ col_

int trackerDTC::Stub::col_
private

Definition at line 55 of file Stub.h.

Referenced by Stub().

◆ cot_

std::pair<double, double> trackerDTC::Stub::cot_
private

Definition at line 79 of file Stub.h.

Referenced by formatTMTT(), and Stub().

◆ d_

double trackerDTC::Stub::d_
private

Definition at line 75 of file Stub.h.

Referenced by Stub().

◆ hybrid_

bool trackerDTC::Stub::hybrid_
private

Definition at line 51 of file Stub.h.

Referenced by frame(), and Stub().

◆ inv2R_

std::pair<double, double> trackerDTC::Stub::inv2R_
private

Definition at line 77 of file Stub.h.

Referenced by formatTMTT(), and Stub().

◆ layerEncoding_

const LayerEncoding* trackerDTC::Stub::layerEncoding_
private

Definition at line 45 of file Stub.h.

Referenced by formatHybrid().

◆ m_

double trackerDTC::Stub::m_
private

Definition at line 71 of file Stub.h.

Referenced by Stub().

◆ phi_

double trackerDTC::Stub::phi_
private

Definition at line 67 of file Stub.h.

Referenced by formatHybrid(), formatTMTT(), and Stub().

◆ phiT_

std::pair<double, double> trackerDTC::Stub::phiT_
private

Definition at line 81 of file Stub.h.

Referenced by formatTMTT(), and Stub().

◆ r_

double trackerDTC::Stub::r_
private

Definition at line 65 of file Stub.h.

Referenced by formatHybrid(), formatTMTT(), and Stub().

◆ regions_

std::vector<int> trackerDTC::Stub::regions_
private

Definition at line 83 of file Stub.h.

Referenced by inRegion(), and Stub().

◆ row_

int trackerDTC::Stub::row_
private

Definition at line 57 of file Stub.h.

Referenced by formatHybrid(), and Stub().

◆ rowLUT_

int trackerDTC::Stub::rowLUT_
private

Definition at line 61 of file Stub.h.

Referenced by Stub().

◆ rowSub_

int trackerDTC::Stub::rowSub_
private

Definition at line 63 of file Stub.h.

Referenced by Stub().

◆ setup_

const tt::Setup* trackerDTC::Stub::setup_
private

◆ sm_

tt::SensorModule* trackerDTC::Stub::sm_
private

Definition at line 47 of file Stub.h.

Referenced by formatHybrid(), and formatTMTT().

◆ ttStubRef_

TTStubRef trackerDTC::Stub::ttStubRef_
private

Definition at line 49 of file Stub.h.

Referenced by ttStubRef().

◆ valid_

bool trackerDTC::Stub::valid_
private

Definition at line 53 of file Stub.h.

Referenced by Stub(), and valid().

◆ z_

double trackerDTC::Stub::z_
private

Definition at line 69 of file Stub.h.

Referenced by formatHybrid(), formatTMTT(), and Stub().