CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
tmtt::Sector Class Reference

#include <Sector.h>

Public Member Functions

float etaMax () const
 
float etaMin () const
 
unsigned int iEtaReg () const
 
bool inside (const Stub *stub) const
 
bool insideEta (const Stub *stub) const
 
bool insideEtaReg (const TP &tp) const
 
std::vector< bool > insideEtaSubSecs (const Stub *stub) const
 
bool insidePhi (const Stub *stub) const
 
bool insidePhiSec (const TP &tp) const
 
unsigned int iPhiSec () const
 
void numStubsInside (const TP &tp, unsigned int &nStubsInsideEtaPhi, unsigned int &nStubsInsideEta, unsigned int &nStubsInsidePhi) const
 
float phiCentre () const
 
 Sector (const Settings *settings, unsigned int iPhiSec, unsigned int iEtaSec)
 
float sectorHalfWidth () const
 
std::unordered_map< const Stub *, std::pair< bool, bool > > stubsInside (const TP &tp) const
 
float zAtChosenR_Max () const
 
float zAtChosenR_Min () const
 

Private Member Functions

int64_t forceBitWidth (const float value, const UInt_t nBits) const
 
bool insideEtaRange (const Stub *stub, float zRangeMin, float zRangeMax) const
 
std::vector< bool > subEtaFwCalc (const int rT, const int z) const
 

Private Attributes

float assumedPhiTrkRes_
 
float beamWindowZ_
 
bool calcPhiTrkRes_
 
float chosenRofPhi_
 
float chosenRofZ_
 
float etaMax_
 
float etaMin_
 
unsigned int iEtaReg_
 
unsigned int iPhiSec_
 
float minPt_
 
unsigned int numSubSecsEta_
 
float phiCentre_
 
float sectorHalfWidth_
 
const Settingssettings_
 
bool useStubPhi_
 
bool useStubPhiTrk_
 
float zOuterMax_
 
std::vector< float > zOuterMaxSub_
 
float zOuterMin_
 
std::vector< float > zOuterMinSub_
 

Detailed Description

Definition at line 14 of file Sector.h.

Constructor & Destructor Documentation

◆ Sector()

tmtt::Sector::Sector ( const Settings settings,
unsigned int  iPhiSec,
unsigned int  iEtaSec 
)

Definition at line 13 of file Sector.cc.

14  : settings_(settings),
15  // Sector number
18 
19  beamWindowZ_(settings->beamWindowZ()), // Assumed half-length of beam-spot
20 
21  //=== Characteristics of this eta region.
22  // Using lines of specified rapidity drawn from centre of CMS, determine the z coords at which
23  // they cross the radius chosenRofZ_.
24  etaMin_(settings->etaRegions()[iEtaReg]),
25  etaMax_(settings->etaRegions()[iEtaReg + 1]),
26  chosenRofZ_(settings->chosenRofZ()),
27  // Get range in z of tracks covered by this sector at chosen radius from beam-line
28  zOuterMin_(chosenRofZ_ / tan(2. * atan(exp(-etaMin_)))),
29  zOuterMax_(chosenRofZ_ / tan(2. * atan(exp(-etaMax_)))),
30 
31  //=== Characteristics of this phi region.
32  chosenRofPhi_(settings->chosenRofPhi()),
33  minPt_(settings->houghMinPt()), // Min Pt covered by HT array.
34  assumedPhiTrkRes_(settings->assumedPhiTrkRes()),
35  useStubPhi_(settings->useStubPhi()),
36  useStubPhiTrk_(settings->useStubPhiTrk()),
37  calcPhiTrkRes_(settings->calcPhiTrkRes()),
38  //=== Check if subsectors in eta are being used within each sector.
39  numSubSecsEta_(settings->numSubSecsEta()) {
40  // Centre of phi (tracking) nonant zero must be along x-axis to be consistent with tracker cabling map.
41  // Define phi sector zero to start at lower end of phi range in nonant 0.
42  float phiCentreSec0 = -M_PI / float(settings->numPhiNonants()) + M_PI / float(settings->numPhiSectors());
43  // Centre of sector in phi
44  phiCentre_ = 2. * M_PI * float(iPhiSec) / float(settings->numPhiSectors()) + phiCentreSec0;
45  sectorHalfWidth_ = M_PI / float(settings->numPhiSectors()); // Sector half width excluding overlaps.
46 
47  // If eta subsectors have equal width in rapidity, do this.
48  float subSecWidth = (etaMax_ - etaMin_) / float(numSubSecsEta_);
49  for (unsigned int i = 0; i < numSubSecsEta_; i++) {
50  float subSecEtaMin = etaMin_ + i * subSecWidth;
51  float subSecEtaMax = subSecEtaMin + subSecWidth;
52  float subSecZmin = chosenRofZ_ / tan(2. * atan(exp(-subSecEtaMin)));
53  float subSecZmax = chosenRofZ_ / tan(2. * atan(exp(-subSecEtaMax)));
54  zOuterMinSub_.push_back(subSecZmin);
55  zOuterMaxSub_.push_back(subSecZmax);
56  }
57  }

