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