CMS 3D CMS Logo

Setup.h
Go to the documentation of this file.
1 #ifndef L1Trigger_TrackTrigger_Setup_h
2 #define L1Trigger_TrackTrigger_Setup_h
3 
22 
27 
28 #include <vector>
29 #include <set>
30 #include <unordered_map>
31 
32 namespace tt {
33 
36  // handles 2 pi overflow
37  inline double deltaPhi(double lhs, double rhs = 0.) { return reco::deltaPhi(lhs, rhs); }
38 
44  class Setup {
45  public:
46  Setup() {}
47  Setup(const edm::ParameterSet& iConfig,
51  const TrackerDetToDTCELinkCablingMap& cablingMap,
53  const edm::ParameterSet& pSetStubAlgorithm,
54  const edm::ParameterSet& pSetGeometryConfiguration,
55  const edm::ParameterSetID& pSetIdTTStubAlgorithm,
56  const edm::ParameterSetID& pSetIdGeometryConfiguration);
57  ~Setup() {}
58 
59  // true if tracker geometry and magnetic field supported
61  // checks current configuration vs input sample configuration
62  void checkHistory(const edm::ProcessHistory& processHistory) const;
63  // converts tk layout id into dtc id
64  int dtcId(int tklId) const;
65  // converts dtci id into tk layout id
66  int tkLayoutId(int dtcId) const;
67  // converts TFP identifier (region[0-8], channel[0-47]) into dtcId [0-215]
68  int dtcId(int tfpRegion, int tfpChannel) const;
69  // checks if given dtcId is connected to PS or 2S sensormodules
70  bool psModule(int dtcId) const;
71  // checks if given dtcId is connected via 10 gbps link
72  bool gbps10(int dtcId) const;
73  // checks if given dtcId is connected to -z (false) or +z (true)
74  bool side(int dtcId) const;
75  // ATCA slot number [0-11] of given dtcId
76  int slot(int dtcId) const;
77  // sensor module for det id
78  SensorModule* sensorModule(const DetId& detId) const;
79  // TrackerGeometry
81  // TrackerTopology
83  // returns global TTStub position
84  GlobalPoint stubPos(const TTStubRef& ttStubRef) const;
85  // returns bit accurate hybrid stub radius for given TTStubRef and h/w bit word
86  double stubR(const TTBV& hw, const TTStubRef& ttStubRef) const;
87  // returns bit accurate position of a stub from a given tfp region [0-8]
88  GlobalPoint stubPos(bool hybrid, const tt::FrameStub& frame, int region) const;
89  // empty trackerDTC EDProduct
91  // checks if stub collection is considered forming a reconstructable track
92  bool reconstructable(const std::vector<TTStubRef>& ttStubRefs) const;
93  // checks if tracking particle is selected for efficiency measurements
94  bool useForAlgEff(const TrackingParticle& tp) const;
95  // checks if tracking particle is selected for fake and duplicate rate measurements
97  // stub layer id (barrel: 1 - 6, endcap: 11 - 15)
98  int layerId(const TTStubRef& ttStubRef) const;
99  // return tracklet layerId (barrel: [0-5], endcap: [6-10]) for given TTStubRef
100  int trackletLayerId(const TTStubRef& ttStubRef) const;
101  // return index layerId (barrel: [0-5], endcap: [0-6]) for given TTStubRef
102  int indexLayerId(const TTStubRef& ttStubRef) const;
103  // true if stub from barrel module
104  bool barrel(const TTStubRef& ttStubRef) const;
105  // true if stub from barrel module
106  bool psModule(const TTStubRef& ttStubRef) const;
107  // return sensor moduel type
108  SensorModule::Type type(const TTStubRef& ttStubRef) const;
109  //
110  TTBV layerMap(const std::vector<int>& ints) const;
111  //
112  TTBV layerMap(const TTBV& hitPattern, const std::vector<int>& ints) const;
113  //
114  std::vector<int> layerMap(const TTBV& hitPattern, const TTBV& ttBV) const;
115  //
116  std::vector<int> layerMap(const TTBV& ttBV) const;
117  // stub projected phi uncertainty
118  double dPhi(const TTStubRef& ttStubRef, double inv2R) const;
119  // stub projected z uncertainty
120  double dZ(const TTStubRef& ttStubRef, double cot) const;
121  // stub projected chi2phi wheight
122  double v0(const TTStubRef& ttStubRef, double inv2R) const;
123  // stub projected chi2z wheight
124  double v1(const TTStubRef& ttStubRef, double cot) const;
125  //
126  const std::vector<SensorModule>& sensorModules() const { return sensorModules_; }
127 
128  // Firmware specific Parameter
129 
130  // width of the 'A' port of an DSP slice
131  int widthDSPa() const { return widthDSPa_; }
132  // width of the 'A' port of an DSP slice using biased twos complement
133  int widthDSPab() const { return widthDSPab_; }
134  // width of the 'A' port of an DSP slice using biased binary
135  int widthDSPau() const { return widthDSPau_; }
136  // width of the 'B' port of an DSP slice
137  int widthDSPb() const { return widthDSPb_; }
138  // width of the 'B' port of an DSP slice using biased twos complement
139  int widthDSPbb() const { return widthDSPbb_; }
140  // width of the 'B' port of an DSP slice using biased binary
141  int widthDSPbu() const { return widthDSPbu_; }
142  // width of the 'C' port of an DSP slice
143  int widthDSPc() const { return widthDSPc_; }
144  // width of the 'C' port of an DSP slice using biased twos complement
145  int widthDSPcb() const { return widthDSPcb_; }
146  // width of the 'C' port of an DSP slice using biased binary
147  int widthDSPcu() const { return widthDSPcu_; }
148  // smallest address width of an BRAM36 configured as broadest simple dual port memory
149  int widthAddrBRAM36() const { return widthAddrBRAM36_; }
150  // smallest address width of an BRAM18 configured as broadest simple dual port memory
151  int widthAddrBRAM18() const { return widthAddrBRAM18_; }
152  // number of frames betwen 2 resets of 18 BX packets
153  int numFrames() const { return numFrames_; }
154  // number of frames needed per reset
155  int numFramesInfra() const { return numFramesInfra_; }
156  // number of valid frames per 18 BX packet
157  int numFramesIO() const { return numFramesIO_; }
158  // number of valid frames per 8 BX packet
159  int numFramesFE() const { return numFramesFE_; }
160  // maximum representable stub phi uncertainty
161  double maxdPhi() const { return maxdPhi_; }
162  // maximum representable stub z uncertainty
163  double maxdZ() const { return maxdZ_; }
164  // barrel layer limit z value to partition into tilted and untilted region
165  double tiltedLayerLimitZ(int layer) const { return tiltedLayerLimitsZ_.at(layer); }
166  // endcap disk limit r value to partition into PS and 2S region
167  double psDiskLimitR(int layer) const { return psDiskLimitsR_.at(layer); }
168  // strip pitch of outer tracker sensors in cm
169  double pitch2S() const { return pitch2S_; }
170  // pixel pitch of outer tracker sensors in cm
171  double pitchPS() const { return pitchPS_; }
172  // strip length of outer tracker sensors in cm
173  double length2S() const { return length2S_; }
174  // pixel length of outer tracker sensors in cm
175  double lengthPS() const { return lengthPS_; }
176 
177  // Common track finding parameter
178 
179  // half lumi region size in cm
180  double beamWindowZ() const { return beamWindowZ_; }
181  // converts GeV in 1/cm
182  double invPtToDphi() const { return invPtToDphi_; }
183  // region size in rad
184  double baseRegion() const { return baseRegion_; }
185  // pt cut
186  double tpMinPt() const { return tpMinPt_; }
187  // TP eta cut
188  double tpMaxEta() const { return tpMaxEta_; }
189  // TP cut on vertex pos r in cm
190  double tpMaxVertR() const { return tpMaxVertR_; }
191  // TP cut on vertex pos z in cm
192  double tpMaxVertZ() const { return tpMaxVertZ_; }
193  // TP cut on impact parameter in cm
194  double tpMaxD0() const { return tpMaxD0_; }
195  // required number of associated layers to a TP to consider it reconstruct-able
196  int tpMinLayers() const { return tpMinLayers_; }
197  // required number of associated ps layers to a TP to consider it reconstruct-able
198  int tpMinLayersPS() const { return tpMinLayersPS_; }
199  // max number of unassociated 2S stubs allowed to still associate TTTrack with TP
200  int tpMaxBadStubs2S() const { return tpMaxBadStubs2S_; }
201  // max number of unassociated PS stubs allowed to still associate TTTrack with TP
202  int tpMaxBadStubsPS() const { return tpMaxBadStubsPS_; }
203  // BField used in fw in T
204  double bField() const { return bField_; }
205 
206  // TMTT specific parameter
207 
208  // cut on stub and TP pt, also defines region overlap shape in GeV
209  double minPt() const { return minPt_; }
210  // cut on stub eta
211  double maxEta() const { return maxEta_; }
212  // critical radius defining region overlap shape in cm
213  double chosenRofPhi() const { return chosenRofPhi_; }
214  // number of detector layers a reconstructbale particle may cross
215  int numLayers() const { return numLayers_; }
216  // number of bits used for stub r - ChosenRofPhi
217  int tmttWidthR() const { return tmttWidthR_; }
218  // number of bits used for stub phi w.r.t. phi sector centre
219  int tmttWidthPhi() const { return tmttWidthPhi_; }
220  // number of bits used for stub z
221  int tmttWidthZ() const { return tmttWidthZ_; }
222  // number of bits used for stub layer id
223  int tmttWidthLayer() const { return tmttWidthLayer_; }
224  // number of bits used for stub eta sector
225  int tmttWidthSectorEta() const { return tmttWidthSectorEta_; }
226  // number of bits used for stub inv2R
227  int tmttWidthInv2R() const { return tmttWidthInv2R_; }
228  // internal stub r precision in cm
229  double tmttBaseR() const { return tmttBaseR_; }
230  // internal stub z precision in cm
231  double tmttBaseZ() const { return tmttBaseZ_; }
232  // internal stub phi precision in rad
233  double tmttBasePhi() const { return tmttBasePhi_; }
234  // internal stub inv2R precision in 1/cm
235  double tmttBaseInv2R() const { return tmttBaseInv2R_; }
236  // internal stub phiT precision in rad
237  double tmttBasePhiT() const { return tmttBasePhiT_; }
238  // number of padded 0s in output data format
239  int tmttNumUnusedBits() const { return tmttNumUnusedBits_; }
240  // outer radius of outer tracker in cm
241  double outerRadius() const { return outerRadius_; }
242  // inner radius of outer tracker in cm
243  double innerRadius() const { return innerRadius_; }
244  // half length of outer tracker in cm
245  double halfLength() const { return halfLength_; }
246  // max strip/pixel length of outer tracker sensors in cm
247  double maxLength() const { return maxLength_; }
248  // In tilted barrel, grad*|z|/r + int approximates |cosTilt| + |sinTilt * cotTheta|
249  double tiltApproxSlope() const { return tiltApproxSlope_; }
250  // In tilted barrel, grad*|z|/r + int approximates |cosTilt| + |sinTilt * cotTheta|
251  double tiltApproxIntercept() const { return tiltApproxIntercept_; }
252  // In tilted barrel, constant assumed stub radial uncertainty * sqrt(12) in cm
253  double tiltUncertaintyR() const { return tiltUncertaintyR_; }
254  // scattering term used to add stub phi uncertainty depending on assumed track inv2R
255  double scattering() const { return scattering_; }
256 
257  // Hybrid specific parameter
258 
259  // cut on stub pt in GeV, also defines region overlap shape
260  double hybridMinPtStub() const { return hybridMinPtStub_; }
261  // cut on andidate pt in GeV
262  double hybridMinPtCand() const { return hybridMinPtCand_; }
263  // cut on stub eta
264  double hybridMaxEta() const { return hybridMaxEta_; }
265  // critical radius defining region overlap shape in cm
266  double hybridChosenRofPhi() const { return hybridChosenRofPhi_; }
267  // max number of detector layer connected to one DTC
268  int hybridNumLayers() const { return hybridNumLayers_; }
269  // number of bits used for stub r w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S)
271  // number of bits used for stub z w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S)
273  // number of bits used for stub phi w.r.t. region centre for module types (barrelPS, barrel2S, diskPS, disk2S)
275  // number of bits used for stub row number for module types (barrelPS, barrel2S, diskPS, disk2S)
277  // number of bits used for stub bend number for module types (barrelPS, barrel2S, diskPS, disk2S)
279  // number of bits used for stub layer id
280  int hybridWidthLayerId() const { return hybridWidthLayerId_; }
281  // precision or r in cm for (barrelPS, barrel2S, diskPS, disk2S)
282  double hybridBaseR(SensorModule::Type type) const { return hybridBasesR_.at(type); }
283  // precision or phi in rad for (barrelPS, barrel2S, diskPS, disk2S)
285  // precision or z in cm for (barrelPS, barrel2S, diskPS, disk2S)
286  double hybridBaseZ(SensorModule::Type type) const { return hybridBasesZ_.at(type); }
287  // precision or alpha in pitch units for (barrelPS, barrel2S, diskPS, disk2S)
289  // number of padded 0s in output data format for (barrelPS, barrel2S, diskPS, disk2S)
291  // stub cut on cot(theta) = tan(lambda) = sinh(eta)
292  double hybridMaxCot() const { return hybridMaxCot_; }
293  // number of outer PS rings for disk 1, 2, 3, 4, 5
294  int hybridNumRingsPS(int layerId) const { return hybridNumRingsPS_.at(layerId); }
295  // mean radius of outer tracker barrel layer
296  double hybridLayerR(int layerId) const { return hybridLayerRs_.at(layerId); }
297  // mean z of outer tracker endcap disks
298  double hybridDiskZ(int layerId) const { return hybridDiskZs_.at(layerId); }
299  // range of stub phi in rad
300  double hybridRangePhi() const { return hybridRangePhi_; }
301  // range of stub r in cm
303  // smallest stub radius after TrackBuilder in cm
304  double tbInnerRadius() const { return tbInnerRadius_; }
305  // center radius of outer tracker endcap 2S diks strips
306  double disk2SR(int layerId, int r) const { return disk2SRs_.at(layerId).at(r); }
307  // number of bits used for stub r w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S) after TrackBuilder
308  int tbWidthR(SensorModule::Type type) const { return tbWidthsR_.at(type); }
309 
310  // Parameter specifying TTStub algorithm
311 
312  // number of tilted layer rings per barrel layer
313  double numTiltedLayerRing(int layerId) const { return numTiltedLayerRings_.at(layerId); };
314  // stub bend window sizes for flat barrel layer in full pitch units
316  // stub bend window sizes for tilted barrel layer rings in full pitch units
317  double windowSizeTiltedLayerRing(int layerId, int ring) const {
319  };
320  // stub bend window sizes for endcap disks rings in full pitch units
321  double windowSizeEndcapDisksRing(int layerId, int ring) const {
323  };
324  // precision of window sizes in pitch units
325  double baseWindowSize() const { return baseWindowSize_; }
326  // index = encoded bend, value = decoded bend for given window size and module type
327  const std::vector<double>& encodingBend(int windowSize, bool psModule) const;
328 
329  // Parameter specifying front-end
330 
331  // number of bits used for internal stub bend
332  int widthBend() const { return widthBend_; }
333  // number of bits used for internal stub column
334  int widthCol() const { return widthCol_; }
335  // number of bits used for internal stub row
336  int widthRow() const { return widthRow_; }
337  // precision of internal stub bend in pitch units
338  double baseBend() const { return baseBend_; }
339  // precision of internal stub column in pitch units
340  double baseCol() const { return baseCol_; }
341  // precision of internal stub row in pitch units
342  double baseRow() const { return baseRow_; }
343  // used stub bend uncertainty in pitch units
344  double bendCut() const { return bendCut_; }
345 
346  // Parameter specifying DTC
347 
348  // number of phi slices the outer tracker readout is organized in
349  int numRegions() const { return numRegions_; }
350  // number of regions a reconstructable particles may cross
352  // number of Tracker boards per ATCA crate.
353  int numATCASlots() const { return numATCASlots_; }
354  // number of DTC boards used to readout a detector region, likely constructed to be an integerer multiple of NumSlots_
355  int numDTCsPerRegion() const { return numDTCsPerRegion_; }
356  // max number of sensor modules connected to one DTC board
357  int numModulesPerDTC() const { return numModulesPerDTC_; }
358  // number of systiloic arrays in stub router firmware
360  // fifo depth in stub router firmware
361  int dtcDepthMemory() const { return dtcDepthMemory_; }
362  // number of row bits used in look up table
363  int dtcWidthRowLUT() const { return dtcWidthRowLUT_; }
364  // number of bits used for stub inv2R. lut addr is col + bend = 11 => 1 BRAM -> 18 bits for min and max val -> 9
365  int dtcWidthInv2R() const { return dtcWidthInv2R_; }
366  // tk layout det id minus DetSetVec->detId
367  int offsetDetIdDSV() const { return offsetDetIdDSV_; }
368  // tk layout det id minus TrackerTopology lower det id
369  int offsetDetIdTP() const { return offsetDetIdTP_; }
370  // offset in layer ids between barrel layer and endcap disks
371  int offsetLayerDisks() const { return offsetLayerDisks_; }
372  // offset between 0 and smallest layer id (barrel layer 1)
373  int offsetLayerId() const { return offsetLayerId_; }
374  //
375  int numBarrelLayer() const { return numBarrelLayer_; }
376  // total number of outer tracker DTCs
377  int numDTCs() const { return numDTCs_; }
378  // number of DTCs connected to one TFP (48)
379  int numDTCsPerTFP() const { return numDTCsPerTFP_; }
380  // total number of max possible outer tracker modules (72 per DTC)
381  int numModules() const { return numModules_; }
382  // max number of moudles connected to a systiloic array in stub router firmware
384  // number of merged rows for look up
385  int dtcNumMergedRows() const { return dtcNumMergedRows_; }
386  // number of bits used for phi of row slope
387  int dtcWidthM() const { return dtcWidthM_; }
388  // internal stub inv2R precision in 1 /cm
389  double dtcBaseInv2R() const { return dtcBaseInv2R_; }
390  // phi of row slope precision in rad / pitch unit
391  double dtcBaseM() const { return dtcBaseM_; }
392  // sensor modules connected to given dtc id
393  const std::vector<SensorModule*>& dtcModules(int dtcId) const { return dtcModules_.at(dtcId); }
394  // total number of output channel
395  int dtcNumStreams() const { return dtcNumStreams_; }
396 
397  // Parameter specifying TFP
398 
399  // number of bist used for phi0
400  int tfpWidthPhi0() const { return tfpWidthPhi0_; }
401  // umber of bist used for inv2R
402  int tfpWidthInv2R() const { return tfpWidthInv2R_; }
403  // number of bist used for cot(theta)
404  int tfpWidthCot() const { return tfpWidthCot_; }
405  // number of bist used for z0
406  int tfpWidthZ0() const { return tfpWidthZ0_; }
407  // number of output links
408  int tfpNumChannel() const { return tfpNumChannel_; }
409 
410  // Parameter specifying GeometricProcessor
411 
412  // number of phi sectors in a processing nonant used in hough transform
413  int numSectorsPhi() const { return numSectorsPhi_; }
414  // number of eta sectors used in hough transform
415  int numSectorsEta() const { return numSectorsEta_; }
416  // # critical radius defining r-z sector shape in cm
417  double chosenRofZ() const { return chosenRofZ_; }
418  // fifo depth in stub router firmware
419  int gpDepthMemory() const { return gpDepthMemory_; }
420  // defining r-z sector shape
421  double boundarieEta(int eta) const { return boundariesEta_.at(eta); }
422  std::vector<double> boundarieEta() const { return boundariesEta_; }
423  // phi sector size in rad
424  double baseSector() const { return baseSector_; }
425  // cut on zT
426  double maxZT() const { return maxZT_; }
427  // cut on stub cot theta
428  double maxCot() const { return maxCot_; }
429  // total number of sectors
430  int numSectors() const { return numSectors_; }
431  // cot(theta) of given eta sector
432  double sectorCot(int eta) const { return sectorCots_.at(eta); }
433  //
434  double neededRangeChiZ() const { return neededRangeChiZ_; }
435 
436  // Parameter specifying HoughTransform
437 
438  // number of inv2R bins used in hough transform
439  int htNumBinsInv2R() const { return htNumBinsInv2R_; }
440  // number of phiT bins used in hough transform
441  int htNumBinsPhiT() const { return htNumBinsPhiT_; }
442  // required number of stub layers to form a candidate
443  int htMinLayers() const { return htMinLayers_; }
444  // internal fifo depth
445  int htDepthMemory() const { return htDepthMemory_; }
446 
447  // Parameter specifying MiniHoughTransform
448 
449  // number of finer inv2R bins inside HT bin
450  int mhtNumBinsInv2R() const { return mhtNumBinsInv2R_; }
451  // number of finer phiT bins inside HT bin
452  int mhtNumBinsPhiT() const { return mhtNumBinsPhiT_; }
453  // number of dynamic load balancing steps
454  int mhtNumDLBs() const { return mhtNumDLBs_; }
455  // number of units per dynamic load balancing step
456  int mhtNumDLBNodes() const { return mhtNumDLBNodes_; }
457  // number of inputs per dynamic load balancing unit
458  int mhtNumDLBChannel() const { return mhtNumDLBChannel_; }
459  // required number of stub layers to form a candidate
460  int mhtMinLayers() const { return mhtMinLayers_; }
461  // number of mht cells
462  int mhtNumCells() const { return mhtNumCells_; }
463 
464  // Parameter specifying ZHoughTransform
465 
466  //number of used zT bins
467  int zhtNumBinsZT() const { return zhtNumBinsZT_; }
468  // number of used cot bins
469  int zhtNumBinsCot() const { return zhtNumBinsCot_; }
470  // number of stages
471  int zhtNumStages() const { return zhtNumStages_; }
472  // required number of stub layers to form a candidate
473  int zhtMinLayers() const { return zhtMinLayers_; }
474  // max number of output tracks per node
475  int zhtMaxTracks() const { return zhtMaxTracks_; }
476  // cut on number of stub per layer for input candidates
478  // number of zht cells
479  int zhtNumCells() const { return zhtNumCells_; }
480 
481  // Parameter specifying KalmanFilter Input Formatter
482 
483  // power of 2 multiplier of stub phi residual range
484  int kfinShiftRangePhi() const { return kfinShiftRangePhi_; }
485  // power of 2 multiplier of stub z residual range
486  int kfinShiftRangeZ() const { return kfinShiftRangeZ_; }
487 
488  // Parameter specifying KalmanFilter
489 
490  // number of kf worker
491  int kfNumWorker() const { return kfNumWorker_; }
492  // required number of stub layers to form a track
493  int kfMinLayers() const { return kfMinLayers_; }
494  // maximum number of layers added to a track
495  int kfMaxLayers() const { return kfMaxLayers_; }
496  // search window of each track parameter in initial uncertainties
497  double kfRangeFactor() const { return kfRangeFactor_; }
498  //
499  int kfShiftInitialC00() const { return kfShiftInitialC00_; }
500  //
501  int kfShiftInitialC11() const { return kfShiftInitialC11_; }
502  //
503  int kfShiftInitialC22() const { return kfShiftInitialC22_; }
504  //
505  int kfShiftInitialC33() const { return kfShiftInitialC33_; }
506 
507  // Parameter specifying KalmanFilter Output Formatter
508  // Conversion factor between dphi^2/weight and chi2rphi
509  int kfoutchi2rphiConv() const { return kfoutchi2rphiConv_; }
510  // Conversion factor between dz^2/weight and chi2rz
511  int kfoutchi2rzConv() const { return kfoutchi2rzConv_; }
512  // Fraction of total dphi and dz ranges to calculate v0 and v1 LUT for
513  int weightBinFraction() const { return weightBinFraction_; }
514  // Constant used in FW to prevent 32-bit int overflow
515  int dzTruncation() const { return dzTruncation_; }
516  // Constant used in FW to prevent 32-bit int overflow
517  int dphiTruncation() const { return dphiTruncation_; }
518 
519  // Parameter specifying DuplicateRemoval
520 
521  // internal memory depth
522  int drDepthMemory() const { return drDepthMemory_; }
523 
524  //getBendCut
526 
527  private:
528  // checks consitency between history and current configuration for a specific module
529  void checkHistory(const edm::ProcessHistory&,
530  const edm::pset::Registry*,
531  const std::string&,
532  const edm::ParameterSetID&) const;
533  // dumps pSetHistory where incosistent lines with pSetProcess are highlighted
534  std::string dumpDiff(const edm::ParameterSet& pSetHistory, const edm::ParameterSet& pSetProcess) const;
535  // check if bField is supported
536  void checkMagneticField();
537  // check if geometry is supported
538  void checkGeometry();
539  // derive constants
540  void calculateConstants();
541  // convert configuration of TTStubAlgorithm
542  void consumeStubAlgorithm();
543  // create bend encodings
544  void encodeBend(std::vector<std::vector<double>>&, bool) const;
545  // create sensor modules
546  void produceSensorModules();
547  // range check of dtc id
548  void checkDTCId(int dtcId) const;
549  // range check of tklayout id
550  void checkTKLayoutId(int tkLayoutId) const;
551  // range check of tfp identifier
552  void checkTFPIdentifier(int tfpRegion, int tfpChannel) const;
553  // configure TPSelector
554  void configureTPSelector();
555 
556  // MagneticField
558  // TrackerGeometry
560  // TrackerTopology
562  // CablingMap
564  // TTStub algorithm used to create bend encodings
566  // pSet of ttStub algorithm, used to identify bend window sizes of sensor modules
568  // pSet of geometry configuration, used to identify if geometry is supported
570  // pset id of current TTStubAlgorithm
572  // pset id of current geometry configuration
574 
575  // DD4hep
577 
578  // Parameter to check if configured Tracker Geometry is supported
580  // label of ESProducer/ESSource
582  // compared path
584  // compared filen ame
586  // list of supported versions
587  std::vector<std::string> sgXMLVersions_;
588 
589  // Parameter to check if Process History is consistent with process configuration
591  // label of compared GeometryConfiguration
593  // label of compared TTStubAlgorithm
595 
596  // Common track finding parameter
598  // half lumi region size in cm
599  double beamWindowZ_;
600  // required number of layers a found track has to have in common with a TP to consider it matched to it
602  // required number of ps layers a found track has to have in common with a TP to consider it matched to it
604  // allowed number of stubs a found track may have not in common with its matched TP
606  // allowed number of PS stubs a found track may have not in common with its matched TP
608  // scattering term used to add stub phi uncertainty depending on assumed track inv2R
609  double scattering_;
610 
611  // TMTT specific parameter
613  // cut on stub and TP pt, also defines region overlap shape in GeV
614  double minPt_;
615  // cut on stub eta
616  double maxEta_;
617  // critical radius defining region overlap shape in cm
619  // number of detector layers a reconstructbale particle may cross
621  // number of bits used for stub r - ChosenRofPhi
623  // number of bits used for stub phi w.r.t. phi sector centre
625  // number of bits used for stub z
627 
628  // Hybrid specific parameter
630  // cut on stub pt in GeV, also defines region overlap shape
632  // cut on andidate pt in GeV
634  // cut on stub eta
636  // critical radius defining region overlap shape in cm
638  // max number of detector layer connected to one DTC
640  // number of outer PS rings for disk 1, 2, 3, 4, 5
641  std::vector<int> hybridNumRingsPS_;
642  // number of bits used for stub r w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S)
643  std::vector<int> hybridWidthsR_;
644  // number of bits used for stub z w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S)
645  std::vector<int> hybridWidthsZ_;
646  // number of bits used for stub phi w.r.t. region centre for module types (barrelPS, barrel2S, diskPS, disk2S)
647  std::vector<int> hybridWidthsPhi_;
648  // number of bits used for stub row number for module types (barrelPS, barrel2S, diskPS, disk2S)
649  std::vector<int> hybridWidthsAlpha_;
650  // number of bits used for stub bend number for module types (barrelPS, barrel2S, diskPS, disk2S)
651  std::vector<int> hybridWidthsBend_;
652  // range in stub r which needs to be covered for module types (barrelPS, barrel2S, diskPS, disk2S)
653  std::vector<double> hybridRangesR_;
654  // range in stub z which needs to be covered for module types (barrelPS, barrel2S, diskPS, disk2S)
655  std::vector<double> hybridRangesZ_;
656  // range in stub row which needs to be covered for module types (barrelPS, barrel2S, diskPS, disk2S)
657  std::vector<double> hybridRangesAlpha_;
658  // mean radius of outer tracker barrel layer
659  std::vector<double> hybridLayerRs_;
660  // mean z of outer tracker endcap disks
661  std::vector<double> hybridDiskZs_;
662  // center radius of outer tracker endcap 2S diks strips
663  std::vector<edm::ParameterSet> hybridDisk2SRsSet_;
664  // range of stub phi in rad
666  // smallest stub radius after TrackBuilder in cm
668  // number of bits used for stub r w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S) after TrackBuilder
669  std::vector<int> tbWidthsR_;
670 
671  // Parameter specifying TrackingParticle used for Efficiency measurements
673  // pt cut
674  double tpMinPt_;
675  // eta cut
676  double tpMaxEta_;
677  // cut on vertex pos r in cm
678  double tpMaxVertR_;
679  // cut on vertex pos z in cm
680  double tpMaxVertZ_;
681  // cut on impact parameter in cm
682  double tpMaxD0_;
683  // required number of associated layers to a TP to consider it reconstruct-able
685  // required number of associated ps layers to a TP to consider it reconstruct-able
687  // max number of unassociated 2S stubs allowed to still associate TTTrack with TP
689  // max number of unassociated PS stubs allowed to still associate TTTrack with TP
691 
692  // Firmware specific Parameter
694  // width of the 'A' port of an DSP slice
696  // width of the 'A' port of an DSP slice using biased twos complement
698  // width of the 'A' port of an DSP slice using biased binary
700  // width of the 'B' port of an DSP slice
702  // width of the 'B' port of an DSP slice using biased twos complement
704  // width of the 'B' port of an DSP slice using biased binary
706  // width of the 'C' port of an DSP slice
708  // width of the 'C' port of an DSP slice using biased twos complement
710  // width of the 'C' port of an DSP slice using biased binary
712  // smallest address width of an BRAM36 configured as broadest simple dual port memory
714  // smallest address width of an BRAM18 configured as broadest simple dual port memory
716  // needed gap between events of emp-infrastructure firmware
718  // LHC bunch crossing rate in MHz
719  double freqLHC_;
720  // processing Frequency of DTC & TFP in MHz, has to be integer multiple of FreqLHC
721  double freqBE_;
722  // number of events collected in front-end
723  int tmpFE_;
724  // time multiplexed period of track finding processor
725  int tmpTFP_;
726  // speed of light used in FW in e8 m/s
728  // BField used in fw in T
729  double bField_;
730  // accepted BField difference between FW to EventSetup in T
731  double bFieldError_;
732  // outer radius of outer tracker in cm
733  double outerRadius_;
734  // inner radius of outer tracker in cm
735  double innerRadius_;
736  // half length of outer tracker in cm
737  double halfLength_;
738  // max strip/pixel pitch of outer tracker sensors in cm
739  double maxPitch_;
740  // max strip/pixel length of outer tracker sensors in cm
741  double maxLength_;
742  // approximated tilt correction parameter used to project r to z uncertainty
744  // approximated tilt correction parameter used to project r to z uncertainty
746  // In tilted barrel, constant assumed stub radial uncertainty * sqrt(12) in cm
748  // minimum representable stub phi uncertainty
749  double mindPhi_;
750  // maximum representable stub phi uncertainty
751  double maxdPhi_;
752  // minimum representable stub z uncertainty
753  double mindZ_;
754  // maximum representable stub z uncertainty
755  double maxdZ_;
756  // strip pitch of outer tracker sensors in cm
757  double pitch2S_;
758  // pixel pitch of outer tracker sensors in cm
759  double pitchPS_;
760  // strip length of outer tracker sensors in cm
761  double length2S_;
762  // pixel length of outer tracker sensors in cm
763  double lengthPS_;
764  // barrel layer limit |z| value to partition into tilted and untilted region
765  std::vector<double> tiltedLayerLimitsZ_;
766  // endcap disk limit r value to partition into PS and 2S region
767  std::vector<double> psDiskLimitsR_;
768 
769  // Parameter specifying front-end
771  // number of bits used for internal stub bend
773  // number of bits used for internal stub column
775  // number of bits used for internal stub row
777  // precision of internal stub bend in pitch units
778  double baseBend_;
779  // precision of internal stub column in pitch units
780  double baseCol_;
781  // precision of internal stub row in pitch units
782  double baseRow_;
783  // precision of window sizes in pitch units
785  // used stub bend uncertainty in pitch units
786  double bendCut_;
787 
788  // Parameter specifying DTC
790  // number of phi slices the outer tracker readout is organized in
792  // number of regions a reconstructable particles may cross
794  // number of Slots in used ATCA crates
796  // number of DTC boards used to readout a detector region, likely constructed to be an integerer multiple of NumSlots_
798  // max number of sensor modules connected to one DTC board
800  // number of systiloic arrays in stub router firmware
802  // fifo depth in stub router firmware
804  // number of row bits used in look up table
806  // number of bits used for stub inv2R. lut addr is col + bend = 11 => 1 BRAM -> 18 bits for min and max val -> 9
808  // tk layout det id minus DetSetVec->detId
810  // tk layout det id minus TrackerTopology lower det id
812  // offset in layer ids between barrel layer and endcap disks
814  // offset between 0 and smallest layer id (barrel layer 1)
816  //
818  // total number of output channel
820  // slot number changing from PS to 2S (default: 6)
822  // slot number changing from 10 gbps to 5gbps (default: 3)
824 
825  // Parameter specifying TFP
827  // number of bist used for phi0
829  // umber of bist used for qOverPt
831  // number of bist used for cot(theta)
833  // number of bist used for z0
835  // number of output links
837 
838  // Parameter specifying GeometricProcessor
840  // number of phi sectors used in hough transform
842  // number of eta sectors used in hough transform
844  // # critical radius defining r-z sector shape in cm
845  double chosenRofZ_;
846  // range of stub z residual w.r.t. sector center which needs to be covered
848  // fifo depth in stub router firmware
850  // defining r-z sector shape
851  std::vector<double> boundariesEta_;
852 
853  // Parameter specifying HoughTransform
855  // number of inv2R bins used in hough transform
857  // number of phiT bins used in hough transform
859  // required number of stub layers to form a candidate
861  // internal fifo depth
863 
864  // Parameter specifying MiniHoughTransform
866  // number of finer inv2R bins inside HT bin
868  // number of finer phiT bins inside HT bin
870  // number of dynamic load balancing steps
872  // number of units per dynamic load balancing step
874  // number of inputs per dynamic load balancing unit
876  // required number of stub layers to form a candidate
878 
879  // Parameter specifying ZHoughTransform
881  //number of used zT bins
883  // number of used cot bins
885  // number of stages
887  // required number of stub layers to form a candidate
889  // max number of output tracks per node
891  // cut on number of stub per layer for input candidates
893 
894  // Parameter specifying KalmanFilter Input Formatter
896  // power of 2 multiplier of stub phi residual range
898  // power of 2 multiplier of stub z residual range
900 
901  // Parameter specifying KalmanFilter
903  // number of kf worker
905  // required number of stub layers to form a track
907  // maximum number of layers added to a track
909  // search window of each track parameter in initial uncertainties
911  //
913  //
915  //
917  //
919 
920  // Parameter specifying KalmanFilter Output Formatter
922  // Conversion factor between dphi^2/weight and chi2rphi
924  // Conversion factor between dz^2/weight and chi2rz
926  // Fraction of total dphi and dz ranges to calculate v0 and v1 LUT for
928  // Constant used in FW to prevent 32-bit int overflow
930  // Constant used in FW to prevent 32-bit int overflow
932 
933  // Parameter specifying DuplicateRemoval
935  // internal memory depth
937 
938  //
939  // Derived constants
940  //
941 
942  // true if tracker geometry and magnetic field supported
944  // selector to partly select TPs for efficiency measurements
946  // selector to partly select TPs for fake and duplicate rate measurements
948 
949  // TTStubAlgorithm
950 
951  // number of tilted layer rings per barrel layer
952  std::vector<double> numTiltedLayerRings_;
953  // stub bend window sizes for flat barrel layer in full pitch units
954  std::vector<double> windowSizeBarrelLayers_;
955  // stub bend window sizes for tilted barrel layer rings in full pitch units
956  std::vector<std::vector<double>> windowSizeTiltedLayerRings_;
957  // stub bend window sizes for endcap disks rings in full pitch units
958  std::vector<std::vector<double>> windowSizeEndcapDisksRings_;
959  // maximum stub bend window in half strip units
961 
962  // common Track finding
963 
964  // number of frames betwen 2 resets of 18 BX packets
966  // number of valid frames per 18 BX packet
968  // number of valid frames per 8 BX packet
970  // converts GeV in 1/cm
971  double invPtToDphi_;
972  // region size in rad
973  double baseRegion_;
974 
975  // TMTT
976 
977  // number of bits used for stub layer id
979  // internal stub r precision in cm
980  double tmttBaseR_;
981  // internal stub z precision in cm
982  double tmttBaseZ_;
983  // internal stub phi precision in rad
984  double tmttBasePhi_;
985  // internal stub inv2R precision in 1/cm
987  // internal stub phiT precision in rad
989  // number of padded 0s in output data format
991  // number of bits used for stub layer id
993  // number of bits used for stub eta sector
995  // number of bits used for stub inv2R
997  // number of padded 0s in output data format
999 
1000  // hybrid
1001 
1002  // number of bits used for stub layer id
1004  // precision or r in cm for (barrelPS, barrel2S, diskPS, disk2S)
1005  std::vector<double> hybridBasesR_;
1006  // precision or phi in rad for (barrelPS, barrel2S, diskPS, disk2S)
1007  std::vector<double> hybridBasesPhi_;
1008  // precision or z in cm for (barrelPS, barrel2S, diskPS, disk2S)
1009  std::vector<double> hybridBasesZ_;
1010  // precision or alpha in pitch units for (barrelPS, barrel2S, diskPS, disk2S)
1011  std::vector<double> hybridBasesAlpha_;
1012  // stub r precision in cm
1014  // stub z precision in cm
1016  // stub phi precision in rad
1018  // stub cut on cot(theta) = tan(lambda) = sinh(eta)
1020  // number of padded 0s in output data format for (barrelPS, barrel2S, diskPS, disk2S)
1021  std::vector<int> hybridNumsUnusedBits_;
1022  // center radius of outer tracker endcap 2S diks strips
1023  std::vector<std::vector<double>> disk2SRs_;
1024 
1025  // DTC
1026 
1027  // total number of outer tracker DTCs
1029  // number of DTCs connected to one TFP (48)
1031  // total number of max possible outer tracker modules (72 per DTC)
1033  // max number of moudles connected to a systiloic array in stub router firmware
1035  // number of merged rows for look up
1037  // number of bits used for phi of row slope
1039  // internal stub inv2R precision in 1 /cm
1041  // phi of row slope precision in rad / pitch unit
1042  double dtcBaseM_;
1043  // outer index = module window size, inner index = encoded bend, inner value = decoded bend, for ps modules
1044  std::vector<std::vector<double>> encodingsBendPS_;
1045  // outer index = module window size, inner index = encoded bend, inner value = decoded bend, for 2s modules
1046  std::vector<std::vector<double>> encodingsBend2S_;
1047  // collection of outer tracker sensor modules
1048  std::vector<SensorModule> sensorModules_;
1049  // collection of outer tracker sensor modules organised in DTCS [0-215][0-71]
1050  std::vector<std::vector<SensorModule*>> dtcModules_;
1051  // hepler to convert Stubs quickly
1052  std::unordered_map<DetId, SensorModule*> detIdToSensorModule_;
1053 
1054  // GP
1055 
1056  // phi sector size in rad
1057  double baseSector_;
1058  // cut on zT
1059  double maxZT_;
1060  // cut on stub cot theta
1061  double maxCot_;
1062  // total number of sectors
1064  // number of unused bits in GP output format
1066  // cot(theta) of eta sectors
1067  std::vector<double> sectorCots_;
1068 
1069  // MHT
1070 
1071  // number of mht cells
1073 
1074  // ZHT
1075 
1076  // number of zht cells
1078 
1079  // KF
1080 
1082  };
1083 
1084 } // namespace tt
1085 
1087 
1088 #endif
Class for "official" algorithm to be used in TTStubBuilder.
const std::vector< SensorModule * > & dtcModules(int dtcId) const
Definition: Setup.h:393
int drDepthMemory() const
Definition: Setup.h:522
int zhtNumCells_
Definition: Setup.h:1077
double baseWindowSize() const
Definition: Setup.h:325
double hybridDiskZ(int layerId) const
Definition: Setup.h:298
int dtcNumRoutingBlocks_
Definition: Setup.h:801
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
int kfShiftInitialC00_
Definition: Setup.h:912
int offsetLayerDisks_
Definition: Setup.h:813
void checkTKLayoutId(int tkLayoutId) const
Definition: Setup.cc:846
int tpMaxBadStubs2S() const
Definition: Setup.h:200
double neededRangeChiZ() const
Definition: Setup.h:434
edm::ParameterSet pSetGP_
Definition: Setup.h:839
std::string phTTStubAlgorithm_
Definition: Setup.h:594
double baseRow_
Definition: Setup.h:782
double dZ(const TTStubRef &ttStubRef, double cot) const
Definition: Setup.cc:600
int tmttWidthInv2R_
Definition: Setup.h:996
int kfoutchi2rphiConv_
Definition: Setup.h:923
int numFramesIO_
Definition: Setup.h:967
int weightBinFraction_
Definition: Setup.h:927
edm::ParameterSetID pSetIdGeometryConfiguration_
Definition: Setup.h:573
int numLayers_
Definition: Setup.h:620
int dtcWidthInv2R_
Definition: Setup.h:807
int numBarrelLayer_
Definition: Setup.h:817
int tmttWidthLayer_
Definition: Setup.h:992
double tpMaxEta_
Definition: Setup.h:676
void calculateConstants()
Definition: Setup.cc:658
edm::ParameterSet pSetSG_
Definition: Setup.h:579
double hybridLayerR(int layerId) const
Definition: Setup.h:296
int tpMinLayers_
Definition: Setup.h:684
TrackingParticleSelector tpSelector_
Definition: Setup.h:945
int unMatchedStubs_
Definition: Setup.h:605
double maxZT_
Definition: Setup.h:1059
int zhtMaxTracks_
Definition: Setup.h:890
double lengthPS_
Definition: Setup.h:763
int tmttWidthPhi_
Definition: Setup.h:624
double hybridRangePhi() const
Definition: Setup.h:300
double hybridMaxCot() const
Definition: Setup.h:292
int tmttWidthSectorEta() const
Definition: Setup.h:225
double windowSizeTiltedLayerRing(int layerId, int ring) const
Definition: Setup.h:317
int tmttWidthZ() const
Definition: Setup.h:221
int numSectorsPhi() const
Definition: Setup.h:413
Base class for any algorithm to be used in TTStubBuilder.
double length2S() const
Definition: Setup.h:173
edm::ParameterSet pSetDR_
Definition: Setup.h:934
int widthDSPbb() const
Definition: Setup.h:139
~Setup()
Definition: Setup.h:57
int dtcDepthMemory_
Definition: Setup.h:803
int numFramesFE() const
Definition: Setup.h:159
double hybridMinPtCand_
Definition: Setup.h:633
double halfLength_
Definition: Setup.h:737
int kfoutchi2rzConv() const
Definition: Setup.h:511
double chosenRofZ() const
Definition: Setup.h:417
int hybridWidthLayerId() const
Definition: Setup.h:280
double hybridMaxEta_
Definition: Setup.h:635
int numFrames_
Definition: Setup.h:965
std::vector< double > tiltedLayerLimitsZ_
Definition: Setup.h:765
Bit vector used by Track Trigger emulators. Mainly used to convert integers into arbitrary (within ma...
Definition: TTBV.h:20
std::pair< TTStubRef, Frame > FrameStub
Definition: TTTypes.h:60
std::vector< double > boundariesEta_
Definition: Setup.h:851
double halfLength() const
Definition: Setup.h:245
double freqLHC_
Definition: Setup.h:719
int offsetDetIdTP() const
Definition: Setup.h:369
std::string phGeometryConfiguration_
Definition: Setup.h:592
int widthDSPab() const
Definition: Setup.h:133
int tmttWidthInv2R() const
Definition: Setup.h:227
int kfShiftInitialC33_
Definition: Setup.h:918
std::vector< double > hybridBasesZ_
Definition: Setup.h:1009
int zhtNumStages() const
Definition: Setup.h:471
Class to process and provide run-time constants used by Track Trigger emulators.
Definition: Setup.h:44
double tmttBasePhi() const
Definition: Setup.h:233
double windowSizeEndcapDisksRing(int layerId, int ring) const
Definition: Setup.h:321
double v1(const TTStubRef &ttStubRef, double cot) const
Definition: Setup.cc:629
int tfpNumChannel() const
Definition: Setup.h:408
double tpMaxEta() const
Definition: Setup.h:188
int dtcDepthMemory() const
Definition: Setup.h:361
int widthDSPau_
Definition: Setup.h:699
edm::ParameterSet pSetHybrid_
Definition: Setup.h:629
int offsetLayerId_
Definition: Setup.h:815
int tfpWidthZ0_
Definition: Setup.h:834
edm::ParameterSet pSetTMTT_
Definition: Setup.h:612
std::string sgXMLPath_
Definition: Setup.h:583
edm::ParameterSet pSetTP_
Definition: Setup.h:672
int tbWidthR(SensorModule::Type type) const
Definition: Setup.h:308
double dtcBaseM() const
Definition: Setup.h:391
int tmttWidthSectorEta_
Definition: Setup.h:994
double boundarieEta(int eta) const
Definition: Setup.h:421
int dtcNumUnusedBits_
Definition: Setup.h:990
int widthAddrBRAM36() const
Definition: Setup.h:149
int htNumBinsInv2R() const
Definition: Setup.h:439
double hybridBaseAlpha(SensorModule::Type type) const
Definition: Setup.h:288
int widthBend_
Definition: Setup.h:772
double maxZT() const
Definition: Setup.h:426
int kfinShiftRangePhi_
Definition: Setup.h:897
double mindZ_
Definition: Setup.h:753
const TrackerDetToDTCELinkCablingMap * cablingMap_
Definition: Setup.h:563
int numFrames() const
Definition: Setup.h:153
int numDTCs_
Definition: Setup.h:1028
edm::ParameterSet pSetDTC_
Definition: Setup.h:789
int widthDSPbu() const
Definition: Setup.h:141
int widthCol_
Definition: Setup.h:774
int kfWidthLayerCount_
Definition: Setup.h:1081
int numSectors_
Definition: Setup.h:1063
int tpMaxBadStubs2S_
Definition: Setup.h:688
int slotLimit10gbps_
Definition: Setup.h:823
double chosenRofPhi() const
Definition: Setup.h:213
int mhtNumBinsPhiT_
Definition: Setup.h:869
void checkDTCId(int dtcId) const
Definition: Setup.cc:835
double dtcBaseM_
Definition: Setup.h:1042
int kfinShiftRangeZ() const
Definition: Setup.h:486
double bendCut_
Definition: Setup.h:786
double hybridBaseZ_
Definition: Setup.h:1013
int tmttWidthZ_
Definition: Setup.h:626
std::vector< double > hybridBasesAlpha_
Definition: Setup.h:1011
int htMinLayers_
Definition: Setup.h:860
std::vector< double > hybridRangesAlpha_
Definition: Setup.h:657
double lengthPS() const
Definition: Setup.h:175
int mhtNumCells_
Definition: Setup.h:1072
int numDTCsPerRegion() const
Definition: Setup.h:355
double kfRangeFactor_
Definition: Setup.h:910
int tkLayoutId(int dtcId) const
Definition: Setup.cc:304
int zhtNumBinsZT() const
Definition: Setup.h:467
TrackingParticleSelector tpSelectorLoose_
Definition: Setup.h:947
int zhtMinLayers() const
Definition: Setup.h:473
double maxdPhi() const
Definition: Setup.h:161
edm::ParameterSet pSetKFOut_
Definition: Setup.h:921
int hybridWidthZ(SensorModule::Type type) const
Definition: Setup.h:272
TTStubAlgorithm_official< Ref_Phase2TrackerDigi_ > StubAlgorithmOfficial
Definition: Setup.h:35
int tfpWidthInv2R_
Definition: Setup.h:830
double windowSizeBarrelLayer(int layerId) const
Definition: Setup.h:315
int htNumBinsPhiT_
Definition: Setup.h:858
void checkGeometry()
Definition: Setup.cc:394
int tpMaxBadStubsPS() const
Definition: Setup.h:202
SensorModule::Type type(const TTStubRef &ttStubRef) const
Definition: Setup.cc:329
int numModules() const
Definition: Setup.h:381
double tmttBasePhiT_
Definition: Setup.h:988
int numModules_
Definition: Setup.h:1032
int widthAddrBRAM36_
Definition: Setup.h:713
int mhtNumDLBs_
Definition: Setup.h:871
int dtcNumMergedRows() const
Definition: Setup.h:385
bool useForAlgEff(const TrackingParticle &tp) const
Definition: Setup.cc:646
int offsetDetIdDSV() const
Definition: Setup.h:367
int zhtMinLayers_
Definition: Setup.h:888
int numFramesInfra() const
Definition: Setup.h:155
double maxLength() const
Definition: Setup.h:247
edm::ParameterSetID pSetIdTTStubAlgorithm_
Definition: Setup.h:571
int hybridWidthPhi(SensorModule::Type type) const
Definition: Setup.h:274
std::vector< int > hybridWidthsR_
Definition: Setup.h:643
double baseSector_
Definition: Setup.h:1057
int kfMinLayers() const
Definition: Setup.h:493
double hybridBaseR(SensorModule::Type type) const
Definition: Setup.h:282
int htNumBinsInv2R_
Definition: Setup.h:856
void produceSensorModules()
Definition: Setup.cc:449
double bField_
Definition: Setup.h:729
const std::vector< double > & encodingBend(int windowSize, bool psModule) const
Definition: Setup.cc:377
int kfNumWorker_
Definition: Setup.h:904
double dPhi(const TTStubRef &ttStubRef, double inv2R) const
Definition: Setup.cc:580
double hybridChosenRofPhi_
Definition: Setup.h:637
double tpMinPt() const
Definition: Setup.h:186
int kfMaxLayers_
Definition: Setup.h:908
double tiltApproxIntercept_
Definition: Setup.h:745
std::vector< double > hybridRangesR_
Definition: Setup.h:653
std::string dumpDiff(const edm::ParameterSet &pSetHistory, const edm::ParameterSet &pSetProcess) const
Definition: Setup.cc:283
int widthDSPbu_
Definition: Setup.h:705
double tiltedLayerLimitZ(int layer) const
Definition: Setup.h:165
std::vector< int > tbWidthsR_
Definition: Setup.h:669
double tmttBaseR_
Definition: Setup.h:980
int tpMinLayersPS() const
Definition: Setup.h:198
std::vector< double > hybridDiskZs_
Definition: Setup.h:661
double pitch2S() const
Definition: Setup.h:169
std::unordered_map< DetId, SensorModule * > detIdToSensorModule_
Definition: Setup.h:1052
double v0(const TTStubRef &ttStubRef, double inv2R) const
Definition: Setup.cc:617
int kfMaxLayers() const
Definition: Setup.h:495
double maxdZ() const
Definition: Setup.h:163
int widthRow() const
Definition: Setup.h:336
int htDepthMemory_
Definition: Setup.h:862
double pitchPS() const
Definition: Setup.h:171
int mhtNumDLBNodes() const
Definition: Setup.h:456
double neededRangeChiZ_
Definition: Setup.h:847
#define EVENTSETUP_DATA_DEFAULT_RECORD(_data_, _record_)
std::vector< double > hybridLayerRs_
Definition: Setup.h:659
const TrackerGeometry * trackerGeometry_
Definition: Setup.h:559
double tpMaxVertZ_
Definition: Setup.h:680
std::string sgXMLLabel_
Definition: Setup.h:581
std::vector< double > hybridBasesPhi_
Definition: Setup.h:1007
double dtcBaseInv2R() const
Definition: Setup.h:389
int numSectorsEta() const
Definition: Setup.h:415
double hybridMinPtCand() const
Definition: Setup.h:262
int numSectors() const
Definition: Setup.h:430
Definition: TTTypes.h:54
int kfShiftInitialC00() const
Definition: Setup.h:499
double beamWindowZ() const
Definition: Setup.h:180
double tpMaxVertR() const
Definition: Setup.h:190
double baseBend_
Definition: Setup.h:778
edm::ParameterSet pSetMHT_
Definition: Setup.h:865
std::vector< std::vector< double > > encodingsBendPS_
Definition: Setup.h:1044
int numFramesInfra_
Definition: Setup.h:717
double tiltUncertaintyR() const
Definition: Setup.h:253
int kfoutchi2rphiConv() const
Definition: Setup.h:509
std::vector< double > numTiltedLayerRings_
Definition: Setup.h:952
int zhtNumBinsCot_
Definition: Setup.h:884
int tpMaxBadStubsPS_
Definition: Setup.h:690
GlobalPoint stubPos(const TTStubRef &ttStubRef) const
Definition: Setup.cc:824
int kfNumWorker() const
Definition: Setup.h:491
int slot(int dtcId) const
Definition: Setup.cc:359
std::vector< int > hybridNumRingsPS_
Definition: Setup.h:641
int matchedLayers_
Definition: Setup.h:601
std::vector< std::vector< double > > windowSizeTiltedLayerRings_
Definition: Setup.h:956
double baseSector() const
Definition: Setup.h:424
std::vector< double > hybridRangesZ_
Definition: Setup.h:655
double maxEta() const
Definition: Setup.h:211
int kfinShiftRangePhi() const
Definition: Setup.h:484
double baseRegion_
Definition: Setup.h:973
int dtcNumStreams_
Definition: Setup.h:819
int widthDSPab_
Definition: Setup.h:697
const std::vector< SensorModule > & sensorModules() const
Definition: Setup.h:126
int zhtNumStages_
Definition: Setup.h:886
std::vector< std::string > sgXMLVersions_
Definition: Setup.h:587
int dtcWidthM_
Definition: Setup.h:1038
int tmttNumUnusedBits() const
Definition: Setup.h:239
double bFieldError_
Definition: Setup.h:731
int widthDSPb_
Definition: Setup.h:701
int htDepthMemory() const
Definition: Setup.h:445
int tfpWidthPhi0_
Definition: Setup.h:828
double baseCol_
Definition: Setup.h:780
double hybridMinPtStub() const
Definition: Setup.h:260
int mhtMinLayers() const
Definition: Setup.h:460
int widthDSPbb_
Definition: Setup.h:703
double maxPitch_
Definition: Setup.h:739
void encodeBend(std::vector< std::vector< double >> &, bool) const
Definition: Setup.cc:439
int dtcWidthInv2R() const
Definition: Setup.h:365
std::vector< double > hybridBasesR_
Definition: Setup.h:1005
int layerId(const TTStubRef &ttStubRef) const
Definition: Setup.cc:511
int widthDSPcb_
Definition: Setup.h:709
double tiltUncertaintyR_
Definition: Setup.h:747
double scattering_
Definition: Setup.h:609
std::vector< int > hybridNumsUnusedBits_
Definition: Setup.h:1021
double beamWindowZ_
Definition: Setup.h:599
int zhtMaxTracks() const
Definition: Setup.h:475
edm::ParameterSet pSetFE_
Definition: Setup.h:770
bool reconstructable(const std::vector< TTStubRef > &ttStubRefs) const
Definition: Setup.cc:638
int tmttWidthR() const
Definition: Setup.h:217
int dtcNumModulesPerRoutingBlock() const
Definition: Setup.h:383
double maxdPhi_
Definition: Setup.h:751
bool configurationSupported() const
Definition: Setup.h:60
int mhtNumDLBs() const
Definition: Setup.h:454
int hybridNumUnusedBits(SensorModule::Type type) const
Definition: Setup.h:290
double stubR(const TTBV &hw, const TTStubRef &ttStubRef) const
Definition: Setup.cc:758
std::vector< std::vector< double > > encodingsBend2S_
Definition: Setup.h:1046
int dtcWidthRowLUT() const
Definition: Setup.h:363
int numATCASlots_
Definition: Setup.h:795
edm::ParameterSet pSetKFin_
Definition: Setup.h:895
std::vector< double > boundarieEta() const
Definition: Setup.h:422
int hybridWidthAlpha(SensorModule::Type type) const
Definition: Setup.h:276
int offsetDetIdDSV_
Definition: Setup.h:809
std::vector< SensorModule > sensorModules_
Definition: Setup.h:1048
double length2S_
Definition: Setup.h:761
double tpMaxD0() const
Definition: Setup.h:194
int widthDSPc_
Definition: Setup.h:707
int htMinLayers() const
Definition: Setup.h:443
std::vector< double > psDiskLimitsR_
Definition: Setup.h:767
bool fromDD4hep_
Definition: Setup.h:576
double tmttBaseZ_
Definition: Setup.h:982
double pitchPS_
Definition: Setup.h:759
int gpNumUnusedBits_
Definition: Setup.h:1065
double chosenRofZ_
Definition: Setup.h:845
double tiltApproxSlope() const
Definition: Setup.h:249
int kfoutchi2rzConv_
Definition: Setup.h:925
double hybridRangeR() const
Definition: Setup.h:302
int drDepthMemory_
Definition: Setup.h:936
std::vector< double > sectorCots_
Definition: Setup.h:1067
bool gbps10(int dtcId) const
Definition: Setup.cc:345
void checkTFPIdentifier(int tfpRegion, int tfpChannel) const
Definition: Setup.cc:857
TTDTC ttDTC() const
Definition: Setup.h:90
int numATCASlots() const
Definition: Setup.h:353
int numFramesFE_
Definition: Setup.h:969
int kfShiftInitialC22_
Definition: Setup.h:916
const edm::ParameterSet * pSetGC_
Definition: Setup.h:569
int slotLimitPS_
Definition: Setup.h:821
void consumeStubAlgorithm()
Definition: Setup.cc:420
edm::ParameterSet pSetTF_
Definition: Setup.h:597
double tpMaxVertZ() const
Definition: Setup.h:192
double maxEta_
Definition: Setup.h:616
double bField() const
Definition: Setup.h:204
int widthDSPa() const
Definition: Setup.h:131
double maxCot_
Definition: Setup.h:1061
int weightBinFraction() const
Definition: Setup.h:513
int tmpFE_
Definition: Setup.h:723
double outerRadius() const
Definition: Setup.h:241
int tmttWidthR_
Definition: Setup.h:622
int numLayers() const
Definition: Setup.h:215
bool useForReconstructable(const TrackingParticle &tp) const
Definition: Setup.h:96
double maxLength_
Definition: Setup.h:741
double hybridChosenRofPhi() const
Definition: Setup.h:266
int tfpWidthCot() const
Definition: Setup.h:404
int dtcNumMergedRows_
Definition: Setup.h:1036
int numDTCsPerTFP() const
Definition: Setup.h:379
int hybridNumLayers_
Definition: Setup.h:639
int numOverlappingRegions_
Definition: Setup.h:793
std::vector< std::vector< double > > windowSizeEndcapDisksRings_
Definition: Setup.h:958
int dtcWidthM() const
Definition: Setup.h:387
int offsetLayerDisks() const
Definition: Setup.h:371
int offsetLayerId() const
Definition: Setup.h:373
std::vector< int > hybridWidthsAlpha_
Definition: Setup.h:649
int widthDSPcu_
Definition: Setup.h:711
double baseCol() const
Definition: Setup.h:340
double speedOfLight_
Definition: Setup.h:727
int mhtNumBinsInv2R() const
Definition: Setup.h:450
int tpMinLayersPS_
Definition: Setup.h:686
double maxCot() const
Definition: Setup.h:428
void checkHistory(const edm::ProcessHistory &processHistory) const
Definition: Setup.cc:242
double maxdZ_
Definition: Setup.h:755
double innerRadius() const
Definition: Setup.h:243
double hybridMaxEta() const
Definition: Setup.h:264
Definition: DetId.h:17
edm::ParameterSet pSetKF_
Definition: Setup.h:902
double hybridBasePhi_
Definition: Setup.h:1017
int dphiTruncation_
Definition: Setup.h:931
int widthDSPa_
Definition: Setup.h:695
double tmttBaseInv2R_
Definition: Setup.h:986
int numModulesPerDTC() const
Definition: Setup.h:357
double outerRadius_
Definition: Setup.h:733
int widthLayerId_
Definition: Setup.h:978
int widthAddrBRAM18() const
Definition: Setup.h:151
double innerRadius_
Definition: Setup.h:735
bool psModule(int dtcId) const
Definition: Setup.cc:322
double tiltApproxSlope_
Definition: Setup.h:743
std::vector< edm::ParameterSet > hybridDisk2SRsSet_
Definition: Setup.h:663
int hybridNumLayers() const
Definition: Setup.h:268
edm::ParameterSet pSetFW_
Definition: Setup.h:693
const StubAlgorithmOfficial * stubAlgorithm() const
Definition: Setup.h:525
int widthAddrBRAM18_
Definition: Setup.h:715
std::vector< int > hybridWidthsZ_
Definition: Setup.h:645
double tbInnerRadius() const
Definition: Setup.h:304
int tpMinLayers() const
Definition: Setup.h:196
double dtcBaseInv2R_
Definition: Setup.h:1040
int kfShiftInitialC11() const
Definition: Setup.h:501
Class to store hardware like structured TTStub Collection used by Track Trigger emulators.
Definition: TTDTC.h:17
double pitch2S_
Definition: Setup.h:757
std::vector< double > windowSizeBarrelLayers_
Definition: Setup.h:954
int numDTCsPerTFP_
Definition: Setup.h:1030
int widthCol() const
Definition: Setup.h:334
int dtcWidthRowLUT_
Definition: Setup.h:805
int zhtNumBinsCot() const
Definition: Setup.h:469
edm::ParameterSet pSetHT_
Definition: Setup.h:854
double tmttBaseR() const
Definition: Setup.h:229
edm::ParameterSet pSetTFP_
Definition: Setup.h:826
double freqBE_
Definition: Setup.h:721
double tmttBaseZ() const
Definition: Setup.h:231
int widthDSPc() const
Definition: Setup.h:143
int numDTCs() const
Definition: Setup.h:377
int kfinShiftRangeZ_
Definition: Setup.h:899
int dtcNumModulesPerRoutingBlock_
Definition: Setup.h:1034
int zhtMaxStubsPerLayer() const
Definition: Setup.h:477
void checkMagneticField()
Definition: Setup.cc:383
double minPt_
Definition: Setup.h:614
int mhtNumBinsInv2R_
Definition: Setup.h:867
int mhtNumDLBNodes_
Definition: Setup.h:873
double numTiltedLayerRing(int layerId) const
Definition: Setup.h:313
int mhtMinLayers_
Definition: Setup.h:877
double scattering() const
Definition: Setup.h:255
TTBV layerMap(const std::vector< int > &ints) const
Definition: Setup.cc:540
int hybridWidthBend(SensorModule::Type type) const
Definition: Setup.h:278
int numRegions() const
Definition: Setup.h:349
int trackletLayerId(const TTStubRef &ttStubRef) const
Definition: Setup.cc:518
int dzTruncation() const
Definition: Setup.h:515
double kfRangeFactor() const
Definition: Setup.h:497
double disk2SR(int layerId, int r) const
Definition: Setup.h:306
int tmpTFP_
Definition: Setup.h:725
int htNumBinsPhiT() const
Definition: Setup.h:441
double tpMaxD0_
Definition: Setup.h:682
int widthBend() const
Definition: Setup.h:332
int tmttWidthLayer() const
Definition: Setup.h:223
double baseWindowSize_
Definition: Setup.h:784
int mhtNumDLBChannel_
Definition: Setup.h:875
int zhtMaxStubsPerLayer_
Definition: Setup.h:892
double chosenRofPhi_
Definition: Setup.h:618
int hybridWidthLayerId_
Definition: Setup.h:1003
int numSectorsPhi_
Definition: Setup.h:841
const StubAlgorithmOfficial * stubAlgorithm_
Definition: Setup.h:565
int zhtNumCells() const
Definition: Setup.h:479
int mhtNumBinsPhiT() const
Definition: Setup.h:452
double hybridBasePhi(SensorModule::Type type) const
Definition: Setup.h:284
int tfpNumChannel_
Definition: Setup.h:836
double hybridBaseZ(SensorModule::Type type) const
Definition: Setup.h:286
int tmttNumUnusedBits_
Definition: Setup.h:998
int numBarrelLayer() const
Definition: Setup.h:375
const TrackerTopology * trackerTopology() const
Definition: Setup.h:82
int tfpWidthPhi0() const
Definition: Setup.h:400
TTStubAlgorithm< Ref_Phase2TrackerDigi_ > StubAlgorithm
Definition: Setup.h:34
double invPtToDphi() const
Definition: Setup.h:182
bool side(int dtcId) const
Definition: Setup.cc:351
double deltaPhi(double lhs, double rhs=0.)
Definition: Setup.h:37
int widthDSPcb() const
Definition: Setup.h:145
int numOverlappingRegions() const
Definition: Setup.h:351
int tmttWidthPhi() const
Definition: Setup.h:219
double tiltApproxIntercept() const
Definition: Setup.h:251
double tpMaxVertR_
Definition: Setup.h:678
int numRegions_
Definition: Setup.h:791
Monte Carlo truth information used for tracking validation.
int dtcNumRoutingBlocks() const
Definition: Setup.h:359
edm::ParameterSet pSetZHT_
Definition: Setup.h:880
std::vector< std::vector< SensorModule * > > dtcModules_
Definition: Setup.h:1050
int maxWindowSize_
Definition: Setup.h:960
int tfpWidthCot_
Definition: Setup.h:832
int numModulesPerDTC_
Definition: Setup.h:799
double baseBend() const
Definition: Setup.h:338
int indexLayerId(const TTStubRef &ttStubRef) const
Definition: Setup.cc:523
double hybridRangePhi_
Definition: Setup.h:665
int zhtNumBinsZT_
Definition: Setup.h:882
int widthDSPb() const
Definition: Setup.h:137
int kfShiftInitialC22() const
Definition: Setup.h:503
double invPtToDphi_
Definition: Setup.h:971
double bendCut() const
Definition: Setup.h:344
Setup()
Definition: Setup.h:46
double baseRegion() const
Definition: Setup.h:184
int numDTCsPerRegion_
Definition: Setup.h:797
double sectorCot(int eta) const
Definition: Setup.h:432
int dtcNumStreams() const
Definition: Setup.h:395
double psDiskLimitR(int layer) const
Definition: Setup.h:167
int tfpWidthInv2R() const
Definition: Setup.h:402
int kfShiftInitialC11_
Definition: Setup.h:914
int dtcId(int tklId) const
Definition: Setup.cc:294
double mindPhi_
Definition: Setup.h:749
const MagneticField * magneticField_
Definition: Setup.h:557
int gpDepthMemory() const
Definition: Setup.h:419
double minPt() const
Definition: Setup.h:209
SensorModule * sensorModule(const DetId &detId) const
Definition: Setup.cc:365
int unMatchedStubsPS_
Definition: Setup.h:607
int numSectorsEta_
Definition: Setup.h:843
int mhtNumDLBChannel() const
Definition: Setup.h:458
double hybridBaseR_
Definition: Setup.h:1015
edm::ParameterSet pSetPH_
Definition: Setup.h:590
double hybridMinPtStub_
Definition: Setup.h:631
int widthRow_
Definition: Setup.h:776
std::vector< int > hybridWidthsPhi_
Definition: Setup.h:647
const edm::ParameterSet * pSetSA_
Definition: Setup.h:567
int kfMinLayers_
Definition: Setup.h:906
bool barrel(const TTStubRef &ttStubRef) const
Definition: Setup.cc:528
int numFramesIO() const
Definition: Setup.h:157
void configureTPSelector()
Definition: Setup.cc:492
double tpMinPt_
Definition: Setup.h:674
double tmttBaseInv2R() const
Definition: Setup.h:235
const TrackerGeometry * trackerGeometry() const
Definition: Setup.h:80
int widthDSPcu() const
Definition: Setup.h:147
int kfShiftInitialC33() const
Definition: Setup.h:505
int gpDepthMemory_
Definition: Setup.h:849
int offsetDetIdTP_
Definition: Setup.h:811
int hybridWidthR(SensorModule::Type type) const
Definition: Setup.h:270
int hybridNumRingsPS(int layerId) const
Definition: Setup.h:294
int widthDSPau() const
Definition: Setup.h:135
ROOT::VecOps::RVec< int > ints
Definition: Resolutions.cc:4
int dphiTruncation() const
Definition: Setup.h:517
double tmttBasePhi_
Definition: Setup.h:984
double baseRow() const
Definition: Setup.h:342
int dzTruncation_
Definition: Setup.h:929
int matchedLayersPS_
Definition: Setup.h:603
const TrackerTopology * trackerTopology_
Definition: Setup.h:561
double tbInnerRadius_
Definition: Setup.h:667
std::string sgXMLFile_
Definition: Setup.h:585
double hybridMaxCot_
Definition: Setup.h:1019
bool configurationSupported_
Definition: Setup.h:943
std::vector< int > hybridWidthsBend_
Definition: Setup.h:651
int tfpWidthZ0() const
Definition: Setup.h:406
int mhtNumCells() const
Definition: Setup.h:462
std::vector< std::vector< double > > disk2SRs_
Definition: Setup.h:1023
double tmttBasePhiT() const
Definition: Setup.h:237