References chosenRofZ_, etaMax_, etaMin_, JetChargeProducer_cfi::exp, dqmMemoryStats::float, mps_fire::i, iPhiSec(), M_PI, tmtt::Settings::numPhiNonants(), tmtt::Settings::numPhiSectors(), numSubSecsEta_, phiCentre_, sectorHalfWidth_, funct::tan(), zOuterMaxSub_, and zOuterMinSub_.

Member Function Documentation

◆ etaMax()

float tmtt::Sector::etaMax ( ) const
inline

Definition at line 31 of file Sector.h.

31 { return etaMax_; } // Eta range covered by this sector.

References etaMax_.

Referenced by tmtt::L1track3D::cheat(), tmtt::MiniHTstage::exec(), and tmtt::TMTrackProducer::produce().

◆ etaMin()

float tmtt::Sector::etaMin ( ) const
inline

Definition at line 30 of file Sector.h.

30 { return etaMin_; } // Eta range covered by this sector.

References etaMin_.

Referenced by tmtt::L1track3D::cheat(), tmtt::MiniHTstage::exec(), and tmtt::TMTrackProducer::produce().

◆ forceBitWidth()

int64_t tmtt::Sector::forceBitWidth ( const float  value,
const UInt_t  nBits 
) const
private

Definition at line 192 of file Sector.cc.

192  {
193  // slightly hand-waving treatment of 2s complement
194  int64_t sign = 1;
195  if (value < 0)
196  sign = -1;
197  int64_t iValue = int64_t(std::abs(value));
198  int64_t mask = (int64_t(1) << nBits) - int64_t(1);
199  int64_t result = sign * (iValue & mask);
200  if (std::abs(result - value) > 1)
201  throw cms::Exception("LogicError")
202  << "Sector::forceBitWidth is messing up by using too few bits to digitize number"
203  << " nBits=" << nBits << " Input float=" << value << " Output digi = " << result;
204  return result;
205  // Check that result is compatible with value. Throw error if not.
206  }

References funct::abs(), mps_fire::result, and Validation_hcalonly_cfi::sign.

Referenced by subEtaFwCalc().

◆ iEtaReg()

unsigned int tmtt::Sector::iEtaReg ( ) const
inline

Definition at line 28 of file Sector.h.

28 { return iEtaReg_; }

References iEtaReg_.

◆ inside()

bool tmtt::Sector::inside ( const Stub stub) const
inline

Definition at line 20 of file Sector.h.

20 { return (this->insideEta(stub) && this->insidePhi(stub)); }

References insideEta(), and insidePhi().

Referenced by tmtt::Histos::fillEtaPhiSectors(), insideEta(), insideEtaRange(), insideEtaSubSecs(), tmtt::TMTrackProducer::produce(), and stubsInside().

◆ insideEta()

bool tmtt::Sector::insideEta ( const Stub stub) const

Definition at line 61 of file Sector.cc.

