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