CMS 3D CMS Logo

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