61  {
62  // Lower edge of this eta region defined by line from (r,z) = (0,-beamWindowZ) to (chosenRofZ_, zOuterMin_).
63  // Upper edge of this eta region defined by line from (r,z) = (0, beamWindowZ) to (chosenRofZ_, zOuterMax_).
64 
65  bool inside = this->insideEtaRange(stub, zOuterMin_, zOuterMax_);
66  return inside;
67  }

References inside(), insideEtaRange(), zOuterMax_, and zOuterMin_.

Referenced by tmtt::Histos::fillEtaPhiSectors(), inside(), numStubsInside(), and stubsInside().

◆ insideEtaRange()

bool tmtt::Sector::insideEtaRange ( const Stub stub,
float  zRangeMin,
float  zRangeMax 
) const
private

Definition at line 93 of file Sector.cc.

93  {
94  // Lower edge of this eta region defined by line from (r,z) = (0,-beamWindowZ) to (chosenRofZ_, zRangeMin).
95  // Upper edge of this eta region defined by line from (r,z) = (0, beamWindowZ) to (chosenRofZ_, zRangeMax).
96 
97  float zMin, zMax;
98  bool inside;
99 
100  // Calculate z coordinate of lower edge of this eta region, evaluated at radius of stub.
101  zMin = (zRangeMin * stub->r() - beamWindowZ_ * std::abs(stub->r() - chosenRofZ_)) / chosenRofZ_;
102  // Calculate z coordinate of upper edge of this eta region, evaluated at radius of stub.
103  zMax = (zRangeMax * stub->r() + beamWindowZ_ * std::abs(stub->r() - chosenRofZ_)) / chosenRofZ_;
104 
105  inside = (stub->z() > zMin && stub->z() < zMax);
106  return inside;
107  }

References funct::abs(), beamWindowZ_, chosenRofZ_, inside(), tmtt::Stub::r(), tmtt::Stub::z(), photonAnalyzer_cfi::zMax, and photonAnalyzer_cfi::zMin.

Referenced by insideEta(), and insideEtaSubSecs().

◆ insideEtaReg()

bool tmtt::Sector::insideEtaReg ( const TP tp) const
inline

Definition at line 56 of file Sector.h.

56  {
57  return (tp.trkZAtR(chosenRofZ_) > zOuterMin_ && tp.trkZAtR(chosenRofZ_) < zOuterMax_);
58  }

References chosenRofZ_, cmsswSequenceInfo::tp, zOuterMax_, and zOuterMin_.

◆ insideEtaSubSecs()

vector< bool > tmtt::Sector::insideEtaSubSecs ( const Stub stub) const

Definition at line 71 of file Sector.cc.

71  {
72  if (settings_->enableDigitize() && numSubSecsEta_ == 2) {
73  // Use (complicated) digitized firmware emulation
74  return subEtaFwCalc(stub->digitalStub()->iDigi_Rt(), stub->digitalStub()->iDigi_Z());
75 
76  } else {
77  // Use (simpler) floating point calculation.
78 
79  vector<bool> insideVec;
80 
81  // Loop over subsectors.
82  for (unsigned int i = 0; i < numSubSecsEta_; i++) {
83  bool inside = this->insideEtaRange(stub, zOuterMinSub_[i], zOuterMaxSub_[i]);
84  insideVec.push_back(inside);
85  }
86 
87  return insideVec;
88  }
89  }

References tmtt::Stub::digitalStub(), tmtt::Settings::enableDigitize(), mps_fire::i, tmtt::DigitalStub::iDigi_Rt(), tmtt::DigitalStub::iDigi_Z(), inside(), insideEtaRange(), numSubSecsEta_, settings_, subEtaFwCalc(), zOuterMaxSub_, and zOuterMinSub_.

Referenced by tmtt::MiniHTstage::exec(), and tmtt::TMTrackProducer::produce().

◆ insidePhi()

bool tmtt::Sector::insidePhi ( const Stub stub) const

Definition at line 111 of file Sector.cc.

