CMS 3D CMS Logo

Setup.h
Go to the documentation of this file.
1 #ifndef L1Trigger_TrackerDTC_Setup_h
2 #define L1Trigger_TrackerDTC_Setup_h
3 
21 
26 
27 #include <vector>
28 #include <unordered_map>
29 
30 namespace trackerDTC {
31 
34  // handles 2 pi overflow
35  inline double deltaPhi(double lhs, double rhs = 0.) { return reco::deltaPhi(lhs, rhs); }
36 
42  class Setup {
43  public:
44  Setup() {}
45  Setup(const edm::ParameterSet& iConfig,
49  const TrackerDetToDTCELinkCablingMap& cablingMap,
50  const StubAlgorithmOfficial& stubAlgorithm,
51  const edm::ParameterSet& pSetStubAlgorithm,
52  const edm::ParameterSet& pSetGeometryConfiguration,
53  const edm::ParameterSetID& pSetIdTTStubAlgorithm,
54  const edm::ParameterSetID& pSetIdGeometryConfiguration);
55  ~Setup() {}
56 
57  // true if tracker geometry and magnetic field supported
59  // checks current configuration vs input sample configuration
60  void checkHistory(const edm::ProcessHistory& processHistory) const;
61  // converts tk layout id into dtc id
62  int dtcId(int tklId) const;
63  // converts dtci id into tk layout id
64  int tkLayoutId(int dtcId) const;
65  // converts TFP identifier (region[0-8], channel[0-47]) into dtcId [0-215]
66  int dtcId(int tfpRegion, int tfpChannel) const;
67  // checks if given dtcId is connected to PS or 2S sensormodules
68  bool psModule(int dtcId) const;
69  // checks if given dtcId is connected to -z (false) or +z (true)
70  bool side(int dtcId) const;
71  // ATCA slot number [0-11] of given dtcId
72  int slot(int dtcId) const;
73  // sensor module for det id
74  SensorModule* sensorModule(const DetId& detId) const;
75  // TrackerGeometry
77  // TrackerTopology
79  // returns bit accurate position of a stub from a given tfp identifier region [0-8] channel [0-47]
80  GlobalPoint stubPos(bool hybrid, const TTDTC::Frame& frame, int tfpRegion, int tfpChannel) const;
81  // returns global TTStub position
82  GlobalPoint stubPos(const TTStubRef& ttStubRef) const;
83  // empty trackerDTC EDProduct
85 
86  // Common track finding parameter
87 
88  // half lumi region size in cm
89  double beamWindowZ() const { return beamWindowZ_; }
90  // number of frames betwen 2 resets of 18 BX packets
91  int numFrames() const { return numFrames_; }
92  // number of valid frames per 18 BX packet
93  int numFramesIO() const { return numFramesIO_; }
94  // number of valid frames per 8 BX packet
95  int numFramesFE() const { return numFramesFE_; }
96  // converts GeV in 1/cm
97  double invPtToDphi() const { return invPtToDphi_; }
98  // region size in rad
99  double baseRegion() const { return baseRegion_; }
100  // TP eta cut
101  double tpMaxEta() const { return tpMaxEta_; }
102  // TP cut on vertex pos r in cm
103  double tpMaxVertR() const { return tpMaxVertR_; }
104  // TP cut on vertex pos z in cm
105  double tpMaxVertZ() const { return tpMaxVertZ_; }
106  // TP cut on impact parameter in cm
107  double tpMaxD0() const { return tpMaxD0_; }
108  // required number of associated layers to a TP to consider it reconstruct-able
109  int tpMinLayers() const { return tpMinLayers_; }
110  // required number of associated ps layers to a TP to consider it reconstruct-able
111  int tpMinLayersPS() const { return tpMinLayersPS_; }
112 
113  // TMTT specific parameter
114 
115  // cut on stub and TP pt, also defines region overlap shape in GeV
116  double minPt() const { return minPt_; }
117  // cut on stub eta
118  double maxEta() const { return maxEta_; }
119  // critical radius defining region overlap shape in cm
120  double chosenRofPhi() const { return chosenRofPhi_; }
121  // number of detector layers a reconstructbale particle may cross
122  int numLayers() const { return numLayers_; }
123  // number of bits used for stub r - ChosenRofPhi
124  int widthR() const { return widthR_; }
125  // number of bits used for stub phi w.r.t. phi sector centre
126  int widthPhi() const { return widthPhi_; }
127  // number of bits used for stub z
128  int widthZ() const { return widthZ_; }
129  // number of bits used for stub layer id
130  int widthLayer() const { return widthLayer_; }
131  // internal stub r precision in cm
132  double baseR() const { return baseR_; }
133  // internal stub z precision in cm
134  double baseZ() const { return baseZ_; }
135  // internal stub phi precision in rad
136  double basePhi() const { return basePhi_; }
137  // number of padded 0s in output data format
138  int dtcNumUnusedBits() const { return dtcNumUnusedBits_; }
139 
140  // Hybrid specific parameter
141 
142  // cut on stub and TP pt, also defines region overlap shape in GeV
143  double hybridMinPt() const { return hybridMinPt_; }
144  // cut on stub eta
145  double hybridMaxEta() const { return hybridMaxEta_; }
146  // critical radius defining region overlap shape in cm
147  double hybridChosenRofPhi() const { return hybridChosenRofPhi_; }
148  // max number of detector layer connected to one DTC
149  int hybridNumLayers() const { return hybridNumLayers_; }
150  // number of bits used for stub r w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S)
152  // number of bits used for stub z w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S)
154  // number of bits used for stub phi w.r.t. region centre for module types (barrelPS, barrel2S, diskPS, disk2S)
156  // number of bits used for stub row number for module types (barrelPS, barrel2S, diskPS, disk2S)
158  // number of bits used for stub bend number for module types (barrelPS, barrel2S, diskPS, disk2S)
160  // number of bits used for stub layer id
161  int hybridWidthLayer() const { return hybridWidthLayer_; }
162  // precision or r in cm for (barrelPS, barrel2S, diskPS, disk2S)
163  double hybridBaseR(SensorModule::Type type) const { return hybridBasesR_.at(type); }
164  // precision or phi in rad for (barrelPS, barrel2S, diskPS, disk2S)
166  // precision or z in cm for (barrelPS, barrel2S, diskPS, disk2S)
167  double hybridBaseZ(SensorModule::Type type) const { return hybridBasesZ_.at(type); }
168  // precision or alpha in pitch units for (barrelPS, barrel2S, diskPS, disk2S)
170  // number of padded 0s in output data format for (barrelPS, barrel2S, diskPS, disk2S)
172  // stub cut on cot(theta) = tan(lambda) = sinh(eta)
173  double hybridMaxCot() const { return hybridMaxCot_; }
174  // number of outer PS rings for disk 1, 2, 3, 4, 5
175  int hybridNumRingsPS(int layerId) const { return hybridNumRingsPS_.at(layerId); }
176  // mean radius of outer tracker barrel layer
177  double hybridLayerR(int layerId) const { return hybridLayerRs_.at(layerId); }
178  // mean z of outer tracker endcap disks
179  double hybridDiskZ(int layerId) const { return hybridDiskZs_.at(layerId); }
180 
181  // Parameter specifying TTStub algorithm
182 
183  // number of tilted layer rings per barrel layer
184  double numTiltedLayerRing(int layerId) const { return numTiltedLayerRings_.at(layerId); };
185  // stub bend window sizes for flat barrel layer in full pitch units
186  double windowSizeBarrelLayer(int layerId) const { return windowSizeBarrelLayers_.at(layerId); };
187  // stub bend window sizes for tilted barrel layer rings in full pitch units
188  double windowSizeTiltedLayerRing(int layerId, int ring) const {
189  return windowSizeTiltedLayerRings_.at(layerId).at(ring);
190  };
191  // stub bend window sizes for endcap disks rings in full pitch units
192  double windowSizeEndcapDisksRing(int layerId, int ring) const {
193  return windowSizeEndcapDisksRings_.at(layerId).at(ring);
194  };
195  // precision of window sizes in pitch units
196  double baseWindowSize() const { return baseWindowSize_; }
197  // index = encoded bend, value = decoded bend for given window size and module type
198  const std::vector<double>& encodingBend(int windowSize, bool psModule) const;
199 
200  // Parameter specifying front-end
201 
202  // number of bits used for internal stub bend
203  int widthBend() const { return widthBend_; }
204  // number of bits used for internal stub column
205  int widthCol() const { return widthCol_; }
206  // number of bits used for internal stub row
207  int widthRow() const { return widthRow_; }
208  // precision of internal stub bend in pitch units
209  double baseBend() const { return baseBend_; }
210  // precision of internal stub column in pitch units
211  double baseCol() const { return baseCol_; }
212  // precision of internal stub row in pitch units
213  double baseRow() const { return baseRow_; }
214  // used stub bend uncertainty in pitch units
215  double bendCut() const { return bendCut_; }
216 
217  // Parameter specifying DTC
218 
219  // number of phi slices the outer tracker readout is organized in
220  int numRegions() const { return numRegions_; }
221  // number of regions a reconstructable particles may cross
223  // number of DTC boards used to readout a detector region, likely constructed to be an integerer multiple of NumSlots_
224  int numDTCsPerRegion() const { return numDTCsPerRegion_; }
225  // max number of sensor modules connected to one DTC board
226  int numModulesPerDTC() const { return numModulesPerDTC_; }
227  // number of systiloic arrays in stub router firmware
229  // fifo depth in stub router firmware
230  int dtcDepthMemory() const { return dtcDepthMemory_; }
231  // number of row bits used in look up table
232  int dtcWidthRowLUT() const { return dtcWidthRowLUT_; }
233  // number of bits used for stub qOverPt. lut addr is col + bend = 11 => 1 BRAM -> 18 bits for min and max val -> 9
234  int dtcWidthQoverPt() const { return dtcWidthQoverPt_; }
235  // tk layout det id minus DetSetVec->detId
236  int offsetDetIdDSV() const { return offsetDetIdDSV_; }
237  // tk layout det id minus TrackerTopology lower det id
238  int offsetDetIdTP() const { return offsetDetIdTP_; }
239  // offset in layer ids between barrel layer and endcap disks
240  int offsetLayerDisks() const { return offsetLayerDisks_; }
241  // offset between 0 and smallest layer id (barrel layer 1)
242  int offsetLayerId() const { return offsetLayerId_; }
243  // total number of outer tracker DTCs
244  int numDTCs() const { return numDTCs_; }
245  // number of DTCs connected to one TFP (48)
246  int numDTCsPerTFP() const { return numDTCsPerTFP_; }
247  // total number of max possible outer tracker modules (72 per DTC)
248  int numModules() const { return numModules_; }
249  // max number of moudles connected to a systiloic array in stub router firmware
251  // number of merged rows for look up
252  int dtcNumMergedRows() const { return dtcNumMergedRows_; }
253  // number of bits used for phi of row slope
254  int dtcWidthM() const { return dtcWidthM_; }
255  // internal stub q over pt precision in 1 /cm
256  double dtcBaseQoverPt() const { return dtcBaseQoverPt_; }
257  // phi of row slope precision in rad / pitch unit
258  double dtcBaseM() const { return dtcBaseM_; }
259  // number of bits for internal stub phi
260  int widthPhiDTC() const { return widthPhiDTC_; }
261  // sensor modules connected to given dtc id
262  const std::vector<SensorModule*>& dtcModules(int dtcId) const { return dtcModules_.at(dtcId); }
263  // index = encoded layerId, inner value = decoded layerId for given tfp channel [0-47]
264  const std::vector<int>& encodingLayerId(int tfpChannel) const;
265 
266  // Parameter specifying GeometricProcessor
267 
268  // number of phi sectors used in hough transform
269  int numSectorsPhi() const { return numSectorsPhi_; }
270  // number of eta sectors used in hough transform
271  int numSectorsEta() const { return numSectorsEta_; }
272  // # critical radius defining r-z sector shape in cm
273  double chosenRofZ() const { return chosenRofZ_; }
274  // fifo depth in stub router firmware
275  int gpDepthMemory() const { return gpDepthMemory_; }
276  // defining r-z sector shape
277  double boundarieEta(int eta) const { return boundariesEta_.at(eta); }
278  // phi sector size in rad
279  double baseSector() const { return baseSector_; }
280  // cut on zT
281  double maxZT() const { return maxZT_; }
282  // cut on stub cot theta
283  double maxCot() const { return maxCot_; }
284  // number of bits used for internal stub sector eta
285  int widthSectorEta() const { return widthSectorEta_; }
286  // number of bits to represent z residual w.r.t. sector center
287  int widthChiZ() const { return widthChiZ_; }
288 
289  // Parameter specifying HoughTransform
290 
291  // number of qOverPt bins used in hough transform
292  int htNumBinsQoverPt() const { return htNumBinsQoverPt_; }
293  // number of phiT bins used in hough transform
294  int htNumBinsPhiT() const { return htNumBinsPhiT_; }
295  // required number of stub layers to form a candidate
296  int htMinLayers() const { return htMinLayers_; }
297  // internal fifo depth
298  int htDepthMemory() const { return htDepthMemory_; }
299  // number of bits used for candidate q over pt
300  int htWidthQoverPt() const { return htWidthQoverPt_; }
301  // number of bits used for candidate phiT
302  int htWidthPhiT() const { return htWidthPhiT_; }
303  // number of bits to represent phi residual w.r.t. ht candiate
304  int widthChiPhi() const { return widthChiPhi_; }
305  // q over pt bin width precision in 1 /cm
306  double htBaseQoverPt() const { return htBaseQoverPt_; }
307  // phiT bin width in rad
308  double htBasePhiT() const { return htBasePhiT_; }
309 
310  // Parameter specifying MiniHoughTransform
311 
312  // number of finer qOverPt bins inside HT bin
313  int mhtNumBinsQoverPt() const { return mhtNumBinsQoverPt_; }
314  // number of finer phiT bins inside HT bin
315  int mhtNumBinsPhiT() const { return mhtNumBinsPhiT_; }
316  // number of dynamic load balancing steps
317  int mhtNumDLB() const { return mhtNumDLB_; }
318  // required number of stub layers to form a candidate
319  int mhtMinLayers() const { return mhtMinLayers_; }
320  // number of mht cells
321  int mhtNumCells() const { return mhtNumCells_; }
322  // number of bits used for candidate q over pt
323  int mhtWidthQoverPt() const { return mhtWidthQoverPt_; }
324  // number of bits used for candidate phiT
325  int mhtWidthPhiT() const { return mhtWidthPhiT_; }
326  // q over pt bin width precision in 1 /cm
327  double mhtBaseQoverPt() const { return mhtBaseQoverPt_; }
328  // phiT bin width in rad
329  double mhtBasePhiT() const { return mhtBasePhiT_; }
330 
331  // Parameter specifying SeedFilter
332 
333  // required number of stub layers to form a candidate
334  int sfMinLayers() const { return sfMinLayers_; }
335  // cot(theta) precision
336  double sfBaseCot() const { return sfBaseCot_; }
337  // zT precision in cm
338  double sfBaseZT() const { return sfBaseZT_; }
339 
340  // Parameter specifying KalmanFilter
341 
342  // number of bits for internal reciprocal look up
343  int kfWidthLutInvPhi() const { return kfWidthLutInvPhi_; }
344  // number of bits for internal reciprocal look up
345  int kfWidthLutInvZ() const { return kfWidthLutInvZ_; }
346  // cut on number of input candidates
347  int kfNumTracks() const { return kfNumTracks_; }
348  // required number of stub layers to form a track
349  int kfMinLayers() const { return kfMinLayers_; }
350  // maximum number of layers added to a track
351  int kfMaxLayers() const { return kfMaxLayers_; }
352  // cut on number of stub per layer for input candidates
353  int kfMaxStubsPerLayer() const { return kfMaxStubsPerLayer_; }
354  // maximum allowed skipped layers from inside to outside to form a track
355  int kfMaxSkippedLayers() const { return kfMaxSkippedLayers_; }
356  double kfBasem0() const { return kfBasem0_; }
357  double kfBasem1() const { return kfBasem1_; }
358  double kfBasev0() const { return kfBasev0_; }
359  double kfBasev1() const { return kfBasev1_; }
360  double kfBasex0() const { return kfBasex0_; }
361  double kfBasex1() const { return kfBasex1_; }
362  double kfBasex2() const { return kfBasex2_; }
363  double kfBasex3() const { return kfBasex3_; }
364  double kfBaseH00() const { return kfBaseH00_; }
365  double kfBaseH12() const { return kfBaseH12_; }
366  double kfBaser0() const { return kfBaser0_; }
367  double kfBaser1() const { return kfBaser1_; }
368  double kfBaser02() const { return kfBaser02_; }
369  double kfBaser12() const { return kfBaser12_; }
370  double kfBaseS00() const { return kfBaseS00_; }
371  double kfBaseS01() const { return kfBaseS01_; }
372  double kfBaseS12() const { return kfBaseS12_; }
373  double kfBaseS13() const { return kfBaseS13_; }
374  double kfBaseR00() const { return kfBaseR00_; }
375  double kfBaseR11() const { return kfBaseR11_; }
376  double kfBaseInvR00() const { return kfBaseInvR00_; }
377  double kfBaseInvR11() const { return kfBaseInvR11_; }
378  double kfBaseK00() const { return kfBaseK00_; }
379  double kfBaseK10() const { return kfBaseK10_; }
380  double kfBaseK21() const { return kfBaseK21_; }
381  double kfBaseK31() const { return kfBaseK31_; }
382  double kfBaseC00() const { return kfBaseC00_; }
383  double kfBaseC01() const { return kfBaseC01_; }
384  double kfBaseC11() const { return kfBaseC11_; }
385  double kfBaseC22() const { return kfBaseC22_; }
386  double kfBaseC23() const { return kfBaseC23_; }
387  double kfBaseC33() const { return kfBaseC33_; }
388  double kfBaseChi20() const { return kfBaseChi20_; }
389  double kfBaseChi21() const { return kfBaseChi21_; }
390  double kfBaseChi2() const { return kfBaseChi2_; }
391 
392  // Parameter specifying DuplicateRemoval
393 
394  // internal memory depth
395  int drDepthMemory() const { return drDepthMemory_; }
396  // number of bist used for phi0
397  int drWidthPhi0() const { return drWidthPhi0_; }
398  // umber of bist used for qOverPt
399  int drWidthQoverPt() const { return drWidthQoverPt_; }
400  // number of bist used for cot(theta)
401  int drWidthCot() const { return drWidthCot_; }
402  // number of bist used for z0
403  int drWidthZ0() const { return drWidthZ0_; }
404  double drBaseQoverPt() const { return drBaseQoverPt_; }
405  double drBasePhi0() const { return drBasePhi0_; }
406  double drBaseCot() const { return drBaseCot_; }
407  double drBaseZ0() const { return drBaseZ0_; }
408 
409  private:
410  // checks consitency between history and current configuration for a specific module
411  void checkHistory(const edm::ProcessHistory&,
412  const edm::pset::Registry*,
413  const std::string&,
414  const edm::ParameterSetID&) const;
415  // dumps pSetHistory where incosistent lines with pSetProcess are highlighted
416  std::string dumpDiff(const edm::ParameterSet& pSetHistory, const edm::ParameterSet& pSetProcess) const;
417  // check if bField is supported
418  void checkMagneticField();
419  // check if geometry is supported
420  void checkGeometry();
421  // derive constants
422  void calculateConstants();
423  // convert configuration of TTStubAlgorithm
424  void consumeStubAlgorithm();
425  // create bend encodings
426  void encodeBend(std::vector<std::vector<double>>&, bool) const;
427  // create encodingsLayerId
428  void encodeLayerId();
429  // create sensor modules
430  void produceSensorModules();
431  // range check of dtc id
432  void checkDTCId(int dtcId) const;
433  // range check of tklayout id
434  void checkTKLayoutId(int tkLayoutId) const;
435  // range check of tfp identifier
436  void checkTFPIdentifier(int tfpRegion, int tfpChannel) const;
437 
438  // MagneticField
440  // TrackerGeometry
442  // TrackerTopology
444  // CablingMap
446  // TTStub algorithm used to create bend encodings
448  // pSet of ttStub algorithm, used to identify bend window sizes of sensor modules
450  // pSet of geometry configuration, used to identify if geometry is supported
452  // pset id of current TTStubAlgorithm
454  // pset id of current geometry configuration
456 
457  // DD4hep
459 
460  // Parameter to check if configured Tracker Geometry is supported
462  // label of ESProducer/ESSource
464  // compared path
466  // compared filen ame
468  // list of supported versions
469  std::vector<std::string> sgXMLVersions_;
470 
471  // Parameter to check if Process History is consistent with process configuration
473  // label of compared GeometryConfiguration
475  // label of compared TTStubAlgorithm
477 
478  // Common track finding parameter
480  // half lumi region size in cm
481  double beamWindowZ_;
482  // required number of layers a found track has to have in common with a TP to consider it matched to it
484  // required number of ps layers a found track has to have in common with a TP to consider it matched to it
486  // allowed number of stubs a found track may have not in common with its matched TP
488  // allowed number of PS stubs a found track may have not in common with its matched TP
490 
491  // TMTT specific parameter
493  // cut on stub and TP pt, also defines region overlap shape in GeV
494  double minPt_;
495  // cut on stub eta
496  double maxEta_;
497  // critical radius defining region overlap shape in cm
499  // number of detector layers a reconstructbale particle may cross
501  // number of bits used for stub r - ChosenRofPhi
502  int widthR_;
503  // number of bits used for stub phi w.r.t. phi sector centre
505  // number of bits used for stub z
506  int widthZ_;
507 
508  // Hybrid specific parameter
510  // cut on stub and TP pt, also defines region overlap shape in GeV
511  double hybridMinPt_;
512  // cut on stub eta
514  // critical radius defining region overlap shape in cm
516  // max number of detector layer connected to one DTC
518  // number of outer PS rings for disk 1, 2, 3, 4, 5
519  std::vector<int> hybridNumRingsPS_;
520  // number of bits used for stub r w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S)
521  std::vector<int> hybridWidthsR_;
522  // number of bits used for stub z w.r.t layer/disk centre for module types (barrelPS, barrel2S, diskPS, disk2S)
523  std::vector<int> hybridWidthsZ_;
524  // number of bits used for stub phi w.r.t. region centre for module types (barrelPS, barrel2S, diskPS, disk2S)
525  std::vector<int> hybridWidthsPhi_;
526  // number of bits used for stub row number for module types (barrelPS, barrel2S, diskPS, disk2S)
527  std::vector<int> hybridWidthsAlpha_;
528  // number of bits used for stub bend number for module types (barrelPS, barrel2S, diskPS, disk2S)
529  std::vector<int> hybridWidthsBend_;
530  // range in stub r which needs to be covered for module types (barrelPS, barrel2S, diskPS, disk2S)
531  std::vector<double> hybridRangesR_;
532  // range in stub z which needs to be covered for module types (barrelPS, barrel2S, diskPS, disk2S)
533  std::vector<double> hybridRangesZ_;
534  // range in stub row which needs to be covered for module types (barrelPS, barrel2S, diskPS, disk2S)
535  std::vector<double> hybridRangesAlpha_;
536  // mean radius of outer tracker barrel layer
537  std::vector<double> hybridLayerRs_;
538  // mean z of outer tracker endcap disks
539  std::vector<double> hybridDiskZs_;
540  // center radius of outer tracker endcap 2S diks strips
541  std::vector<edm::ParameterSet> hybridDisk2SRsSet_;
542 
543  // Parameter specifying TrackingParticle used for Efficiency measurements
545  // eta cut
546  double tpMaxEta_;
547  // cut on vertex pos r in cm
548  double tpMaxVertR_;
549  // cut on vertex pos z in cm
550  double tpMaxVertZ_;
551  // cut on impact parameter in cm
552  double tpMaxD0_;
553  // required number of associated layers to a TP to consider it reconstruct-able
555  // required number of associated ps layers to a TP to consider it reconstruct-able
557 
558  // Fimrware specific Parameter
560  // needed gap between events of emp-infrastructure firmware
562  // LHC bunch crossing rate in MHz
563  double freqLHC_;
564  // processing Frequency of DTC & TFP in MHz, has to be integer multiple of FreqLHC
565  double freqBE_;
566  // number of events collected in front-end
567  int tmpFE_;
568  // time multiplexed period of track finding processor
569  int tmpTFP_;
570  // speed of light used in FW in e8 m/s
572  // BField used in fw in T
573  double bField_;
574  // accepted BField difference between FW to EventSetup in T
575  double bFieldError_;
576  // outer radius of outer tracker in cm
577  double outerRadius_;
578  // inner radius of outer tracker in cm
579  double innerRadius_;
580  // half length of outer tracker in cm
581  double halfLength_;
582  // max strip/pixel pitch of outer tracker sensors in cm
583  double maxPitch_;
584 
585  // Parameter specifying front-end
587  // number of bits used for internal stub bend
589  // number of bits used for internal stub column
591  // number of bits used for internal stub row
593  // precision of internal stub bend in pitch units
594  double baseBend_;
595  // precision of internal stub column in pitch units
596  double baseCol_;
597  // precision of internal stub row in pitch units
598  double baseRow_;
599  // precision of window sizes in pitch units
601  // used stub bend uncertainty in pitch units
602  double bendCut_;
603 
604  // Parameter specifying DTC
606  // number of phi slices the outer tracker readout is organized in
608  // number of regions a reconstructable particles may cross
610  // number of Slots in used ATCA crates
612  // number of DTC boards used to readout a detector region, likely constructed to be an integerer multiple of NumSlots_
614  // max number of sensor modules connected to one DTC board
616  // number of systiloic arrays in stub router firmware
618  // fifo depth in stub router firmware
620  // number of row bits used in look up table
622  // number of bits used for stub qOverPt. lut addr is col + bend = 11 => 1 BRAM -> 18 bits for min and max val -> 9
624  // tk layout det id minus DetSetVec->detId
626  // tk layout det id minus TrackerTopology lower det id
628  // offset in layer ids between barrel layer and endcap disks
630  // offset between 0 and smallest layer id (barrel layer 1)
632 
633  // Parameter specifying GeometricProcessor
635  // number of phi sectors used in hough transform
637  // number of eta sectors used in hough transform
639  // # critical radius defining r-z sector shape in cm
640  double chosenRofZ_;
641  // range of stub z residual w.r.t. sector center which needs to be covered
643  // fifo depth in stub router firmware
645  // defining r-z sector shape
646  std::vector<double> boundariesEta_;
647 
648  // Parameter specifying HoughTransform
650  // number of qOverPt bins used in hough transform
652  // number of phiT bins used in hough transform
654  // required number of stub layers to form a candidate
656  // internal fifo depth
658 
659  // Parameter specifying MiniHoughTransform
661  // number of finer qOverPt bins inside HT bin
663  // number of finer phiT bins inside HT bin
665  // number of dynamic load balancing steps
667  // required number of stub layers to form a candidate
669 
670  // Parameter specifying SeedFilter
672  // used cot(Theta) bin width = 2 ** this
674  // used zT bin width = baseZ * 2 ** this
676  // required number of stub layers to form a candidate
678 
679  // Parameter specifying KalmanFilter
681  // number of bits for internal reciprocal look up
683  // number of bits for internal reciprocal look up
685  // cut on number of input candidates
687  // required number of stub layers to form a track
689  // maximum number of layers added to a track
691  // cut on number of stub per layer for input candidates
693  // maximum allowed skipped layers from inside to outside to form a track
722 
723  // Parameter specifying DuplicateRemoval
725  // internal memory depth
727  // number of bist used for phi0
729  // umber of bist used for qOverPt
731  // number of bist used for cot(theta)
733  // number of bist used for z0
735 
736  //
737  // Derived constants
738  //
739 
740  // true if tracker geometry and magnetic field supported
742 
743  // TTStubAlgorithm
744 
745  // number of tilted layer rings per barrel layer
746  std::vector<double> numTiltedLayerRings_;
747  // stub bend window sizes for flat barrel layer in full pitch units
748  std::vector<double> windowSizeBarrelLayers_;
749  // stub bend window sizes for tilted barrel layer rings in full pitch units
750  std::vector<std::vector<double>> windowSizeTiltedLayerRings_;
751  // stub bend window sizes for endcap disks rings in full pitch units
752  std::vector<std::vector<double>> windowSizeEndcapDisksRings_;
753  // maximum stub bend window in half strip units
755 
756  // common Track finding
757 
758  // number of frames betwen 2 resets of 18 BX packets
760  // number of valid frames per 18 BX packet
762  // number of valid frames per 8 BX packet
764  // converts GeV in 1/cm
765  double invPtToDphi_;
766  // region size in rad
767  double baseRegion_;
768 
769  // TMTT
770 
771  // number of bits used for stub layer id
773  // internal stub r precision in cm
774  double baseR_;
775  // internal stub z precision in cm
776  double baseZ_;
777  // internal stub phi precision in rad
778  double basePhi_;
779  // number of padded 0s in output data format
781 
782  // hybrid
783 
784  // number of bits used for stub layer id
786  // precision or r in cm for (barrelPS, barrel2S, diskPS, disk2S)
787  std::vector<double> hybridBasesR_;
788  // precision or phi in rad for (barrelPS, barrel2S, diskPS, disk2S)
789  std::vector<double> hybridBasesPhi_;
790  // precision or z in cm for (barrelPS, barrel2S, diskPS, disk2S)
791  std::vector<double> hybridBasesZ_;
792  // precision or alpha in pitch units for (barrelPS, barrel2S, diskPS, disk2S)
793  std::vector<double> hybridBasesAlpha_;
794  // stub r precision in cm
795  double hybridBaseZ_;
796  // stub z precision in cm
797  double hybridBaseR_;
798  // stub phi precision in rad
800  // stub cut on cot(theta) = tan(lambda) = sinh(eta)
802  // number of padded 0s in output data format for (barrelPS, barrel2S, diskPS, disk2S)
803  std::vector<int> hybridNumsUnusedBits_;
804  // center radius of outer tracker endcap 2S diks strips
805  std::vector<std::vector<double>> disk2SRs_;
806 
807  // DTC
808 
809  // total number of outer tracker DTCs
810  int numDTCs_;
811  // number of DTCs connected to one TFP (48)
813  // total number of max possible outer tracker modules (72 per DTC)
815  // max number of moudles connected to a systiloic array in stub router firmware
817  // number of merged rows for look up
819  // number of bits used for phi of row slope
821  // internal stub q over pt precision in 1 /cm
823  // phi of row slope precision in rad / pitch unit
824  double dtcBaseM_;
825  // number of bits for internal stub phi
827  // outer index = module window size, inner index = encoded bend, inner value = decoded bend, for ps modules
828  std::vector<std::vector<double>> encodingsBendPS_;
829  // outer index = module window size, inner index = encoded bend, inner value = decoded bend, for 2s modules
830  std::vector<std::vector<double>> encodingsBend2S_;
831  // outer index = dtc id in region, inner index = encoded layerId, inner value = decoded layerId
832  std::vector<std::vector<int>> encodingsLayerId_;
833  // collection of outer tracker sensor modules
834  std::vector<SensorModule> sensorModules_;
835  // collection of outer tracker sensor modules organised in DTCS [0-215][0-71]
836  std::vector<std::vector<SensorModule*>> dtcModules_;
837  // hepler to convert Stubs quickly
838  std::unordered_map<DetId, SensorModule*> detIdToSensorModule_;
839 
840  // GP
841 
842  // phi sector size in rad
843  double baseSector_;
844  // cut on zT
845  double maxZT_;
846  // cut on stub cot theta
847  double maxCot_;
848  // number of bits used for internal stub sector eta
850  // number of bits to represent z residual w.r.t. sector center
852 
853  // HT
854 
855  // number of bits used for candidate q over pt
857  // number of bits used for candidate phiT
859  // number of bits to represent phi residual w.r.t. ht candiate
861  // q over pt bin width precision in 1 /cm
863  // phiT bin width precision in rad
864  double htBasePhiT_;
865 
866  // MHT
867 
868  // number of mht cells
870  // number of bits used for candidate q over pt
872  // number of bits used for candidate phiT
874  // q over pt bin width precision in 1 /cm
876  // phiT bin width in rad
877  double mhtBasePhiT_;
878 
879  // SF
880 
881  // cot(theta) precision
882  double sfBaseCot_;
883  // zT precision in cm
884  double sfBaseZT_;
885 
886  // KF
887 
888  double kfBasem0_;
889  double kfBasem1_;
890  double kfBasev0_;
891  double kfBasev1_;
892  double kfBasex0_;
893  double kfBasex1_;
894  double kfBasex2_;
895  double kfBasex3_;
896  double kfBasex4_;
897  double kfBaseH00_;
898  double kfBaseH04_;
899  double kfBaseH12_;
900  double kfBaser0_;
901  double kfBaser1_;
902  double kfBaser02_;
903  double kfBaser12_;
904  double kfBaseS00_;
905  double kfBaseS01_;
906  double kfBaseS04_;
907  double kfBaseS12_;
908  double kfBaseS13_;
909  double kfBaseR00_;
910  double kfBaseR11_;
913  double kfBaseK00_;
914  double kfBaseK10_;
915  double kfBaseK21_;
916  double kfBaseK31_;
917  double kfBaseK40_;
918  double kfBaseC00_;
919  double kfBaseC01_;
920  double kfBaseC04_;
921  double kfBaseC11_;
922  double kfBaseC14_;
923  double kfBaseC44_;
924  double kfBaseC22_;
925  double kfBaseC23_;
926  double kfBaseC33_;
927  double kfBaseChi20_;
928  double kfBaseChi21_;
929  double kfBaseChi2_;
930 
931  // DR
932 
934  double drBasePhi0_;
935  double drBaseCot_;
936  double drBaseZ0_;
937  };
938 
939 } // namespace trackerDTC
940 
942 
943 #endif
double kfBaseS13() const
Definition: Setup.h:373
Class for "official" algorithm to be used in TTStubBuilder.
int numFramesIO_
Definition: Setup.h:761
const TrackerGeometry * trackerGeometry() const
Definition: Setup.h:76
int kfMaxStubsPerLayer() const
Definition: Setup.h:353
double kfBaseK00() const
Definition: Setup.h:378
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:26
int maxWindowSize_
Definition: Setup.h:754
double kfBasex3_
Definition: Setup.h:895
double kfBaser12_
Definition: Setup.h:903
edm::ParameterSet pSetFW_
Definition: Setup.h:559
double baseWindowSize_
Definition: Setup.h:600
void checkMagneticField()
Definition: Setup.cc:347
int dtcId(int tklId) const
Definition: Setup.cc:274
double kfBaseH12() const
Definition: Setup.h:365
double kfBaseS12_
Definition: Setup.h:907
void encodeLayerId()
Definition: Setup.cc:413
std::vector< std::vector< double > > windowSizeEndcapDisksRings_
Definition: Setup.h:752
int numDTCsPerTFP_
Definition: Setup.h:812
int kfWidthLutInvPhi() const
Definition: Setup.h:343
double maxZT() const
Definition: Setup.h:281
int dtcNumRoutingBlocks() const
Definition: Setup.h:228
double kfBaseChi21() const
Definition: Setup.h:389
int dtcWidthM() const
Definition: Setup.h:254
int kfBaseShiftS01_
Definition: Setup.h:699
double minPt() const
Definition: Setup.h:116
int tpMinLayersPS() const
Definition: Setup.h:111
int numSectorsPhi() const
Definition: Setup.h:269
int widthRow() const
Definition: Setup.h:207
int widthR() const
Definition: Setup.h:124
double invPtToDphi() const
Definition: Setup.h:97
std::vector< int > hybridNumsUnusedBits_
Definition: Setup.h:803
double hybridBaseR(SensorModule::Type type) const
Definition: Setup.h:163
TTStubAlgorithm< Ref_Phase2TrackerDigi_ > StubAlgorithm
Definition: Setup.h:32
SensorModule * sensorModule(const DetId &detId) const
Definition: Setup.cc:323
double kfBaser0() const
Definition: Setup.h:366
double maxEta_
Definition: Setup.h:496
int hybridNumLayers_
Definition: Setup.h:517
double dtcBaseQoverPt_
Definition: Setup.h:822
double kfBaseC11() const
Definition: Setup.h:384
double kfBasev1() const
Definition: Setup.h:359
double dtcBaseQoverPt() const
Definition: Setup.h:256
double kfBaseC23() const
Definition: Setup.h:386
int kfMaxLayers() const
Definition: Setup.h:351
std::string phGeometryConfiguration_
Definition: Setup.h:474
std::vector< int > hybridNumRingsPS_
Definition: Setup.h:519
int dtcWidthRowLUT() const
Definition: Setup.h:232
double kfBaseInvR00() const
Definition: Setup.h:376
double kfBasem0_
Definition: Setup.h:888
Base class for any algorithm to be used in TTStubBuilder.
std::vector< std::vector< double > > disk2SRs_
Definition: Setup.h:805
double drBaseZ0_
Definition: Setup.h:936
double drBasePhi0_
Definition: Setup.h:934
std::vector< int > hybridWidthsR_
Definition: Setup.h:521
const TrackerTopology * trackerTopology_
Definition: Setup.h:443
int kfBaseShiftChi2_
Definition: Setup.h:721
int kfBaseShiftInvR11_
Definition: Setup.h:716
int kfBaseShiftK31_
Definition: Setup.h:714
int mhtNumBinsPhiT_
Definition: Setup.h:664
int dtcNumRoutingBlocks_
Definition: Setup.h:617
edm::ParameterSetID pSetIdGeometryConfiguration_
Definition: Setup.h:455
double baseWindowSize() const
Definition: Setup.h:196
int kfBaseShiftK00_
Definition: Setup.h:700
double mhtBasePhiT() const
Definition: Setup.h:329
double chosenRofPhi_
Definition: Setup.h:498
int widthZ() const
Definition: Setup.h:128
double hybridBaseZ_
Definition: Setup.h:795
int unMatchedStubs_
Definition: Setup.h:487
double baseR() const
Definition: Setup.h:132
bool configurationSupported() const
Definition: Setup.h:58
int kfBaseShiftr0_
Definition: Setup.h:695
std::vector< edm::ParameterSet > hybridDisk2SRsSet_
Definition: Setup.h:541
double hybridChosenRofPhi_
Definition: Setup.h:515
int kfBaseShiftR11_
Definition: Setup.h:715
int drWidthQoverPt() const
Definition: Setup.h:399
double maxCot_
Definition: Setup.h:847
int kfMinLayers_
Definition: Setup.h:688
int dtcWidthQoverPt() const
Definition: Setup.h:234
double innerRadius_
Definition: Setup.h:579
double dtcBaseM() const
Definition: Setup.h:258
double baseZ_
Definition: Setup.h:776
std::vector< int > hybridWidthsZ_
Definition: Setup.h:523
double kfBaseChi2_
Definition: Setup.h:929
double kfBaseS12() const
Definition: Setup.h:372
double kfBaseS00() const
Definition: Setup.h:370
int mhtMinLayers_
Definition: Setup.h:668
double tpMaxVertZ() const
Definition: Setup.h:105
double hybridDiskZ(int layerId) const
Definition: Setup.h:179
std::vector< double > boundariesEta_
Definition: Setup.h:646
double baseSector() const
Definition: Setup.h:279
double hybridMaxEta_
Definition: Setup.h:513
double kfBaseInvR11() const
Definition: Setup.h:377
void checkGeometry()
Definition: Setup.cc:358
std::vector< double > hybridLayerRs_
Definition: Setup.h:537
int kfBaseShiftC00_
Definition: Setup.h:705
int drWidthZ0() const
Definition: Setup.h:403
int widthPhiDTC_
Definition: Setup.h:826
double hybridChosenRofPhi() const
Definition: Setup.h:147
int kfBaseShiftC11_
Definition: Setup.h:707
int hybridWidthPhi(SensorModule::Type type) const
Definition: Setup.h:155
std::vector< std::vector< SensorModule * > > dtcModules_
Definition: Setup.h:836
int kfBaseShiftr12_
Definition: Setup.h:709
double kfBaseH00() const
Definition: Setup.h:364
std::vector< double > hybridDiskZs_
Definition: Setup.h:539
int kfNumTracks_
Definition: Setup.h:686
int offsetDetIdDSV_
Definition: Setup.h:625
int kfBaseShiftC23_
Definition: Setup.h:719
double hybridBasePhi_
Definition: Setup.h:799
std::string phTTStubAlgorithm_
Definition: Setup.h:476
int numDTCsPerRegion_
Definition: Setup.h:613
int htWidthQoverPt() const
Definition: Setup.h:300
double kfBaser1() const
Definition: Setup.h:367
int widthPhiDTC() const
Definition: Setup.h:260
int numRegions() const
Definition: Setup.h:220
double kfBaseR00() const
Definition: Setup.h:374
bool side(int dtcId) const
Definition: Setup.cc:309
double tpMaxD0() const
Definition: Setup.h:107
bool fromDD4hep_
Definition: Setup.h:458
int dtcNumUnusedBits_
Definition: Setup.h:780
int slot(int dtcId) const
Definition: Setup.cc:317
double numTiltedLayerRing(int layerId) const
Definition: Setup.h:184
double kfBaseChi2() const
Definition: Setup.h:390
int numLayers() const
Definition: Setup.h:122
edm::ParameterSet pSetFE_
Definition: Setup.h:586
double invPtToDphi_
Definition: Setup.h:765
int kfMaxLayers_
Definition: Setup.h:690
double sfBaseZT_
Definition: Setup.h:884
double baseRow() const
Definition: Setup.h:213
std::unordered_map< DetId, SensorModule * > detIdToSensorModule_
Definition: Setup.h:838
double tpMaxEta_
Definition: Setup.h:546
double kfBaseK40_
Definition: Setup.h:917
int sfBaseDiffZ_
Definition: Setup.h:675
double freqLHC_
Definition: Setup.h:563
std::vector< double > hybridRangesAlpha_
Definition: Setup.h:535
std::vector< int > hybridWidthsPhi_
Definition: Setup.h:525
int htNumBinsQoverPt() const
Definition: Setup.h:292
int offsetLayerDisks_
Definition: Setup.h:629
int tpMinLayers() const
Definition: Setup.h:109
int dtcNumUnusedBits() const
Definition: Setup.h:138
int kfBaseShiftS00_
Definition: Setup.h:698
double baseRow_
Definition: Setup.h:598
const StubAlgorithmOfficial * stubAlgorithm_
Definition: Setup.h:447
void checkDTCId(int dtcId) const
Definition: Setup.cc:695
const TrackerDetToDTCELinkCablingMap * cablingMap_
Definition: Setup.h:445
int kfBaseShiftv0_
Definition: Setup.h:697
double maxCot() const
Definition: Setup.h:283
const std::vector< SensorModule * > & dtcModules(int dtcId) const
Definition: Setup.h:262
double deltaPhi(double lhs, double rhs=0.)
Definition: Setup.h:35
double kfBaseC00() const
Definition: Setup.h:382
int hybridNumRingsPS(int layerId) const
Definition: Setup.h:175
edm::ParameterSet pSetTMTT_
Definition: Setup.h:492
double sfBaseCot() const
Definition: Setup.h:336
double htBaseQoverPt() const
Definition: Setup.h:306
double kfBasex0() const
Definition: Setup.h:360
double kfBasex2() const
Definition: Setup.h:362
double maxZT_
Definition: Setup.h:845
int numSectorsEta_
Definition: Setup.h:638
double kfBaseR11() const
Definition: Setup.h:375
int kfMaxStubsPerLayer_
Definition: Setup.h:692
int dtcDepthMemory_
Definition: Setup.h:619
double tpMaxVertZ_
Definition: Setup.h:550
double tpMaxVertR() const
Definition: Setup.h:103
double dtcBaseM_
Definition: Setup.h:824
int hybridWidthR(SensorModule::Type type) const
Definition: Setup.h:151
double maxPitch_
Definition: Setup.h:583
int widthSectorEta() const
Definition: Setup.h:285
int htMinLayers_
Definition: Setup.h:655
double minPt_
Definition: Setup.h:494
int mhtWidthQoverPt_
Definition: Setup.h:871
double kfBaseS01() const
Definition: Setup.h:371
double kfBasex3() const
Definition: Setup.h:363
double kfBaser0_
Definition: Setup.h:900
int numATCASlots_
Definition: Setup.h:611
int kfWidthLutInvZ_
Definition: Setup.h:684
double freqBE_
Definition: Setup.h:565
int gpDepthMemory_
Definition: Setup.h:644
double tpMaxD0_
Definition: Setup.h:552
int widthCol() const
Definition: Setup.h:205
#define EVENTSETUP_DATA_DEFAULT_RECORD(_data_, _record_)
int kfBaseShiftS13_
Definition: Setup.h:712
double htBasePhiT() const
Definition: Setup.h:308
int kfMaxSkippedLayers() const
Definition: Setup.h:355
double kfBaseS04_
Definition: Setup.h:906
double hybridBaseR_
Definition: Setup.h:797
std::vector< std::string > sgXMLVersions_
Definition: Setup.h:469
double drBaseQoverPt_
Definition: Setup.h:933
int matchedLayers_
Definition: Setup.h:483
int numFramesFE() const
Definition: Setup.h:95
int htNumBinsPhiT_
Definition: Setup.h:653
double kfBaseC01() const
Definition: Setup.h:383
double kfBasev0_
Definition: Setup.h:890
int kfBaseShiftv1_
Definition: Setup.h:710
int htWidthPhiT_
Definition: Setup.h:858
double windowSizeEndcapDisksRing(int layerId, int ring) const
Definition: Setup.h:192
bool psModule(int dtcId) const
Definition: Setup.cc:302
int kfMaxSkippedLayers_
Definition: Setup.h:694
double tpMaxEta() const
Definition: Setup.h:101
void checkTKLayoutId(int tkLayoutId) const
Definition: Setup.cc:706
int hybridNumLayers() const
Definition: Setup.h:149
int kfBaseShiftr1_
Definition: Setup.h:708
int drWidthPhi0_
Definition: Setup.h:728
int offsetLayerDisks() const
Definition: Setup.h:240
int mhtWidthQoverPt() const
Definition: Setup.h:323
int mhtMinLayers() const
Definition: Setup.h:319
double drBaseCot() const
Definition: Setup.h:406
std::vector< std::vector< double > > encodingsBendPS_
Definition: Setup.h:828
double kfBaseChi20() const
Definition: Setup.h:388
double kfBaseC22() const
Definition: Setup.h:385
int dtcDepthMemory() const
Definition: Setup.h:230
int dtcWidthRowLUT_
Definition: Setup.h:621
double basePhi_
Definition: Setup.h:778
int mhtNumCells_
Definition: Setup.h:869
double baseCol_
Definition: Setup.h:596
int hybridWidthZ(SensorModule::Type type) const
Definition: Setup.h:153
int mhtNumBinsQoverPt() const
Definition: Setup.h:313
int widthChiPhi() const
Definition: Setup.h:304
int mhtWidthPhiT() const
Definition: Setup.h:325
int kfWidthLutInvPhi_
Definition: Setup.h:682
double kfBasex4_
Definition: Setup.h:896
void encodeBend(std::vector< std::vector< double >> &, bool) const
Definition: Setup.cc:403
double kfBaseC33_
Definition: Setup.h:926
double tpMaxVertR_
Definition: Setup.h:548
double kfBaseR00_
Definition: Setup.h:909
int htDepthMemory() const
Definition: Setup.h:298
int kfBaseShiftC22_
Definition: Setup.h:718
int dtcWidthQoverPt_
Definition: Setup.h:623
double outerRadius_
Definition: Setup.h:577
double hybridBasePhi(SensorModule::Type type) const
Definition: Setup.h:165
int dtcNumModulesPerRoutingBlock() const
Definition: Setup.h:250
double windowSizeBarrelLayer(int layerId) const
Definition: Setup.h:186
double mhtBaseQoverPt_
Definition: Setup.h:875
double kfBasex1() const
Definition: Setup.h:361
double kfBaseC04_
Definition: Setup.h:920
int sfMinLayers_
Definition: Setup.h:677
int htMinLayers() const
Definition: Setup.h:296
int numSectorsPhi_
Definition: Setup.h:636
int kfMinLayers() const
Definition: Setup.h:349
double hybridBaseZ(SensorModule::Type type) const
Definition: Setup.h:167
int numOverlappingRegions_
Definition: Setup.h:609
const edm::ParameterSet * pSetGC_
Definition: Setup.h:451
double kfBaseC11_
Definition: Setup.h:921
double kfBaseChi20_
Definition: Setup.h:927
double kfBaseS13_
Definition: Setup.h:908
const TrackerTopology * trackerTopology() const
Definition: Setup.h:78
void checkTFPIdentifier(int tfpRegion, int tfpChannel) const
Definition: Setup.cc:717
int widthChiPhi_
Definition: Setup.h:860
double bField_
Definition: Setup.h:573
double bendCut() const
Definition: Setup.h:215
double kfBaseC23_
Definition: Setup.h:925
std::vector< int > hybridWidthsAlpha_
Definition: Setup.h:527
double drBaseZ0() const
Definition: Setup.h:407
int kfBaseShiftK10_
Definition: Setup.h:701
TTStubAlgorithm_official< Ref_Phase2TrackerDigi_ > StubAlgorithmOfficial
Definition: Setup.h:33
Class to process and provide run-time constants used by Track Trigger emulators.
Definition: Setup.h:42
double kfBasex0_
Definition: Setup.h:892
int mhtNumBinsQoverPt_
Definition: Setup.h:662
double basePhi() const
Definition: Setup.h:136
double drBaseCot_
Definition: Setup.h:935
double hybridMaxCot() const
Definition: Setup.h:173
const std::vector< int > & encodingLayerId(int tfpChannel) const
Definition: Setup.cc:341
std::string sgXMLLabel_
Definition: Setup.h:463
double kfBasex1_
Definition: Setup.h:893
double maxEta() const
Definition: Setup.h:118
const MagneticField * magneticField_
Definition: Setup.h:439
int widthPhi() const
Definition: Setup.h:126
std::vector< double > hybridBasesAlpha_
Definition: Setup.h:793
double kfBaseC33() const
Definition: Setup.h:387
int htNumBinsPhiT() const
Definition: Setup.h:294
double kfBaseH04_
Definition: Setup.h:898
edm::ParameterSet pSetDTC_
Definition: Setup.h:605
int drDepthMemory_
Definition: Setup.h:726
double chosenRofPhi() const
Definition: Setup.h:120
void consumeStubAlgorithm()
Definition: Setup.cc:384
bool configurationSupported_
Definition: Setup.h:741
int kfBaseShiftC01_
Definition: Setup.h:706
int numFramesInfra_
Definition: Setup.h:561
edm::ParameterSet pSetSG_
Definition: Setup.h:461
edm::ParameterSet pSetKF_
Definition: Setup.h:680
edm::ParameterSet pSetTF_
Definition: Setup.h:479
int kfBaseShiftChi21_
Definition: Setup.h:717
double baseZ() const
Definition: Setup.h:134
int numDTCs() const
Definition: Setup.h:244
double baseCol() const
Definition: Setup.h:211
std::string sgXMLFile_
Definition: Setup.h:467
double hybridMaxEta() const
Definition: Setup.h:145
double kfBaseS00_
Definition: Setup.h:904
double kfBasem1() const
Definition: Setup.h:357
int sfPowerBaseCot_
Definition: Setup.h:673
std::string dumpDiff(const edm::ParameterSet &pSetHistory, const edm::ParameterSet &pSetProcess) const
Definition: Setup.cc:263
std::vector< int > hybridWidthsBend_
Definition: Setup.h:529
Definition: DetId.h:17
double kfBaseH00_
Definition: Setup.h:897
int numFramesIO() const
Definition: Setup.h:93
int tkLayoutId(int dtcId) const
Definition: Setup.cc:284
std::vector< double > hybridBasesZ_
Definition: Setup.h:791
std::pair< TTStubRef, BV > Frame
Definition: TTDTC.h:22
int dtcNumMergedRows_
Definition: Setup.h:818
double kfBaser02_
Definition: Setup.h:902
int kfNumTracks() const
Definition: Setup.h:347
std::vector< double > hybridRangesR_
Definition: Setup.h:531
edm::ParameterSet pSetGP_
Definition: Setup.h:634
std::vector< SensorModule > sensorModules_
Definition: Setup.h:834
int mhtNumCells() const
Definition: Setup.h:321
double baseBend() const
Definition: Setup.h:209
int dtcNumMergedRows() const
Definition: Setup.h:252
double kfBaseK31() const
Definition: Setup.h:381
int kfBaseShiftInvR00_
Definition: Setup.h:703
double neededRangeChiZ_
Definition: Setup.h:642
int kfBaseShiftK21_
Definition: Setup.h:713
int kfBaseShiftR00_
Definition: Setup.h:702
edm::ParameterSet pSetDR_
Definition: Setup.h:724
double kfBaseK10() const
Definition: Setup.h:379
void produceSensorModules()
Definition: Setup.cc:443
std::vector< std::vector< int > > encodingsLayerId_
Definition: Setup.h:832
double baseR_
Definition: Setup.h:774
double hybridBaseAlpha(SensorModule::Type type) const
Definition: Setup.h:169
int widthSectorEta_
Definition: Setup.h:849
double hybridMaxCot_
Definition: Setup.h:801
void checkHistory(const edm::ProcessHistory &processHistory) const
Definition: Setup.cc:222
double kfBaseK21() const
Definition: Setup.h:380
double chosenRofZ_
Definition: Setup.h:640
int kfBaseShiftS12_
Definition: Setup.h:711
double kfBasem0() const
Definition: Setup.h:356
double kfBaseR11_
Definition: Setup.h:910
double baseSector_
Definition: Setup.h:843
std::vector< double > hybridBasesPhi_
Definition: Setup.h:789
double drBaseQoverPt() const
Definition: Setup.h:404
double kfBasex2_
Definition: Setup.h:894
Class to store hardware like structured TTStub Collection used by Track Trigger emulators.
Definition: TTDTC.h:17
double mhtBasePhiT_
Definition: Setup.h:877
int tpMinLayersPS_
Definition: Setup.h:556
int mhtNumDLB() const
Definition: Setup.h:317
double kfBaseK21_
Definition: Setup.h:915
int htWidthPhiT() const
Definition: Setup.h:302
int numDTCsPerTFP() const
Definition: Setup.h:246
std::vector< double > windowSizeBarrelLayers_
Definition: Setup.h:748
double kfBaser1_
Definition: Setup.h:901
int numSectorsEta() const
Definition: Setup.h:271
int htWidthQoverPt_
Definition: Setup.h:856
std::vector< double > numTiltedLayerRings_
Definition: Setup.h:746
double kfBaseK31_
Definition: Setup.h:916
double kfBaseK10_
Definition: Setup.h:914
int hybridWidthLayer() const
Definition: Setup.h:161
double hybridMinPt_
Definition: Setup.h:511
std::vector< double > hybridBasesR_
Definition: Setup.h:787
int drWidthPhi0() const
Definition: Setup.h:397
edm::ParameterSet pSetSF_
Definition: Setup.h:671
edm::ParameterSet pSetHT_
Definition: Setup.h:649
int widthBend() const
Definition: Setup.h:203
int mhtNumBinsPhiT() const
Definition: Setup.h:315
int offsetLayerId_
Definition: Setup.h:631
int numDTCsPerRegion() const
Definition: Setup.h:224
Definition: DTC.h:10
std::vector< std::vector< double > > windowSizeTiltedLayerRings_
Definition: Setup.h:750
std::string sgXMLPath_
Definition: Setup.h:465
double kfBaseInvR11_
Definition: Setup.h:912
int widthChiZ() const
Definition: Setup.h:287
std::vector< std::vector< double > > encodingsBend2S_
Definition: Setup.h:830
double htBasePhiT_
Definition: Setup.h:864
double kfBaser12() const
Definition: Setup.h:369
int htDepthMemory_
Definition: Setup.h:657
double bendCut_
Definition: Setup.h:602
int unMatchedStubsPS_
Definition: Setup.h:489
double sfBaseCot_
Definition: Setup.h:882
int kfBaseShiftr02_
Definition: Setup.h:696
const edm::ParameterSet * pSetSA_
Definition: Setup.h:449
int kfBaseShiftC33_
Definition: Setup.h:720
double hybridMinPt() const
Definition: Setup.h:143
const std::vector< double > & encodingBend(int windowSize, bool psModule) const
Definition: Setup.cc:335
int kfWidthLutInvZ() const
Definition: Setup.h:345
double windowSizeTiltedLayerRing(int layerId, int ring) const
Definition: Setup.h:188
double baseRegion_
Definition: Setup.h:767
std::vector< double > hybridRangesZ_
Definition: Setup.h:533
double kfBaseS01_
Definition: Setup.h:905
TTDTC ttDTC() const
Definition: Setup.h:84
int numModulesPerDTC() const
Definition: Setup.h:226
int hybridNumUnusedBits(SensorModule::Type type) const
Definition: Setup.h:171
double kfBaseChi21_
Definition: Setup.h:928
int offsetLayerId() const
Definition: Setup.h:242
int offsetDetIdTP_
Definition: Setup.h:627
int numFrames() const
Definition: Setup.h:91
int numFramesFE_
Definition: Setup.h:763
double chosenRofZ() const
Definition: Setup.h:273
int offsetDetIdTP() const
Definition: Setup.h:238
edm::ParameterSetID pSetIdTTStubAlgorithm_
Definition: Setup.h:453
int mhtWidthPhiT_
Definition: Setup.h:873
double kfBaseC14_
Definition: Setup.h:922
double kfBaseC44_
Definition: Setup.h:923
double kfBaseH12_
Definition: Setup.h:899
double kfBasem1_
Definition: Setup.h:889
edm::ParameterSet pSetHybrid_
Definition: Setup.h:509
int numOverlappingRegions() const
Definition: Setup.h:222
int dtcNumModulesPerRoutingBlock_
Definition: Setup.h:816
double kfBaseC00_
Definition: Setup.h:918
double kfBaseK00_
Definition: Setup.h:913
double sfBaseZT() const
Definition: Setup.h:338
double kfBaseC01_
Definition: Setup.h:919
double kfBaser02() const
Definition: Setup.h:368
int drWidthQoverPt_
Definition: Setup.h:730
int hybridWidthBend(SensorModule::Type type) const
Definition: Setup.h:159
int drDepthMemory() const
Definition: Setup.h:395
edm::ParameterSet pSetMHT_
Definition: Setup.h:660
double hybridLayerR(int layerId) const
Definition: Setup.h:177
double kfBaseC22_
Definition: Setup.h:924
double beamWindowZ_
Definition: Setup.h:481
int widthLayer() const
Definition: Setup.h:130
double speedOfLight_
Definition: Setup.h:571
double halfLength_
Definition: Setup.h:581
int matchedLayersPS_
Definition: Setup.h:485
double kfBasev0() const
Definition: Setup.h:358
int numModules() const
Definition: Setup.h:248
double mhtBaseQoverPt() const
Definition: Setup.h:327
int drWidthCot() const
Definition: Setup.h:401
int kfBaseShiftChi20_
Definition: Setup.h:704
double baseRegion() const
Definition: Setup.h:99
int sfMinLayers() const
Definition: Setup.h:334
GlobalPoint stubPos(bool hybrid, const TTDTC::Frame &frame, int tfpRegion, int tfpChannel) const
Definition: Setup.cc:620
int offsetDetIdDSV() const
Definition: Setup.h:236
edm::ParameterSet pSetPH_
Definition: Setup.h:472
double baseBend_
Definition: Setup.h:594
int hybridWidthAlpha(SensorModule::Type type) const
Definition: Setup.h:157
double kfBaseInvR00_
Definition: Setup.h:911
edm::ParameterSet pSetTP_
Definition: Setup.h:544
double kfBasev1_
Definition: Setup.h:891
int numModulesPerDTC_
Definition: Setup.h:615
void calculateConstants()
Definition: Setup.cc:485
double beamWindowZ() const
Definition: Setup.h:89
int tpMinLayers_
Definition: Setup.h:554
double bFieldError_
Definition: Setup.h:575
double boundarieEta(int eta) const
Definition: Setup.h:277
double drBasePhi0() const
Definition: Setup.h:405
int gpDepthMemory() const
Definition: Setup.h:275
int hybridWidthLayer_
Definition: Setup.h:785
const TrackerGeometry * trackerGeometry_
Definition: Setup.h:441
double htBaseQoverPt_
Definition: Setup.h:862
int htNumBinsQoverPt_
Definition: Setup.h:651