CMS 3D CMS Logo

Settings.h
Go to the documentation of this file.
1 #ifndef L1Trigger_TrackFindingTMTT_Settings_h
2 #define L1Trigger_TrackFindingTMTT_Settings_h
3 
8 #include "CLHEP/Units/PhysicalConstants.h"
9 #include <vector>
10 #include <iostream>
11 #include <atomic>
12 
13 // Stores all configuration parameters + some hard-wired constants.
14 
15 namespace tmtt {
16 
17  class Settings {
18  public:
19  // Constructor for HYBRID (sets config to hard-wired consts to allow use outside CMSSW).
20  Settings();
21 
22  // Constructor for TMTT (reads config from python cfg)
23  Settings(const edm::ParameterSet& iConfig);
24 
25  // Input tags for ES & ED data.
30 
32  edm::InputTag tpInputTag() const { return tpInputTag_; }
36 
37  //=== General settings.
38 
39  // Enable all use of MC truth info (disable to save CPU).
40  bool enableMCtruth() const { return enableMCtruth_; }
41  // Enable output histograms & job tracking performance summary (disable to save CPU).
42  bool enableHistos() const { return enableHistos_; }
43  // Enable output of TTTracks from part-way through tracking chain (after HT & RZ).
45 
46  //=== Cuts on MC truth tracks for tracking efficiency measurements.
47 
48  double genMinPt() const { return genMinPt_; }
49  double genMaxAbsEta() const { return genMaxAbsEta_; }
50  double genMaxVertR() const { return genMaxVertR_; }
51  double genMaxVertZ() const { return genMaxVertZ_; }
52  double genMaxD0() const { return genMaxD0_; }
53  double genMaxZ0() const { return genMaxZ0_; }
54  const std::vector<int>& genPdgIds() const { return genPdgIds_; }
55  // Additional cut on MC truth tracks for algorithmic tracking efficiency measurements.
56  unsigned int genMinStubLayers() const { return genMinStubLayers_; } // Min. number of layers TP made stub in.
57 
58  //=== Cuts applied to stubs before arriving in L1 track finding board.
59 
60  // Reduce number of bits used by front-end chips to store stub bend info?
61  // = 0 (no); = 1 (yes using official recipe); = 2 (yes using TMTT method)
62  unsigned int degradeBendRes() const { return degradeBendRes_; }
63  // Don't use stubs with eta beyond this cut, since the tracker geometry makes it impossible to reconstruct tracks with them.
64  double maxStubEta() const { return maxStubEta_; }
65  // Don't use stubs whose measured Pt from bend info is significantly below HTArraySpec.HoughMinPt, where "significantly" means allowing for resolution in q/Pt derived from stub bend resolution HTFilling.BendResolution
66  bool killLowPtStubs() const { return killLowPtStubs_; }
67  // Print stub windows corresponding to KillLowPtStubs, in python cfg format used by CMSSW.
68  bool printStubWindows() const { return printStubWindows_; }
69  // Bend resolution assumed by bend filter in units of strip pitch. Also used when assigning stubs to sectors if calcPhiTrkRes() is true.
70  double bendCut() const { return bendCut_; }
71  // Additional contribution to bend resolution from its encoding into a reduced number of bits.
72  // This number is the assumed resolution relative to the naive guess of its value.
73  // It is ignored in DegradeBendRes = 0.
74  double bendCutExtra() const { return bendCutExtra_; }
75  // Order stubs by bend in DTC, such that highest Pt stubs are transmitted first.
76  bool orderStubsByBend() const { return orderStubsByBend_; }
77 
78  //=== Optional stub digitization configuration
79 
80  bool enableDigitize() const { return enableDigitize_; }
81  //--- Parameters available in MP board.
82  unsigned int phiSectorBits() const { return phiSectorBits_; }
83  unsigned int phiSBits() const { return phiSBits_; }
84  double phiSRange() const { return phiSRange_; }
85  unsigned int rtBits() const { return rtBits_; }
86  double rtRange() const { return rtRange_; }
87  unsigned int zBits() const { return zBits_; }
88  double zRange() const { return zRange_; }
89  //--- Parameters available in GP board (excluding any in common with MP specified above).
90  unsigned int phiNBits() const { return phiNBits_; }
91  double phiNRange() const { return phiNRange_; }
92  unsigned int bendBits() const { return bendBits_; }
93 
94  //=== Tracker module type for FW.
95  const std::vector<double>& pitchVsType() const { return pitchVsType_; }
96  const std::vector<double>& spaceVsType() const { return spaceVsType_; }
97  const std::vector<bool>& barrelVsType() const { return barrelVsType_; }
98  const std::vector<bool>& psVsType() const { return psVsType_; }
99  const std::vector<bool>& tiltedVsType() const { return tiltedVsType_; }
100 
101  //=== Configuration of Geometric Processor.
102  // Use an FPGA-friendly approximation to determine track angle dphi from bend in GP?
103  bool useApproxB() const { return useApproxB_; }
104  double bApprox_gradient() const { return bApprox_gradient_; }
105  double bApprox_intercept() const { return bApprox_intercept_; }
106 
107  //=== Definition of phi sectors.
108 
109  unsigned int numPhiNonants() const { return numPhiNonants_; }
110  unsigned int numPhiSectors() const { return numPhiSectors_; }
111  // Use phi of track at this radius as sector hourglass reference radius.
112  double chosenRofPhi() const { return chosenRofPhi_; }
113  // Require stub phi to be consistent with track of Pt > HTArraySpec.HoughMinPt that crosses HT phi axis?
114  bool useStubPhi() const { return useStubPhi_; }
115  // Require stub phi0 (or phi65 etc.) as estimated from stub bend, to lie within HT phi axis, allowing tolerance specified below?
116  bool useStubPhiTrk() const { return useStubPhiTrk_; }
117  // Tolerance in stub phi0 (or phi65) assumed to be this fraction of phi sector width. (N.B. If > 0.5, then stubs can be shared by more than 2 phi sectors).
118  double assumedPhiTrkRes() const { return assumedPhiTrkRes_; }
119  // If true, tolerance in stub phi0 (or phi65 etc.) will be reduced below AssumedPhiTrkRes if stub bend resolution specified in StubCuts.BendResolution suggests it is safe to do so.
120  bool calcPhiTrkRes() const { return calcPhiTrkRes_; }
121 
122  //=== Definition of eta sectors.
123 
124  const std::vector<double>& etaRegions() const { return etaRegions_; } // Boundaries of eta regions de
125  unsigned int numEtaRegions() const { return (etaRegions_.size() - 1); }
126  // Use z of track at this radius for assignment of stubs to phi sectors & also for one of the axes of the r-z HT.
127  double chosenRofZ() const { return chosenRofZ_; }
128  // Half-width of window supposed to contain beam-spot in z.
129  double beamWindowZ() const { return beamWindowZ_; }
130  // If True, the code will not throw an error if a stub is assigned to 3 or more eta sectors.
131  bool allowOver2EtaSecs() const { return allowOver2EtaSecs_; }
132 
133  //=== r-phi Hough transform array specifications.
134 
135  double houghMinPt() const { return houghMinPt_; }
136  // Dimension in any q/Pt related variable. (If MiniHTstage = True, this refers to mini cells in whole HT array).
137  unsigned int houghNbinsPt() const { return houghNbinsPt_; }
138  // Dimension in any track-phi related variable. (If MiniHTstage = True, this refers to mini cells in whole HT array).
139  unsigned int houghNbinsPhi() const { return houghNbinsPhi_; }
140  // Groups of neighbouring 2x2 cells in HT will be treated as if they are a single large cell. (Also enabled in MiniHTstage = True).
141  bool enableMerge2x2() const { return enableMerge2x2_; }
142  // but only cells with pt < maxPtToMerge2x2() will be merged in this way (irrelevant if enableMerge2x2() = false).
143  double maxPtToMerge2x2() const { return maxPtToMerge2x2_; }
144  // Subdivide each sector into this number of subsectors in eta within r-phi HT.
145  unsigned int numSubSecsEta() const { return numSubSecsEta_; }
146  // define cell shape (0 square, 1 diamond, 2 hexagon, 3 brick)
147  unsigned int shape() const { return shape_; }
148  // Run 2nd stage HT with mini cells inside each 1st stage normal HT cell. N.B. This automatically std::sets EnableMerge2x2 = True & MaxPtToMerge = 999999.
149  bool miniHTstage() const { return miniHTstage_; }
150  // Number of mini cells along q/Pt & phi axes inside each normal HT cell.
151  unsigned int miniHoughNbinsPt() const { return miniHoughNbinsPt_; }
152  unsigned int miniHoughNbinsPhi() const { return miniHoughNbinsPhi_; }
153  // Below this Pt threshold, the mini HT will not be used, so only tracks found by 1st stage coarse HT will be output. (Used to improve low Pt tracking). (HT cell numbering remains as if mini HT were in use everywhere).
154  float miniHoughMinPt() const { return miniHoughMinPt_; }
155  // If true, allows tracks found by 1st stage coarse HT to be output if 2nd stage mini HT finds no tracks.
156  bool miniHoughDontKill() const { return miniHoughDontKill_; }
157  // If MiniHoughDontKill=True, this option restricts it to keep 1st stage HT tracks only if their Pt is exceeds this cut. (Used to improve electron tracking above this threshold).
159  // load balancing disabled = 0; static load balancing of output links = 1; dynamic load balancing of output links = 2.
160  unsigned int miniHoughLoadBalance() const { return miniHoughLoadBalance_; }
161 
162  //=== Rules governing how stubs are filled into the r-phi Hough Transform array.
163 
164  // Take all cells in HT array crossed by line corresponding to each stub (= 0) or take only some to reduce rate at cost
165  // of efficiency ( > 0). If this option is > 0, it can be 1 or 2, corresponding to different algorithms for rejecting some of the cells.
166  unsigned int killSomeHTCellsRphi() const { return killSomeHTCellsRphi_; }
167  // Use filter in each HT cell using only stubs which have consistent bend, allowing for resolution specified in StubCuts.BendResolution.
168  bool useBendFilter() const { return useBendFilter_; }
169  // A filter is used each HT cell, which prevents more than the specified number of stubs being stored in the cell. (Reflecting memory limit of hardware). N.B. If mini-HT is in use, then this cut applies to coarse-HT.
170  unsigned int maxStubsInCell() const { return maxStubsInCell_; }
171  // Similar cut for Mini-HT.
172  unsigned int maxStubsInCellMiniHough() const { return maxStubsInCellMiniHough_; }
173  // If this returns true, and if more than busySectorNumStubs() stubs are assigned to tracks by an r-phi HT array, then
174  // the excess tracks are killed, with lowest Pt ones killed first. This is because hardware has finite readout time.
175  bool busySectorKill() const { return busySectorKill_; }
176  unsigned int busySectorNumStubs() const { return busySectorNumStubs_; }
177  // If this returns a non-empty std::vector, then the BusySectorNumStubs cut is instead applied to the subset of tracks appearing in the following m bin ranges (q/Pt) of the HT array. The sum of the entries in the std::vector should equal the number of m bins in the HT, although the entries will be rescaled if this is not the case. If the std::vector is empty, this option is disabled. (P.S. If the HT includes "merged" cells, then the m bin ranges specified here should correspond to the bins before merging).
178  const std::vector<unsigned int>& busySectorMbinRanges() const { return busySectorMbinRanges_; }
179  // If BusySecMbinOrder is empty, then the groupings specified in BusySectorMbinRanges are applied to the m bins in the order
180  // 0,1,2,3,4,5 ... . If it is not empty, then they are grouped in the order specified here.
181  const std::vector<unsigned int>& busySectorMbinOrder() const { return busySectorMbinOrder_; }
182  // If this is True, and more than BusyInputSectorNumStubs() are input to the HT array from the GP, then
183  // the excess stubs are killed. This is because HT hardware has finite readin time.
184  bool busyInputSectorKill() const { return busyInputSectorKill_; }
185  unsigned int busyInputSectorNumStubs() const { return busyInputSectorNumStubs_; }
186  // Multiplex the outputs from several HTs onto a single pair of output optical links?
187  // Options: 0 = disable Mux; 1 = Dec. 2016 Mux; 2 = Mar 2018 Mux (transverse HT readout by m-bin);
188  // 3 = Sept 2019 Mux (transverse HT readout by m-bin)
189  unsigned int muxOutputsHT() const { return muxOutputsHT_; }
190  // Is specified eta sector enabled?
191  bool isHTRPhiEtaRegWhitelisted(unsigned const iEtaReg) const;
192 
193  //=== Options controlling r-z track filters (or any other track filters run after the Hough transform, as opposed to inside it).
194 
195  // Specify preferred r-z filter (from those available inside TrkRZfilter.cc) - currently only "SeedFilter".
196  const std::string& rzFilterName() const { return rzFilterName_; }
197  // --- Options relevant for Seed filter, (so only relevant if rzFilterName()="SeedFilter").
198  // Cut at this many standard deviations on seed resolution.
199  double seedResCut() const { return seedResCut_; }
200  // Store stubs compatible with all possible good seed (relevant for Seed filter)?
201  bool keepAllSeed() const { return keepAllSeed_; }
202  // Maximum number of seed combinations to check (relevant for Seed filter).
203  unsigned int maxSeedCombinations() const { return maxSeedCombinations_; }
204  // Maximum number of seed combinations consistent with (z0,eta) sector constraints to bother checking per track candidate.
205  unsigned int maxGoodSeedCombinations() const { return maxGoodSeedCombinations_; }
206  // Maximum number of seeds that a single stub can be included in.
207  unsigned int maxSeedsPerStub() const { return maxSeedsPerStub_; }
208  // Check that estimated zTrk from seeding stub is within the sector boundaries (relevant for Seed filter)?
209  bool zTrkSectorCheck() const { return zTrkSectorCheck_; }
210  // Min. number of layers in rz track that must have stubs for track to be declared found.
211  unsigned int minFilterLayers() const { return minFilterLayers_; }
212 
213  //=== Rules for deciding when the (HT) track finding has found an L1 track candidate
214 
215  // Min. number of layers in HT cell that must have stubs for track to be declared found.
216  unsigned int minStubLayers() const { return minStubLayers_; }
217  // Change min. number of layers cut to (MinStubLayers - 1) for tracks with Pt exceeding this cut.
218  // If this is std::set to > 10000, this option is disabled.
219  double minPtToReduceLayers() const { return minPtToReduceLayers_; }
220  // Change min. number of layers cut to (MinStubLayers - 1) for tracks in these rapidity sectors.
221  const std::vector<unsigned int>& etaSecsReduceLayers() const { return etaSecsReduceLayers_; }
222  //Reduce this layer ID, so that it takes no more than 8 different values in any eta region (simplifies firmware)?
223  bool reduceLayerID() const { return reduceLayerID_; }
224 
225  //=== Specification of algorithm to eliminate duplicate tracks
226 
227  // Algorithm run on tracks after the track helix fit has been done.
228  unsigned int dupTrkAlgFit() const { return dupTrkAlgFit_; }
229 
230  //=== Rules for deciding when a reconstructed L1 track matches a MC truth particle (i.e. tracking particle).
231 
232  //--- Three different ways to define if a tracking particle matches a reco track candidate. (Usually, std::set two of them to ultra loose).
233  // Min. fraction of matched stubs relative to number of stubs on reco track.
235  // Min. fraction of matched stubs relative to number of stubs on tracking particle.
237  // Min. number of matched layers & min. number of matched PS layers..
238  unsigned int minNumMatchLayers() const { return minNumMatchLayers_; }
239  unsigned int minNumMatchPSLayers() const { return minNumMatchPSLayers_; }
240  // Associate stub to TP only if the TP contributed to both its clusters? (If False, then associate even if only one cluster was made by TP).
241  bool stubMatchStrict() const { return stubMatchStrict_; }
242 
243  //=== Track Fitting Settings
244 
245  //--- Options applicable to all track fitters ---
246 
247  // Track fitting algorithms to use. You can run several in parallel.
248  const std::vector<std::string>& trackFitters() const { return trackFitters_; }
249  // Indicate subset of fitters wanting r-z track filter to be run before them.
250  // (Excludes fitters that are not run).
251  const std::vector<std::string>& useRZfilter() const { return useRZfilter_; }
252  // Print detailed summary of track fit performance at end of job (as opposed to a brief one)?
253  bool detailedFitOutput() const { return detailedFitOutput_; }
254  // Use MC truth to eliminate all fake tracks & all incorrect stubs assigned to tracks before doing fit.
255  bool trackFitCheat() const { return trackFitCheat_; }
256 
257  //--- Options for chi2 track fitter ---
258 
259  // Number of iterations that the track fit should perform.
260  unsigned int numTrackFitIterations() const { return numTrackFitIterations_; }
261  // Optionally remove hit with worst residual in track fit? (Only used by chi2 track fit).
263  // Cuts in standard deviations used to kill hits with big residuals during fit. If the residual exceeds the "General"
264  // cut, the hit is killed providing it leaves the track with enough hits to survive. If the residual exceeds the
265  // "Killing" cut, the hit is killed even if that kills the track.
266  double generalResidualCut() const { return generalResidualCut_; }
267  double killingResidualCut() const { return killingResidualCut_; }
268 
269  //--- Additional options for Davide Cieri's Simple Linear Regression track fitter ---
270 
271  // Digitize Simple Linear Regression variables & calculation. (Disabled if EnableDigitize=False).
272  bool digitizeSLR() const { return digitizeSLR_; }
274  unsigned int dividerBitsHelix() const { return dividerBitsHelix_; }
275  unsigned int dividerBitsHelixZ() const { return dividerBitsHelixZ_; }
277  unsigned int ShiftingBitsDenRPhi() const { return ShiftingBitsDenRPhi_; }
278 
280  unsigned int ShiftingBitsDenRZ() const { return ShiftingBitsDenRZ_; }
282  unsigned int ShiftingBitsPt() const { return ShiftingBitsPt_; }
284  unsigned int ShiftingBitsPhi() const { return ShiftingBitsPhi_; }
286  unsigned int ShiftingBitsLambda() const { return ShiftingBitsLambda_; }
288  unsigned int ShiftingBitsZ0() const { return ShiftingBitsZ0_; }
290  double slr_chi2cut() const { return slr_chi2cut_; }
292  double ResidualCut() const { return residualCut_; }
293 
294  //--- Options for Kalman filter track fitters ---
295 
296  // Larger number has more debugging printout.
297  unsigned kalmanDebugLevel() const { return kalmanDebugLevel_; }
298  // Fit will reject fitted tracks unless it can assign at least this number of stubs to them.
299  unsigned int kalmanMinNumStubs() const { return kalmanMinNumStubs_; }
300  // Fit will attempt to add up to this nummber of stubs to each fitted tracks, but won't bother adding more.
301  unsigned int kalmanMaxNumStubs() const { return kalmanMaxNumStubs_; }
302  // For 5-param helix fits, calculate also beam-constrained helix params after fit is complete, & use them for duplicate removal if DupTrkAlgFit=1.
303  bool kalmanAddBeamConstr() const { return kalmanAddBeamConstr_; }
304  // Remove requirement of at least 2 PS layers per track.
305  bool kalmanRemove2PScut() const { return kalmanRemove2PScut_; }
306  // Allow the KF to skip this many layers in total per track for "hard" or "easy" input tracks
307  unsigned int kalmanMaxSkipLayersHard() const { return kalmanMaxSkipLayersHard_; }
308  unsigned int kalmanMaxSkipLayersEasy() const { return kalmanMaxSkipLayersEasy_; }
309  // Max #stubs an input track can have to be defined "easy".
310  unsigned int kalmanMaxStubsEasy() const { return kalmanMaxStubsEasy_; }
311  // Enable "maybe layer"
312  bool kfUseMaybeLayers() const { return kfUseMaybeLayers_; }
313  // Cuts applied to KF states as a function of the last KF tracker layer they had a stub in.
314  // (If "4" or "5" in name, cut only applies to 4 or 5 param helix fit).
315  const std::vector<double>& kfLayerVsPtToler() const { return kfLayerVsPtToler_; }
316  const std::vector<double>& kfLayerVsD0Cut5() const { return kfLayerVsD0Cut5_; }
317  const std::vector<double>& kfLayerVsZ0Cut5() const { return kfLayerVsZ0Cut5_; }
318  const std::vector<double>& kfLayerVsZ0Cut4() const { return kfLayerVsZ0Cut4_; }
319  const std::vector<double>& kfLayerVsChiSq5() const { return kfLayerVsChiSq5_; }
320  const std::vector<double>& kfLayerVsChiSq4() const { return kfLayerVsChiSq4_; }
321  // KF will consider only this no. of stubs per layer.
322  unsigned int kalmanMaxStubsPerLayer() const { return kalmanMaxStubsPerLayer_; }
323  // Multiple scattering term - inflate hit phi errors by this divided by Pt
324  double kalmanMultiScattTerm() const { return kalmanMultiScattTerm_; }
325  // Scale down chi2 in r-phi plane by this factor to improve electron performance.
326  unsigned int kalmanChi2RphiScale() const { return kalmanChi2RphiScale_; }
327  //--- Enable Higher order corrections
328  // Treat z uncertainty in tilted barrel modules correctly.
329  bool kalmanHOtilted() const { return kalmanHOtilted_; }
330  // Higher order circle explansion terms for low Pt.
331  bool kalmanHOhelixExp() const { return kalmanHOhelixExp_; }
332  // Alpha correction for non-radial 2S endcap strips. (0=disable correction, 1=correct with offset, 2=correct with non-diagonal stub covariance matrix).
333  unsigned int kalmanHOalpha() const { return kalmanHOalpha_; }
334  // Projection from (r,phi) to (z,phi) for endcap 2S modules. (0=disable correction, 1=correct with offset, 2=correct with non-diagonal stub covariance matrix).
335  unsigned int kalmanHOprojZcorr() const { return kalmanHOprojZcorr_; }
336  // Use approx calc to account for non-radial endcap 2S modules corresponding to current FW, with no special treatment for tilted modules.
337  bool kalmanHOfw() const { return kalmanHOfw_; }
338 
339  //=== Treatment of dead modules.
340  //
341  // Emulate dead/inefficient modules using the StubKiller code, with stubs killed according to the scenarios of the Stress Test group.
342  // (0=Don't kill any stubs; 1-5 = Scenarios described in StubKiller.cc).
343  unsigned int killScenario() const { return killScenario_; }
344  // Modify TMTT tracking to try to recover tracking efficiency in presence of dead modules. (Does nothing if KillScenario = 0).
345  bool killRecover() const { return killRecover_; }
346 
347  //=== Track fit digitisation configuration for various track fitters
348 
349  // These are used only for SimpleLR4 track fitter.
350  bool slr_skipTrackDigi() const { return slr_skipTrackDigi_; }
351  unsigned int slr_oneOver2rBits() const { return slr_oneOver2rBits_; }
352  double slr_oneOver2rRange() const { return slr_oneOver2rRange_; }
353  unsigned int slr_d0Bits() const { return slr_d0Bits_; }
354  double slr_d0Range() const { return slr_d0Range_; }
355  unsigned int slr_phi0Bits() const { return slr_phi0Bits_; }
356  double slr_phi0Range() const { return slr_phi0Range_; }
357  unsigned int slr_z0Bits() const { return slr_z0Bits_; }
358  double slr_z0Range() const { return slr_z0Range_; }
359  unsigned int slr_tanlambdaBits() const { return slr_tanlambdaBits_; }
360  double slr_tanlambdaRange() const { return slr_tanlambdaRange_; }
361  unsigned int slr_chisquaredBits() const { return slr_chisquaredBits_; }
362  double slr_chisquaredRange() const { return slr_chisquaredRange_; }
363  // These are used for KF track fitter and for all other track fitters (though are probably not right for other track fitters ...)
364  bool kf_skipTrackDigi() const { return kf_skipTrackDigi_; }
365  unsigned int kf_oneOver2rBits() const { return kf_oneOver2rBits_; }
366  double kf_oneOver2rRange() const { return kf_oneOver2rRange_; }
367  unsigned int kf_d0Bits() const { return kf_d0Bits_; }
368  double kf_d0Range() const { return kf_d0Range_; }
369  unsigned int kf_phi0Bits() const { return kf_phi0Bits_; }
370  double kf_phi0Range() const { return kf_phi0Range_; }
371  unsigned int kf_z0Bits() const { return kf_z0Bits_; }
372  double kf_z0Range() const { return kf_z0Range_; }
373  unsigned int kf_tanlambdaBits() const { return kf_tanlambdaBits_; }
374  double kf_tanlambdaRange() const { return kf_tanlambdaRange_; }
375  unsigned int kf_chisquaredBits() const { return kf_chisquaredBits_; }
376  double kf_chisquaredRange() const { return kf_chisquaredRange_; }
377  const std::vector<double>& kf_chisquaredBinEdges() const { return kf_chisquaredBinEdges_; }
378  // Skip track digitisation when fitted is not SimpleLR4 or KF?
379  bool other_skipTrackDigi() const { return other_skipTrackDigi_; }
380 
381  //=== Debug printout & plots
382 
383  // When making helix parameter resolution plots, only use particles from the physics event (True)
384  // or also use particles from pileup (False) ?
385  bool resPlotOpt() const { return resPlotOpt_; }
386 
387  // Booleain indicating if an output EDM file will be written.
388  // N.B. This parameter does not appear inside TMTrackProducer_Defaults_cfi.py . It is created inside tmtt_tf_analysis_cfg.py .
389  bool writeOutEdmFile() const { return writeOutEdmFile_; }
390 
391  //=== Hard-wired constants
392 
393  double cSpeed() const { return 1.0e8 * CLHEP::c_light; } // Speed of light, with (mm/ns) to (cm/s)
394  // B*c/1E11 - converts q/Pt to 1/radius_of_curvature
395  double invPtToInvR() const { return (this->magneticField()) * (this->cSpeed()) / 1.0E13; }
396  // B*c/2E11 - converts q/Pt to track angle at some radius from beamline.
397  double invPtToDphi() const { return (this->magneticField()) * (this->cSpeed()) / 2.0E13; }
398  //=== Set and get B-field value (mutable) in Tesla.
399  // N.B. This must bet std::set for each run, and can't be initialized at the beginning of the job.
401  float magneticField() const {
402  if (magneticField_ == 0.)
403  throw cms::Exception("LogicError") << "Settings: You attempted to access the B field before it was initialized";
404  return magneticField_;
405  }
406 
407  //=== Settings used for HYBRID TRACKING code only.
408  // Is hybrid tracking in use?
409  bool hybrid() const { return hybrid_; }
410 
411  private:
412  // Input tags for ES & ED data.
417 
423 
424  // Parameter std::sets for differents types of configuration parameter.
441 
442  // General settings
446 
447  // Cuts on truth tracking particles.
448  double genMinPt_;
450  double genMaxVertR_;
451  double genMaxVertZ_;
452  double genMaxD0_;
453  double genMaxZ0_;
454  std::vector<int> genPdgIds_;
455  unsigned int genMinStubLayers_;
456 
457  // Cuts applied to stubs before arriving in L1 track finding board.
458  unsigned int degradeBendRes_;
459  double maxStubEta_;
462  double bendCut_;
465 
466  // Optional stub digitization.
468  unsigned int phiSectorBits_;
469  unsigned int phiSBits_;
470  double phiSRange_;
471  unsigned int rtBits_;
472  double rtRange_;
473  unsigned int zBits_;
474  double zRange_;
475  unsigned int phiNBits_;
476  double phiNRange_;
477  unsigned int bendBits_;
478 
479  // Tracker module type for FW.
480  std::vector<double> pitchVsType_;
481  std::vector<double> spaceVsType_;
482  std::vector<bool> barrelVsType_;
483  std::vector<bool> psVsType_;
484  std::vector<bool> tiltedVsType_;
485  std::vector<unsigned int> barrelVsTypeTmp_;
486  std::vector<unsigned int> psVsTypeTmp_;
487  std::vector<unsigned int> tiltedVsTypeTmp_;
488 
489  // Configuration of Geometric Processor.
493 
494  // Definition of phi sectors.
495  unsigned int numPhiNonants_;
496  unsigned int numPhiSectors_;
502 
503  // Definition of eta sectors.
504  std::vector<double> etaRegions_;
505  double chosenRofZ_;
506  double beamWindowZ_;
508 
509  // r-phi Hough transform array specifications.
510  double houghMinPt_;
511  unsigned int houghNbinsPt_;
512  unsigned int houghNbinsPhi_;
515  unsigned int numSubSecsEta_;
516  unsigned int shape_;
518  unsigned int miniHoughNbinsPt_;
519  unsigned int miniHoughNbinsPhi_;
523  unsigned int miniHoughLoadBalance_;
524 
525  // Rules governing how stubs are filled into the r-phi Hough Transform array.
526  unsigned int killSomeHTCellsRphi_;
528  unsigned int maxStubsInCell_;
531  unsigned int busySectorNumStubs_;
532  std::vector<unsigned int> busySectorMbinRanges_;
533  std::vector<unsigned int> busySectorMbinOrder_;
536  unsigned int muxOutputsHT_;
537  std::vector<unsigned int> etaRegWhitelist_;
538 
539  // Options controlling r-z track filters (or any other track filters run after the Hough transform, as opposed to inside it).
541  double seedResCut_;
543  unsigned int maxSeedCombinations_;
545  unsigned int maxSeedsPerStub_;
547  unsigned int minFilterLayers_;
548 
549  // Rules for deciding when the track-finding has found an L1 track candidate
550  unsigned int minStubLayers_;
552  std::vector<unsigned int> etaSecsReduceLayers_;
554 
555  // Specification of algorithm to eliminate duplicate tracks
556  unsigned int dupTrkAlgFit_;
557 
558  // Rules for deciding when a reconstructed L1 track matches a MC truth particle (i.e. tracking particle).
561  unsigned int minNumMatchLayers_;
562  unsigned int minNumMatchPSLayers_;
564 
565  // Track Fitting Settings
566  std::vector<std::string> trackFitters_;
567  std::vector<std::string> useRZfilter_;
571  //
576  //
578  unsigned int dividerBitsHelix_;
579  unsigned int dividerBitsHelixZ_;
580  unsigned int ShiftingBitsDenRPhi_;
581  unsigned int ShiftingBitsDenRZ_;
582  unsigned int ShiftingBitsPt_;
583  unsigned int ShiftingBitsPhi_;
584 
585  unsigned int ShiftingBitsLambda_;
586  unsigned int ShiftingBitsZ0_;
587  double slr_chi2cut_;
588  double residualCut_;
589  //
591  unsigned int kalmanMinNumStubs_;
592  unsigned int kalmanMaxNumStubs_;
597  unsigned int kalmanMaxStubsEasy_;
599 
600  std::vector<double> kfLayerVsPtToler_;
601  std::vector<double> kfLayerVsD0Cut5_;
602  std::vector<double> kfLayerVsZ0Cut5_;
603  std::vector<double> kfLayerVsZ0Cut4_;
604  std::vector<double> kfLayerVsChiSq5_;
605  std::vector<double> kfLayerVsChiSq4_;
606 
609  unsigned int kalmanChi2RphiScale_;
612  unsigned int kalmanHOalpha_;
613  unsigned int kalmanHOprojZcorr_;
615 
616  // Treatment of dead modules.
617  unsigned int killScenario_;
619 
620  // Track digitisation configuration for various track fitters
622  unsigned int slr_oneOver2rBits_;
625  unsigned int slr_d0Bits_;
626  double slr_d0Range_;
627  unsigned int slr_phi0Bits_;
629  unsigned int slr_z0Bits_;
630  double slr_z0Range_;
631  unsigned int slr_tanlambdaBits_;
633  unsigned int slr_chisquaredBits_;
635  //
637  unsigned int kf_oneOver2rBits_;
640  unsigned int kf_d0Bits_;
641  double kf_d0Range_;
642  unsigned int kf_phi0Bits_;
644  unsigned int kf_z0Bits_;
645  double kf_z0Range_;
646  unsigned int kf_tanlambdaBits_;
648  unsigned int kf_chisquaredBits_;
650  std::vector<double> kf_chisquaredBinEdges_;
651  //
653 
654  // Debug printout
656 
657  // Boolean indicating an an EDM output file will be written.
659 
660  // B-field in Tesla
661  mutable std::atomic<float> magneticField_;
662 
663  // Hybrid tracking
664  bool hybrid_;
665  };
666 
667 } // namespace tmtt
668 
669 #endif
bool zTrkSectorCheck() const
Definition: Settings.h:209
const edm::InputTag tpInputTag_
Definition: Settings.h:419
unsigned int kalmanMaxStubsPerLayer() const
Definition: Settings.h:322
double maxStubEta_
Definition: Settings.h:459
bool kalmanHOhelixExp() const
Definition: Settings.h:331
std::atomic< float > magneticField_
Definition: Settings.h:661
unsigned int phiSBits_
Definition: Settings.h:469
double kf_tanlambdaRange() const
Definition: Settings.h:374
unsigned int slr_oneOver2rBits() const
Definition: Settings.h:351
double phiNRange() const
Definition: Settings.h:91
double invPtToDphi() const
Definition: Settings.h:397
std::vector< double > etaRegions_
Definition: Settings.h:504
bool miniHTstage() const
Definition: Settings.h:149
unsigned int killSomeHTCellsRphi() const
Definition: Settings.h:166
unsigned int maxGoodSeedCombinations_
Definition: Settings.h:544
double kalmanMultiScattTerm_
Definition: Settings.h:608
unsigned int miniHoughNbinsPt_
Definition: Settings.h:518
unsigned int ShiftingBitsDenRPhi_
Definition: Settings.h:580
unsigned int kalmanMaxStubsPerLayer_
Definition: Settings.h:607
bool enableDigitize() const
Definition: Settings.h:80
unsigned int minFilterLayers_
Definition: Settings.h:547
edm::ParameterSet stubDigitize_
Definition: Settings.h:427
double kf_oneOver2rRange_
Definition: Settings.h:638
double genMaxZ0() const
Definition: Settings.h:53
double kf_phi0Range() const
Definition: Settings.h:370
bool detailedFitOutput() const
Definition: Settings.h:253
double generalResidualCut_
Definition: Settings.h:574
unsigned int kf_d0Bits() const
Definition: Settings.h:367
unsigned int slr_oneOver2rBits_
Definition: Settings.h:622
double genMaxD0_
Definition: Settings.h:452
unsigned int numPhiNonants_
Definition: Settings.h:495
unsigned int kalmanHOalpha() const
Definition: Settings.h:333
const std::vector< double > & kfLayerVsZ0Cut4() const
Definition: Settings.h:318
unsigned int ShiftingBitsDenRZ_
Definition: Settings.h:581
double maxPtToMerge2x2_
Definition: Settings.h:514
unsigned int numSubSecsEta_
Definition: Settings.h:515
unsigned int phiSectorBits() const
Definition: Settings.h:82
unsigned int ShiftingBitsPhi_
Definition: Settings.h:583
unsigned int shape() const
Definition: Settings.h:147
double slr_phi0Range() const
Definition: Settings.h:356
bool trackFitCheat() const
Definition: Settings.h:255
bool resPlotOpt_
Definition: Settings.h:655
std::vector< bool > barrelVsType_
Definition: Settings.h:482
bool killLowPtStubs() const
Definition: Settings.h:66
unsigned int numPhiNonants() const
Definition: Settings.h:109
const std::vector< double > & kfLayerVsChiSq4() const
Definition: Settings.h:320
unsigned int miniHoughNbinsPhi() const
Definition: Settings.h:152
double genMaxVertZ_
Definition: Settings.h:451
double assumedPhiTrkRes() const
Definition: Settings.h:118
unsigned int busySectorNumStubs_
Definition: Settings.h:531
double kf_oneOver2rMult_
Definition: Settings.h:639
unsigned int maxGoodSeedCombinations() const
Definition: Settings.h:205
unsigned int miniHoughLoadBalance() const
Definition: Settings.h:160
bool kalmanHOfw_
Definition: Settings.h:614
double slr_d0Range_
Definition: Settings.h:626
std::vector< unsigned int > barrelVsTypeTmp_
Definition: Settings.h:485
unsigned int ShiftingBitsPt_
Definition: Settings.h:582
double bendCutExtra_
Definition: Settings.h:463
double genMaxAbsEta() const
Definition: Settings.h:49
unsigned int kf_oneOver2rBits() const
Definition: Settings.h:365
unsigned int kalmanMaxSkipLayersHard_
Definition: Settings.h:595
double slr_chi2cut() const
ChiSquare Cut.
Definition: Settings.h:290
double bApprox_intercept() const
Definition: Settings.h:105
bool calcPhiTrkRes_
Definition: Settings.h:501
const std::vector< std::string > & useRZfilter() const
Definition: Settings.h:251
double slr_oneOver2rMult_
Definition: Settings.h:624
float magneticField() const
Definition: Settings.h:401
unsigned int numTrackFitIterations() const
Definition: Settings.h:260
std::vector< unsigned int > psVsTypeTmp_
Definition: Settings.h:486
bool enableMerge2x2_
Definition: Settings.h:513
unsigned int phiNBits() const
Definition: Settings.h:90
double phiNRange_
Definition: Settings.h:476
bool kalmanRemove2PScut_
Definition: Settings.h:594
const std::string & rzFilterName() const
Definition: Settings.h:196
bool useBendFilter_
Definition: Settings.h:527
const edm::ESInputTag magneticFieldInputTag_
Definition: Settings.h:413
unsigned int miniHoughLoadBalance_
Definition: Settings.h:523
unsigned int zBits_
Definition: Settings.h:473
std::vector< std::string > useRZfilter_
Definition: Settings.h:567
bool kalmanHOtilted() const
Definition: Settings.h:329
bool kfUseMaybeLayers_
Definition: Settings.h:598
double phiSRange() const
Definition: Settings.h:84
unsigned int kf_chisquaredBits_
Definition: Settings.h:648
edm::ParameterSet dupTrkRemoval_
Definition: Settings.h:436
unsigned int kalmanHOalpha_
Definition: Settings.h:612
const std::vector< double > & pitchVsType() const
Definition: Settings.h:95
const std::vector< unsigned int > & etaSecsReduceLayers() const
Definition: Settings.h:221
bool kf_skipTrackDigi_
Definition: Settings.h:636
edm::ParameterSet genCuts_
Definition: Settings.h:425
double seedResCut_
Definition: Settings.h:541
bool enableDigitize_
Definition: Settings.h:467
unsigned int killScenario() const
Definition: Settings.h:343
const std::vector< unsigned int > & busySectorMbinRanges() const
Definition: Settings.h:178
unsigned int ShiftingBitsPt() const
Number of bits to reduce the qOverPt parameter numerator calculation weight.
Definition: Settings.h:282
unsigned int houghNbinsPhi_
Definition: Settings.h:512
bool kalmanRemove2PScut() const
Definition: Settings.h:305
unsigned int ShiftingBitsZ0() const
Number of bits to reduce the tanLambda parameter calculation weight.
Definition: Settings.h:288
std::vector< bool > tiltedVsType_
Definition: Settings.h:484
float miniHoughDontKillMinPt() const
Definition: Settings.h:158
edm::ParameterSet stubCuts_
Definition: Settings.h:426
bool printStubWindows() const
Definition: Settings.h:68
double chosenRofZ_
Definition: Settings.h:505
unsigned int miniHoughNbinsPhi_
Definition: Settings.h:519
double kf_z0Range() const
Definition: Settings.h:372
bool useBendFilter() const
Definition: Settings.h:168
const std::vector< double > & kfLayerVsD0Cut5() const
Definition: Settings.h:316
unsigned int killScenario_
Definition: Settings.h:617
unsigned int kalmanMaxStubsEasy() const
Definition: Settings.h:310
bool other_skipTrackDigi() const
Definition: Settings.h:379
std::vector< double > kfLayerVsChiSq4_
Definition: Settings.h:605
bool stubMatchStrict_
Definition: Settings.h:563
double chi2OverNdfCut_
Definition: Settings.h:568
double genMaxAbsEta_
Definition: Settings.h:449
unsigned int kf_phi0Bits() const
Definition: Settings.h:369
unsigned int dividerBitsHelix() const
Number of bits to be used in hardware to compute the division needed to calculate the helix parameter...
Definition: Settings.h:274
unsigned int kf_chisquaredBits() const
Definition: Settings.h:375
unsigned int numEtaRegions() const
Definition: Settings.h:125
void setMagneticField(float magneticField) const
Definition: Settings.h:400
const edm::ESInputTag trackerTopologyInputTag_
Definition: Settings.h:415
unsigned int numTrackFitIterations_
Definition: Settings.h:572
bool killRecover() const
Definition: Settings.h:345
double bendCut() const
Definition: Settings.h:70
unsigned int degradeBendRes_
Definition: Settings.h:458
double zRange() const
Definition: Settings.h:88
edm::ParameterSet rzFilterOpts_
Definition: Settings.h:434
unsigned int slr_tanlambdaBits_
Definition: Settings.h:631
double genMinPt() const
Definition: Settings.h:48
bool digitizeSLR_
Definition: Settings.h:577
edm::ESInputTag trackerGeometryInputTag() const
Definition: Settings.h:27
const std::vector< bool > & psVsType() const
Definition: Settings.h:98
double seedResCut() const
Definition: Settings.h:199
edm::ParameterSet l1TrackDef_
Definition: Settings.h:435
bool orderStubsByBend() const
Definition: Settings.h:76
double chosenRofZ() const
Definition: Settings.h:127
unsigned int ShiftingBitsDenRZ() const
Number of bits to reduce the RZ helix parameter denominator calculation weight.
Definition: Settings.h:280
std::vector< int > genPdgIds_
Definition: Settings.h:454
bool stubMatchStrict() const
Definition: Settings.h:241
bool miniHTstage_
Definition: Settings.h:517
std::vector< unsigned int > etaSecsReduceLayers_
Definition: Settings.h:552
double chosenRofPhi_
Definition: Settings.h:497
bool resPlotOpt() const
Definition: Settings.h:385
unsigned int bendBits() const
Definition: Settings.h:92
bool useApproxB() const
Definition: Settings.h:103
bool kalmanHOtilted_
Definition: Settings.h:610
unsigned int slr_d0Bits_
Definition: Settings.h:625
edm::ParameterSet trackDigi_
Definition: Settings.h:440
unsigned kalmanDebugLevel() const
Definition: Settings.h:297
double genMaxVertR() const
Definition: Settings.h:50
const std::vector< int > & genPdgIds() const
Definition: Settings.h:54
unsigned int phiSBits() const
Definition: Settings.h:83
unsigned int kf_oneOver2rBits_
Definition: Settings.h:637
bool enableHistos() const
Definition: Settings.h:42
unsigned int houghNbinsPt() const
Definition: Settings.h:137
bool killTrackFitWorstHit_
Definition: Settings.h:573
double kf_z0Range_
Definition: Settings.h:645
unsigned int busySectorNumStubs() const
Definition: Settings.h:176
double bendCut_
Definition: Settings.h:462
double cSpeed() const
Definition: Settings.h:393
double rtRange_
Definition: Settings.h:472
unsigned int maxStubsInCell_
Definition: Settings.h:528
bool enableMCtruth_
Definition: Settings.h:443
unsigned int kf_phi0Bits_
Definition: Settings.h:642
double houghMinPt_
Definition: Settings.h:510
double slr_z0Range_
Definition: Settings.h:630
std::string rzFilterName_
Definition: Settings.h:540
double slr_z0Range() const
Definition: Settings.h:358
double genMaxVertZ() const
Definition: Settings.h:51
bool killTrackFitWorstHit() const
Definition: Settings.h:262
bool kalmanAddBeamConstr_
Definition: Settings.h:593
bool kalmanAddBeamConstr() const
Definition: Settings.h:303
std::vector< double > kf_chisquaredBinEdges_
Definition: Settings.h:650
const std::vector< unsigned int > & busySectorMbinOrder() const
Definition: Settings.h:181
unsigned int slr_z0Bits_
Definition: Settings.h:629
double slr_phi0Range_
Definition: Settings.h:628
bool detailedFitOutput_
Definition: Settings.h:569
unsigned int maxStubsInCellMiniHough() const
Definition: Settings.h:172
unsigned int numSubSecsEta() const
Definition: Settings.h:145
edm::ParameterSet phiSectors_
Definition: Settings.h:430
unsigned int dividerBitsHelixZ_
Definition: Settings.h:579
unsigned int kf_tanlambdaBits_
Definition: Settings.h:646
bool allowOver2EtaSecs() const
Definition: Settings.h:131
unsigned int kalmanHOprojZcorr_
Definition: Settings.h:613
double maxPtToMerge2x2() const
Definition: Settings.h:143
bool allowOver2EtaSecs_
Definition: Settings.h:507
std::vector< double > kfLayerVsChiSq5_
Definition: Settings.h:604
bool useStubPhiTrk() const
Definition: Settings.h:116
unsigned int zBits() const
Definition: Settings.h:87
unsigned int ShiftingBitsLambda() const
Number of bits to reduce the tanLambda parameter calculation weight.
Definition: Settings.h:286
unsigned int maxSeedsPerStub_
Definition: Settings.h:545
double slr_chisquaredRange_
Definition: Settings.h:634
bool miniHoughDontKill_
Definition: Settings.h:521
double genMaxZ0_
Definition: Settings.h:453
const std::vector< bool > & barrelVsType() const
Definition: Settings.h:97
unsigned int rtBits_
Definition: Settings.h:471
edm::ParameterSet htArraySpecRphi_
Definition: Settings.h:432
double kalmanMultiScattTerm() const
Definition: Settings.h:324
std::vector< std::string > trackFitters_
Definition: Settings.h:566
double zRange_
Definition: Settings.h:474
std::vector< double > kfLayerVsPtToler_
Definition: Settings.h:600
double kf_chisquaredRange_
Definition: Settings.h:649
unsigned int minStubLayers_
Definition: Settings.h:550
edm::InputTag tpInputTag() const
Definition: Settings.h:32
std::vector< double > kfLayerVsZ0Cut5_
Definition: Settings.h:602
bool enableOutputIntermediateTTTracks_
Definition: Settings.h:445
const edm::InputTag stubInputTag_
Definition: Settings.h:418
bool useStubPhi() const
Definition: Settings.h:114
const edm::ESInputTag ttStubAlgoInputTag_
Definition: Settings.h:416
unsigned int slr_chisquaredBits() const
Definition: Settings.h:361
unsigned int houghNbinsPt_
Definition: Settings.h:511
bool busyInputSectorKill_
Definition: Settings.h:534
double kf_tanlambdaRange_
Definition: Settings.h:647
edm::ESInputTag ttStubAlgoInputTag() const
Definition: Settings.h:29
unsigned int ShiftingBitsPhi() const
Number of bits to reduce the PhiT parameter numerator calculation weight.
Definition: Settings.h:284
unsigned int numPhiSectors_
Definition: Settings.h:496
double bApprox_gradient() const
Definition: Settings.h:104
edm::ParameterSet htFillingRphi_
Definition: Settings.h:433
bool writeOutEdmFile() const
Definition: Settings.h:389
std::vector< double > kfLayerVsZ0Cut4_
Definition: Settings.h:603
unsigned int phiSectorBits_
Definition: Settings.h:468
unsigned int kalmanMinNumStubs() const
Definition: Settings.h:299
double bApprox_gradient_
Definition: Settings.h:491
unsigned int maxSeedsPerStub() const
Definition: Settings.h:207
edm::InputTag genJetInputTag() const
Definition: Settings.h:35
unsigned int busyInputSectorNumStubs() const
Definition: Settings.h:185
const edm::InputTag clusterTruthInputTag_
Definition: Settings.h:421
unsigned int kalmanMaxStubsEasy_
Definition: Settings.h:597
double bendCutExtra() const
Definition: Settings.h:74
bool miniHoughDontKill() const
Definition: Settings.h:156
bool writeOutEdmFile_
Definition: Settings.h:658
std::vector< bool > psVsType_
Definition: Settings.h:483
unsigned int kalmanMaxSkipLayersEasy() const
Definition: Settings.h:308
unsigned int slr_d0Bits() const
Definition: Settings.h:353
unsigned int maxSeedCombinations() const
Definition: Settings.h:203
double chosenRofPhi() const
Definition: Settings.h:112
const edm::ESInputTag trackerGeometryInputTag_
Definition: Settings.h:414
bool useStubPhiTrk_
Definition: Settings.h:499
unsigned int busyInputSectorNumStubs_
Definition: Settings.h:535
double slr_oneOver2rRange_
Definition: Settings.h:623
double slr_oneOver2rRange() const
Definition: Settings.h:352
double minFracMatchStubsOnReco() const
Definition: Settings.h:234
std::vector< unsigned int > etaRegWhitelist_
Definition: Settings.h:537
bool zTrkSectorCheck_
Definition: Settings.h:546
unsigned int genMinStubLayers() const
Definition: Settings.h:56
bool keepAllSeed() const
Definition: Settings.h:201
float miniHoughMinPt() const
Definition: Settings.h:154
unsigned int kalmanMaxNumStubs() const
Definition: Settings.h:301
std::vector< double > kfLayerVsD0Cut5_
Definition: Settings.h:601
unsigned int slr_tanlambdaBits() const
Definition: Settings.h:359
double genMaxD0() const
Definition: Settings.h:52
unsigned int muxOutputsHT_
Definition: Settings.h:536
edm::ESInputTag magneticFieldInputTag() const
Definition: Settings.h:26
bool kalmanHOfw() const
Definition: Settings.h:337
unsigned int kalmanChi2RphiScale_
Definition: Settings.h:609
bool trackFitCheat_
Definition: Settings.h:570
edm::ParameterSet etaSectors_
Definition: Settings.h:431
double maxStubEta() const
Definition: Settings.h:64
unsigned int minNumMatchPSLayers() const
Definition: Settings.h:239
bool printStubWindows_
Definition: Settings.h:461
unsigned int dividerBitsHelix_
Definition: Settings.h:578
double miniHoughDontKillMinPt_
Definition: Settings.h:522
unsigned int shape_
Definition: Settings.h:516
bool enableOutputIntermediateTTTracks() const
Definition: Settings.h:44
=== This is the base class for the linearised chi-squared track fit algorithms.
Definition: Array2D.h:16
double slr_d0Range() const
Definition: Settings.h:354
unsigned int minNumMatchLayers_
Definition: Settings.h:561
bool enableMerge2x2() const
Definition: Settings.h:141
unsigned int genMinStubLayers_
Definition: Settings.h:455
unsigned int kalmanMaxSkipLayersHard() const
Definition: Settings.h:307
double slr_chisquaredRange() const
Definition: Settings.h:362
double ResidualCut() const
Cut on RPhi Residual (radians)
Definition: Settings.h:292
const edm::InputTag genJetInputTag_
Definition: Settings.h:422
edm::InputTag clusterTruthInputTag() const
Definition: Settings.h:34
edm::ParameterSet geometricProc_
Definition: Settings.h:429
double assumedPhiTrkRes_
Definition: Settings.h:500
double slr_tanlambdaRange() const
Definition: Settings.h:360
std::vector< double > spaceVsType_
Definition: Settings.h:481
unsigned kalmanDebugLevel_
Definition: Settings.h:590
double kf_oneOver2rRange() const
Definition: Settings.h:366
bool orderStubsByBend_
Definition: Settings.h:464
unsigned int dupTrkAlgFit_
Definition: Settings.h:556
bool slr_skipTrackDigi_
Definition: Settings.h:621
unsigned int miniHoughNbinsPt() const
Definition: Settings.h:151
bool digitizeSLR() const
Definition: Settings.h:272
const std::vector< double > & kf_chisquaredBinEdges() const
Definition: Settings.h:377
edm::ParameterSet deadModuleOpts_
Definition: Settings.h:439
unsigned int maxStubsInCell() const
Definition: Settings.h:170
bool useStubPhi_
Definition: Settings.h:498
const std::vector< double > & kfLayerVsPtToler() const
Definition: Settings.h:315
double houghMinPt() const
Definition: Settings.h:135
edm::InputTag stubTruthInputTag() const
Definition: Settings.h:33
double residualCut_
Definition: Settings.h:588
bool keepAllSeed_
Definition: Settings.h:542
double minFracMatchStubsOnTP_
Definition: Settings.h:560
double killingResidualCut_
Definition: Settings.h:575
unsigned int ShiftingBitsZ0_
Definition: Settings.h:586
bool reduceLayerID_
Definition: Settings.h:553
double slr_tanlambdaRange_
Definition: Settings.h:632
std::vector< unsigned int > busySectorMbinRanges_
Definition: Settings.h:532
unsigned int minStubLayers() const
Definition: Settings.h:216
unsigned int ShiftingBitsLambda_
Definition: Settings.h:585
double miniHoughMinPt_
Definition: Settings.h:520
const std::vector< double > & kfLayerVsZ0Cut5() const
Definition: Settings.h:317
bool slr_skipTrackDigi() const
Definition: Settings.h:350
std::vector< double > pitchVsType_
Definition: Settings.h:480
double genMaxVertR_
Definition: Settings.h:450
unsigned int kalmanMinNumStubs_
Definition: Settings.h:591
unsigned int bendBits_
Definition: Settings.h:477
bool enableMCtruth() const
Definition: Settings.h:40
unsigned int minFilterLayers() const
Definition: Settings.h:211
double minFracMatchStubsOnReco_
Definition: Settings.h:559
double kf_phi0Range_
Definition: Settings.h:643
bool hybrid() const
Definition: Settings.h:409
std::vector< unsigned int > busySectorMbinOrder_
Definition: Settings.h:533
double slr_chi2cut_
Definition: Settings.h:587
bool killLowPtStubs_
Definition: Settings.h:460
unsigned int muxOutputsHT() const
Definition: Settings.h:189
unsigned int slr_phi0Bits_
Definition: Settings.h:627
bool reduceLayerID() const
Definition: Settings.h:223
bool busySectorKill() const
Definition: Settings.h:175
unsigned int kalmanHOprojZcorr() const
Definition: Settings.h:335
unsigned int kf_tanlambdaBits() const
Definition: Settings.h:373
double kf_d0Range() const
Definition: Settings.h:368
double kf_chisquaredRange() const
Definition: Settings.h:376
unsigned int slr_phi0Bits() const
Definition: Settings.h:355
edm::ParameterSet trackFitSettings_
Definition: Settings.h:438
bool isHTRPhiEtaRegWhitelisted(unsigned const iEtaReg) const
Definition: Settings.cc:467
bool kf_skipTrackDigi() const
Definition: Settings.h:364
unsigned int kalmanChi2RphiScale() const
Definition: Settings.h:326
unsigned int kf_d0Bits_
Definition: Settings.h:640
unsigned int maxSeedCombinations_
Definition: Settings.h:543
bool enableHistos_
Definition: Settings.h:444
double phiSRange_
Definition: Settings.h:470
bool other_skipTrackDigi_
Definition: Settings.h:652
const std::vector< std::string > & trackFitters() const
Definition: Settings.h:248
double generalResidualCut() const
Definition: Settings.h:266
double beamWindowZ() const
Definition: Settings.h:129
bool killRecover_
Definition: Settings.h:618
const std::vector< double > & kfLayerVsChiSq5() const
Definition: Settings.h:319
bool calcPhiTrkRes() const
Definition: Settings.h:120
unsigned int kalmanMaxSkipLayersEasy_
Definition: Settings.h:596
unsigned int rtBits() const
Definition: Settings.h:85
double minPtToReduceLayers() const
Definition: Settings.h:219
unsigned int dupTrkAlgFit() const
Definition: Settings.h:228
unsigned int kf_z0Bits() const
Definition: Settings.h:371
unsigned int ShiftingBitsDenRPhi() const
Number of bits to reduce the RPhi helix parameter denominator calculation weight. ...
Definition: Settings.h:277
double killingResidualCut() const
Definition: Settings.h:267
unsigned int minNumMatchPSLayers_
Definition: Settings.h:562
unsigned int kalmanMaxNumStubs_
Definition: Settings.h:592
const std::vector< double > & spaceVsType() const
Definition: Settings.h:96
unsigned int dividerBitsHelixZ() const
Definition: Settings.h:275
unsigned int numPhiSectors() const
Definition: Settings.h:110
bool busyInputSectorKill() const
Definition: Settings.h:184
unsigned int maxStubsInCellMiniHough_
Definition: Settings.h:529
unsigned int slr_z0Bits() const
Definition: Settings.h:357
double beamWindowZ_
Definition: Settings.h:506
bool useApproxB_
Definition: Settings.h:490
unsigned int houghNbinsPhi() const
Definition: Settings.h:139
double minFracMatchStubsOnTP() const
Definition: Settings.h:236
edm::InputTag stubInputTag() const
Definition: Settings.h:31
unsigned int degradeBendRes() const
Definition: Settings.h:62
const std::vector< double > & etaRegions() const
Definition: Settings.h:124
edm::ParameterSet trackerModuleType_
Definition: Settings.h:428
double rtRange() const
Definition: Settings.h:86
bool busySectorKill_
Definition: Settings.h:530
std::vector< unsigned int > tiltedVsTypeTmp_
Definition: Settings.h:487
unsigned int slr_chisquaredBits_
Definition: Settings.h:633
double minPtToReduceLayers_
Definition: Settings.h:551
double genMinPt_
Definition: Settings.h:448
edm::ParameterSet trackMatchDef_
Definition: Settings.h:437
unsigned int minNumMatchLayers() const
Definition: Settings.h:238
bool kfUseMaybeLayers() const
Definition: Settings.h:312
const std::vector< bool > & tiltedVsType() const
Definition: Settings.h:99
const edm::InputTag stubTruthInputTag_
Definition: Settings.h:420
double bApprox_intercept_
Definition: Settings.h:492
double kf_d0Range_
Definition: Settings.h:641
edm::ESInputTag trackerTopologyInputTag() const
Definition: Settings.h:28
unsigned int kf_z0Bits_
Definition: Settings.h:644
double invPtToInvR() const
Definition: Settings.h:395
unsigned int phiNBits_
Definition: Settings.h:475
bool kalmanHOhelixExp_
Definition: Settings.h:611
unsigned int killSomeHTCellsRphi_
Definition: Settings.h:526