111  {
112  // N.B. The logic here for preventing a stub being assigned to > 2 sectors seems overly agressive.
113  // But attempts at improving it have failed ...
114 
115  bool okPhi = true;
116  bool okPhiTrk = true;
117 
118  if (useStubPhi_) {
119  float delPhi =
120  reco::deltaPhi(stub->phi(), phiCentre_); // Phi difference between stub & sector in range -PI to +PI.
121  float tolerancePhi = stub->phiDiff(
122  chosenRofPhi_, minPt_); // How much stub phi might differ from track phi because of track curvature.
123  float outsidePhi = std::abs(delPhi) - sectorHalfWidth_ -
124  tolerancePhi; // If > 0, then stub is not compatible with being inside this sector.
125  if (outsidePhi > 0)
126  okPhi = false;
127  }
128 
129  if (useStubPhiTrk_) {
130  // Estimate either phi0 of track from stub info, or phi of the track at radius chosenRofPhi_.
131  float phiTrk = stub->trkPhiAtR(chosenRofPhi_);
132  // Phi difference between stub & sector in range -PI to +PI.
133  float delPhiTrk = reco::deltaPhi(phiTrk, phiCentre_);
134  // Set tolerance equal to nominal resolution assumed in phiTrk
135  float tolerancePhiTrk = assumedPhiTrkRes_ * (2 * sectorHalfWidth_);
136  if (calcPhiTrkRes_) {
137  // Calculate uncertainty in phiTrk due to poor resolution in stub bend
138  float phiTrkRes = stub->trkPhiAtRcut(chosenRofPhi_);
139  // Reduce tolerance if this is smaller than the nominal assumed resolution.
140  tolerancePhiTrk = min(tolerancePhiTrk, phiTrkRes);
141  }
142  // If following > 0, then stub is not compatible with being inside this sector.
143  float outsidePhiTrk = std::abs(delPhiTrk) - sectorHalfWidth_ - tolerancePhiTrk;
144 
145  if (outsidePhiTrk > 0)
146  okPhiTrk = false;
147  }
148 
149  return (okPhi && okPhiTrk);
150  }

References funct::abs(), assumedPhiTrkRes_, calcPhiTrkRes_, chosenRofPhi_, delPhi(), reco::deltaPhi(), min(), minPt_, tmtt::Stub::phi(), phiCentre_, tmtt::Stub::phiDiff(), sectorHalfWidth_, tmtt::Stub::trkPhiAtR(), tmtt::Stub::trkPhiAtRcut(), useStubPhi_, and useStubPhiTrk_.

Referenced by tmtt::Histos::fillEtaPhiSectors(), inside(), numStubsInside(), and stubsInside().

◆ insidePhiSec()

bool tmtt::Sector::insidePhiSec ( const TP tp) const
inline

Definition at line 53 of file Sector.h.

53  {
54  return (std::abs(tp.trkPhiAtR(chosenRofPhi_) - phiCentre_) < sectorHalfWidth_);
55  }

References funct::abs(), chosenRofPhi_, phiCentre_, sectorHalfWidth_, and cmsswSequenceInfo::tp.

◆ iPhiSec()

unsigned int tmtt::Sector::iPhiSec ( ) const
inline

Definition at line 27 of file Sector.h.

27 { return iPhiSec_; } // Sector number.

References iPhiSec_.

Referenced by Sector().

◆ numStubsInside()

void tmtt::Sector::numStubsInside ( const TP tp,
unsigned int &  nStubsInsideEtaPhi,
unsigned int &  nStubsInsideEta,
unsigned int &  nStubsInsidePhi 
) const

Definition at line 171 of file Sector.cc.

174  {
175  nStubsInsideEtaPhi = 0;
176  nStubsInsideEta = 0;
177  nStubsInsidePhi = 0;
178  for (const auto& iter : this->stubsInside(tp)) {
179  bool insidePhi = iter.second.first;
180  bool insideEta = iter.second.second;
181  if (insidePhi && insideEta)
182  nStubsInsideEtaPhi++;
183  if (insideEta)
184  nStubsInsideEta++;
185  if (insidePhi)
186  nStubsInsidePhi++;
187  }
188  }

References insideEta(), insidePhi(), and stubsInside().

◆ phiCentre()

float tmtt::Sector::phiCentre ( ) const
inline

Definition at line 29 of file Sector.h.

29 { return phiCentre_; } // Return phi of centre of this sector.

References phiCentre_.

Referenced by tmtt::L1track3D::cheat(), tmtt::MiniHTstage::exec(), and tmtt::TMTrackProducer::produce().

◆ sectorHalfWidth()

float tmtt::Sector::sectorHalfWidth ( ) const
inline

Definition at line 33 of file Sector.h.

33 { return sectorHalfWidth_; } // Half width in phi of sector measured in radians.

References sectorHalfWidth_.

◆ stubsInside()

unordered_map< const Stub *, pair< bool, bool > > tmtt::Sector::stubsInside ( const TP tp) const

Definition at line 156 of file Sector.cc.

156  {
157  unordered_map<const Stub*, pair<bool, bool> > inside;
158  // Loop over stubs produced by tracking particle
159  const vector<const Stub*>& assStubs = tp.assocStubs();
160  for (const Stub* stub : assStubs) {
161  // Check if this stub is inside sector
162  inside[stub] = pair<bool, bool>(this->insidePhi(stub), this->insideEta(stub));
163  }
164  return inside;
165  }

References inside(), insideEta(), insidePhi(), and cmsswSequenceInfo::tp.

Referenced by numStubsInside().

◆ subEtaFwCalc()

vector< bool > tmtt::Sector::subEtaFwCalc ( const int  rT,
const int  z 
) const
private

Definition at line 211 of file Sector.cc.

211  {
212  // Note number of reference bits used to digitize rT and z, used when GP authors determined some constants below.
213  unsigned int rtBitsRef = 10;
214  unsigned int zBitsRef = 12;
215 
216  // This replaces Kristian's hard-wired constants with configurable ones.
217  unsigned int rtBits = settings_->rtBits();
218  unsigned int zBits = settings_->zBits();
219  float rtRange = settings_->rtRange();
220  float zRange = settings_->zRange();
221  constexpr float cm_to_mm = 10.; // firwmare is in mm and CMSSW in cm.
222  float zBase = cm_to_mm / (pow(2, zBits) / zRange);
223  float rTBase = cm_to_mm / (pow(2, rtBits) / rtRange);
224 
225  // Number of bits used by DSP in UltraScale-Plus FPGA (where DSP does D = A*B + C)
226  constexpr unsigned int nDSPa = 27;
227  //constexpr unsigned int nDSPb = 18;
228  constexpr unsigned int nDSPc = 48;
229  constexpr unsigned int nDSPd = 48;
230 
231  // unit transformations: firmware uses mm, software uses cm
232  float BeamWindow = cm_to_mm * beamWindowZ_;
233  float T_rphi = cm_to_mm * chosenRofPhi_;
234  float T_rz = cm_to_mm * chosenRofZ_;
235 
236  // actual algorithm as used in firmware, mostly using same variable names
237  float Beam_over_T = BeamWindow / T_rz;
238  // Value chosen so that number digitized below when calculating "bot" uses most of the nDSPa bits, without overflowing them. This is done assuming reference number of bits for rT and z mentioned above.
239  unsigned int nShiftA = 24;
240  // Guess from to keep "bot" in correct range (nDSPa) if number of digitsation bits are changed.
241  nShiftA += (rtBits - rtBitsRef) - (zBits - zBitsRef);
242  float Beam_over_T_base = 1. / (1 << nShiftA);
243  int64_t bot = forceBitWidth(Beam_over_T * rTBase / zBase / Beam_over_T_base, nDSPa);
244  int64_t bw = forceBitWidth(BeamWindow / zBase / Beam_over_T_base, nDSPc);
245  float etaSecMid = (settings_->etaRegions()[iEtaReg_] + settings_->etaRegions()[iEtaReg_ + 1]) / 2.0;
246  float tanlSecMid = 1.0 / tan(2.0 * atan(exp(-etaSecMid)));
247  // Value chosen so that number digitized below when calculating "tanlSec_Mid" uses most of the nDSPa bits, without overflowing them. This is done assuming reference number of bits for rT and z mentioned above.
248  unsigned int nShiftB = 16;
249  // Guess to keep "tanlSec_Mid" in correct range (nDSPa) if number of digitsation bits are changed.
250  nShiftB += (rtBits - rtBitsRef) - (zBits - zBitsRef);
251  float tanlSecBase = 1. / (1 << nShiftB);
252  int64_t tanlSec_Mid = forceBitWidth(int(tanlSecMid * rTBase / zBase / tanlSecBase), nDSPa);
253  // Number of extra bits used to digitise r instead of rT within GP code, if both encoded as signed int.
254  constexpr unsigned int nExtraBitsR = 2;
255  unsigned int rBits = rtBits + nExtraBitsR;
256  int64_t r = forceBitWidth(rT + T_rphi / rTBase, rBits);
257  int64_t g = forceBitWidth(bot * r - bw, nDSPd);
258  int64_t absg = abs(g);
259  // Number of useful bits left of the nDSPd assigned to "absg" after right-shifting by nShiftA bits.
260  const unsigned nBitsRemainingA = nDSPd - nShiftA;
261  int64_t shift_g = forceBitWidth((absg >> nShiftA), nBitsRemainingA);
262  // Number of bits is sum of those in two numbers being multiplied.
263  int64_t tlsr = forceBitWidth(tanlSec_Mid * r, nDSPa + rBits);
264  // Number of useful bits left of (nDSPa + rBits) assigned to "tlsr" after right-shifting by nShiftB bits.
265  const unsigned nBitsRemainingB = (nDSPa + rBits) - nShiftB;
266  int64_t shift_tlsr = forceBitWidth((tlsr >> nShiftB), nBitsRemainingB);
267 
268  vector<bool> insideVec;
269  insideVec.push_back(z <= (shift_tlsr + shift_g));
270  insideVec.push_back(z >= (shift_tlsr - shift_g));
271  return insideVec;
272  }

References funct::abs(), beamWindowZ_, chosenRofPhi_, chosenRofZ_, cm_to_mm, tmtt::Settings::etaRegions(), JetChargeProducer_cfi::exp, forceBitWidth(), g, iEtaReg_, funct::pow(), alignCSCRings::r, tmtt::Settings::rtBits(), tmtt::Settings::rtRange(), settings_, funct::tan(), tmtt::Settings::zBits(), tmtt::Settings::zRange(), and beampixel_dqm_sourceclient-live_cfg::zRange.

Referenced by insideEtaSubSecs().

◆ zAtChosenR_Max()

float tmtt::Sector::zAtChosenR_Max ( ) const
inline

Definition at line 37 of file Sector.h.

37 { return zOuterMax_; }

References zOuterMax_.

◆ zAtChosenR_Min()

float tmtt::Sector::zAtChosenR_Min ( ) const
inline

Definition at line 34 of file Sector.h.

34  {
35  return zOuterMin_;
36  } // Range in z of particle at chosen radius from beam line covered by this sector.

References zOuterMin_.

Member Data Documentation

◆ assumedPhiTrkRes_

float tmtt::Sector::assumedPhiTrkRes_
private

Definition at line 88 of file Sector.h.

Referenced by insidePhi().

◆ beamWindowZ_

float tmtt::Sector::beamWindowZ_
private

Definition at line 76 of file Sector.h.

Referenced by insideEtaRange(), and subEtaFwCalc().

◆ calcPhiTrkRes_

bool tmtt::Sector::calcPhiTrkRes_
private

Definition at line 91 of file Sector.h.

Referenced by insidePhi().

◆ chosenRofPhi_

float tmtt::Sector::chosenRofPhi_
private

Definition at line 86 of file Sector.h.

Referenced by insidePhi(), insidePhiSec(), and subEtaFwCalc().

◆ chosenRofZ_

float tmtt::Sector::chosenRofZ_
private

Definition at line 79 of file Sector.h.

Referenced by insideEtaRange(), insideEtaReg(), Sector(), and subEtaFwCalc().

◆ etaMax_

float tmtt::Sector::etaMax_
private

Definition at line 78 of file Sector.h.

Referenced by etaMax(), and Sector().

◆ etaMin_

float tmtt::Sector::etaMin_
private

Definition at line 77 of file Sector.h.

Referenced by etaMin(), and Sector().

◆ iEtaReg_

unsigned int tmtt::Sector::iEtaReg_
private

Definition at line 75 of file Sector.h.

Referenced by iEtaReg(), and subEtaFwCalc().

◆ iPhiSec_

unsigned int tmtt::Sector::iPhiSec_
private

Definition at line 74 of file Sector.h.

Referenced by iPhiSec().

◆ minPt_

float tmtt::Sector::minPt_
private

Definition at line 87 of file Sector.h.

Referenced by insidePhi().

◆ numSubSecsEta_

unsigned int tmtt::Sector::numSubSecsEta_
private

Definition at line 94 of file Sector.h.

Referenced by insideEtaSubSecs(), and Sector().

◆ phiCentre_

float tmtt::Sector::phiCentre_
private

Definition at line 84 of file Sector.h.

Referenced by insidePhi(), insidePhiSec(), phiCentre(), and Sector().

◆ sectorHalfWidth_

float tmtt::Sector::sectorHalfWidth_
private

Definition at line 85 of file Sector.h.

Referenced by insidePhi(), insidePhiSec(), Sector(), and sectorHalfWidth().

◆ settings_

const Settings* tmtt::Sector::settings_
private

Definition at line 71 of file Sector.h.

Referenced by insideEtaSubSecs(), and subEtaFwCalc().

◆ useStubPhi_

bool tmtt::Sector::useStubPhi_
private

Definition at line 89 of file Sector.h.

Referenced by insidePhi().

◆ useStubPhiTrk_

bool tmtt::Sector::useStubPhiTrk_
private

Definition at line 90 of file Sector.h.

Referenced by insidePhi().

◆ zOuterMax_

float tmtt::Sector::zOuterMax_
private

Definition at line 81 of file Sector.h.

Referenced by insideEta(), insideEtaReg(), and zAtChosenR_Max().

◆ zOuterMaxSub_

std::vector<float> tmtt::Sector::zOuterMaxSub_
private

Definition at line 96 of file Sector.h.

Referenced by insideEtaSubSecs(), and Sector().

◆ zOuterMin_

float tmtt::Sector::zOuterMin_
private

Definition at line 80 of file Sector.h.

Referenced by insideEta(), insideEtaReg(), and zAtChosenR_Min().

◆ zOuterMinSub_

std::vector<float> tmtt::Sector::zOuterMinSub_
private

Definition at line 95 of file Sector.h.

Referenced by insideEtaSubSecs(), and Sector().

tmtt::Sector::insideEtaRange
bool insideEtaRange(const Stub *stub, float zRangeMin, float zRangeMax) const
Definition: Sector.cc:93
mps_fire.i
i
Definition: mps_fire.py:355
photonAnalyzer_cfi.zMax
zMax
Definition: photonAnalyzer_cfi.py:95
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
tmtt::Sector::chosenRofZ_
float chosenRofZ_
Definition: Sector.h:79
cm_to_mm
static const double cm_to_mm
Definition: PPSUnitConversion.h:17
tmtt::Sector::forceBitWidth
int64_t forceBitWidth(const float value, const UInt_t nBits) const
Definition: Sector.cc:192
min
T min(T a, T b)
Definition: MathUtil.h:58
reco::deltaPhi
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
tmtt::Sector::iPhiSec
unsigned int iPhiSec() const
Definition: Sector.h:27
tmtt::Settings::enableDigitize
bool enableDigitize() const
Definition: Settings.h:80
tmtt::Sector::zOuterMinSub_
std::vector< float > zOuterMinSub_
Definition: Sector.h:95
Validation_hcalonly_cfi.sign
sign
Definition: Validation_hcalonly_cfi.py:32
tmtt::Sector::stubsInside
std::unordered_map< const Stub *, std::pair< bool, bool > > stubsInside(const TP &tp) const
Definition: Sector.cc:156
tmtt::Sector::phiCentre_
float phiCentre_
Definition: Sector.h:84
tmtt::Sector::calcPhiTrkRes_
bool calcPhiTrkRes_
Definition: Sector.h:91
tmtt::Sector::iEtaReg
unsigned int iEtaReg() const
Definition: Sector.h:28
beampixel_dqm_sourceclient-live_cfg.zRange
zRange
Definition: beampixel_dqm_sourceclient-live_cfg.py:144
tmtt::Sector::settings_
const Settings * settings_
Definition: Sector.h:71
tmtt::Sector::useStubPhiTrk_
bool useStubPhiTrk_
Definition: Sector.h:90
tmtt::Settings::zBits
unsigned int zBits() const
Definition: Settings.h:87
cmsswSequenceInfo.tp
tp
Definition: cmsswSequenceInfo.py:17
tmtt::Sector::etaMax_
float etaMax_
Definition: Sector.h:78
tmtt::Sector::minPt_
float minPt_
Definition: Sector.h:87
tmtt::Sector::sectorHalfWidth_
float sectorHalfWidth_
Definition: Sector.h:85
delPhi
static double delPhi(const double phi1, const double phi2)
Definition: FFTGenericScaleCalculator.cc:20
tmtt::Sector::insideEta
bool insideEta(const Stub *stub) const
Definition: Sector.cc:61
tmtt::Sector::etaMin_
float etaMin_
Definition: Sector.h:77
tmtt::Sector::zOuterMin_
float zOuterMin_
Definition: Sector.h:80
photonAnalyzer_cfi.zMin
zMin
Definition: photonAnalyzer_cfi.py:94
funct::tan
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
value
Definition: value.py:1
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:50
tmtt::Sector::zOuterMax_
float zOuterMax_
Definition: Sector.h:81
tmtt::Sector::useStubPhi_
bool useStubPhi_
Definition: Sector.h:89
tmtt::Settings::zRange
double zRange() const
Definition: Settings.h:88
tmtt::Sector::iPhiSec_
unsigned int iPhiSec_
Definition: Sector.h:74
tmtt::Sector::chosenRofPhi_
float chosenRofPhi_
Definition: Sector.h:86
tmtt::Settings::rtRange
double rtRange() const
Definition: Settings.h:86
tmtt::Sector::inside
bool inside(const Stub *stub) const
Definition: Sector.h:20
alignCSCRings.r
r
Definition: alignCSCRings.py:93
tmtt::Sector::assumedPhiTrkRes_
float assumedPhiTrkRes_
Definition: Sector.h:88
tmtt::Sector::iEtaReg_
unsigned int iEtaReg_
Definition: Sector.h:75
tmtt::Sector::beamWindowZ_
float beamWindowZ_
Definition: Sector.h:76
tmtt::Settings::rtBits
unsigned int rtBits() const
Definition: Settings.h:85
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
mps_fire.result
result
Definition: mps_fire.py:303
cms::Exception
Definition: Exception.h:70
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
tmtt::Sector::insidePhi
bool insidePhi(const Stub *stub) const
Definition: Sector.cc:111
JetChargeProducer_cfi.exp
exp
Definition: JetChargeProducer_cfi.py:6
tmtt::Sector::numSubSecsEta_
unsigned int numSubSecsEta_
Definition: Sector.h:94
tmtt::Sector::subEtaFwCalc
std::vector< bool > subEtaFwCalc(const int rT, const int z) const
Definition: Sector.cc:211
tmtt::Settings::etaRegions
const std::vector< double > & etaRegions() const
Definition: Settings.h:124
g
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
tmtt::Sector::zOuterMaxSub_
std::vector< float > zOuterMaxSub_
Definition: Sector.h:96