CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes | Friends
VersionControl Class Reference

#include <VersionControl.h>

Public Member Functions

void configure_by_fw_version (unsigned fw_version)
 
std::string era () const
 
const edm::ParameterSetgetConfig () const
 
bool useO2O () const
 
int verbose () const
 
 VersionControl (const edm::ParameterSet &iConfig)
 
 ~VersionControl ()
 

Private Attributes

bool bug9BitDPhi_
 
bool bugAmbigThetaWin_
 
bool bugGMTPhi_
 
bool bugME11Dupes_
 
bool bugMode7CLCT_
 
bool bugNegPt_
 
bool bugSameSectorPt0_
 
bool bugSt2PhDiff_
 
int bxShiftCSC_
 
int bxShiftGEM_
 
int bxShiftME0_
 
int bxShiftRPC_
 
int bxWindow_
 
const edm::ParameterSet config_
 
bool duplicateTheta_
 
std::string era_
 
bool fixME11Edges_
 
bool fixMode15HighPt_
 
bool fixZonePhi_
 
bool includeNeighbor_
 
int maxBX_
 
int maxRoadsPerZone_
 
int maxTracks_
 
int minBX_
 
int modeQualVer_
 
std::vector< std::string > pattDefinitions_
 
std::string pbFileName_
 
bool promoteMode7_
 
bool readPtLUTFile_
 
std::vector< std::string > symPattDefinitions_
 
int thetaWindow_
 
int thetaWindowZone0_
 
bool twoStationSameBX_
 
bool useCPPF_
 
bool useCSC_
 
bool useDT_
 
bool useGEM_
 
bool useIRPC_
 
bool useME0_
 
bool useNewZones_
 
bool useO2O_
 
bool useRPC_
 
bool useRun3CCLUT_
 
bool useSecondEarliest_
 
bool useSingleHits_
 
bool useSymPatterns_
 
int verbose_
 
std::vector< int > zoneBoundaries_
 
int zoneOverlap_
 

Friends

class SectorProcessor
 

Detailed Description

Definition at line 8 of file VersionControl.h.

Constructor & Destructor Documentation

◆ VersionControl()

VersionControl::VersionControl ( const edm::ParameterSet iConfig)
explicit

Definition at line 3 of file VersionControl.cc.

3  : config_(iConfig) {
4  // All the configurables from python/simEmtfDigis_cfi.py must be visible to this class, except InputTags.
5  verbose_ = iConfig.getUntrackedParameter<int>("verbosity");
6  useO2O_ = iConfig.getParameter<bool>("FWConfig");
7  era_ = iConfig.getParameter<std::string>("Era");
8  // Run 3 CCLUT
9  useRun3CCLUT_ = iConfig.getParameter<bool>("UseRun3CCLUT");
10 
11  useDT_ = iConfig.getParameter<bool>("DTEnable");
12  useCSC_ = iConfig.getParameter<bool>("CSCEnable");
13  useRPC_ = iConfig.getParameter<bool>("RPCEnable");
14  useIRPC_ = iConfig.getParameter<bool>("IRPCEnable");
15  useCPPF_ = iConfig.getParameter<bool>("CPPFEnable");
16  useGEM_ = iConfig.getParameter<bool>("GEMEnable");
17  useME0_ = iConfig.getParameter<bool>("ME0Enable");
18 
19  minBX_ = iConfig.getParameter<int>("MinBX");
20  maxBX_ = iConfig.getParameter<int>("MaxBX");
21  bxWindow_ = iConfig.getParameter<int>("BXWindow");
22  bxShiftCSC_ = iConfig.getParameter<int>("CSCInputBXShift");
23  bxShiftRPC_ = iConfig.getParameter<int>("RPCInputBXShift");
24  bxShiftGEM_ = iConfig.getParameter<int>("GEMInputBXShift");
25  bxShiftME0_ = iConfig.getParameter<int>("ME0InputBXShift");
26 
27  auto spPCParams16 = iConfig.getParameter<edm::ParameterSet>("spPCParams16");
28  zoneBoundaries_ = spPCParams16.getParameter<std::vector<int> >("ZoneBoundaries");
29  zoneOverlap_ = spPCParams16.getParameter<int>("ZoneOverlap");
30  includeNeighbor_ = spPCParams16.getParameter<bool>("IncludeNeighbor");
31  duplicateTheta_ = spPCParams16.getParameter<bool>("DuplicateTheta");
32  fixZonePhi_ = spPCParams16.getParameter<bool>("FixZonePhi");
33  useNewZones_ = spPCParams16.getParameter<bool>("UseNewZones");
34  fixME11Edges_ = spPCParams16.getParameter<bool>("FixME11Edges");
35 
36  auto spPRParams16 = iConfig.getParameter<edm::ParameterSet>("spPRParams16");
37  pattDefinitions_ = spPRParams16.getParameter<std::vector<std::string> >("PatternDefinitions");
38  symPattDefinitions_ = spPRParams16.getParameter<std::vector<std::string> >("SymPatternDefinitions");
39  useSymPatterns_ = spPRParams16.getParameter<bool>("UseSymmetricalPatterns");
40 
41  auto spTBParams16 = iConfig.getParameter<edm::ParameterSet>("spTBParams16");
42  thetaWindow_ = spTBParams16.getParameter<int>("ThetaWindow");
43  thetaWindowZone0_ = spTBParams16.getParameter<int>("ThetaWindowZone0");
44  useSingleHits_ = spTBParams16.getParameter<bool>("UseSingleHits");
45  bugSt2PhDiff_ = spTBParams16.getParameter<bool>("BugSt2PhDiff");
46  bugME11Dupes_ = spTBParams16.getParameter<bool>("BugME11Dupes");
47  bugAmbigThetaWin_ = spTBParams16.getParameter<bool>("BugAmbigThetaWin");
48  twoStationSameBX_ = spTBParams16.getParameter<bool>("TwoStationSameBX");
49 
50  auto spGCParams16 = iConfig.getParameter<edm::ParameterSet>("spGCParams16");
51  maxRoadsPerZone_ = spGCParams16.getParameter<int>("MaxRoadsPerZone");
52  maxTracks_ = spGCParams16.getParameter<int>("MaxTracks");
53  useSecondEarliest_ = spGCParams16.getParameter<bool>("UseSecondEarliest");
54  bugSameSectorPt0_ = spGCParams16.getParameter<bool>("BugSameSectorPt0");
55 
56  auto spPAParams16 = iConfig.getParameter<edm::ParameterSet>("spPAParams16");
57  readPtLUTFile_ = spPAParams16.getParameter<bool>("ReadPtLUTFile");
58  fixMode15HighPt_ = spPAParams16.getParameter<bool>("FixMode15HighPt");
59  bug9BitDPhi_ = spPAParams16.getParameter<bool>("Bug9BitDPhi");
60  bugMode7CLCT_ = spPAParams16.getParameter<bool>("BugMode7CLCT");
61  bugNegPt_ = spPAParams16.getParameter<bool>("BugNegPt");
62  bugGMTPhi_ = spPAParams16.getParameter<bool>("BugGMTPhi");
63  promoteMode7_ = spPAParams16.getParameter<bool>("PromoteMode7");
64  modeQualVer_ = spPAParams16.getParameter<int>("ModeQualVer");
65  pbFileName_ = spPAParams16.getParameter<std::string>("ProtobufFileName");
66 }

References bug9BitDPhi_, bugAmbigThetaWin_, bugGMTPhi_, bugME11Dupes_, bugMode7CLCT_, bugNegPt_, bugSameSectorPt0_, bugSt2PhDiff_, bxShiftCSC_, bxShiftGEM_, bxShiftME0_, bxShiftRPC_, bxWindow_, duplicateTheta_, era_, fixME11Edges_, fixMode15HighPt_, fixZonePhi_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), includeNeighbor_, maxBX_, maxRoadsPerZone_, maxTracks_, minBX_, modeQualVer_, pattDefinitions_, pbFileName_, promoteMode7_, readPtLUTFile_, simEmtfDigis_cfi::spGCParams16, simEmtfDigis_cfi::spPAParams16, simEmtfDigis_cfi::spPCParams16, simEmtfDigis_cfi::spPRParams16, simEmtfDigis_cfi::spTBParams16, AlCaHLTBitMon_QueryRunRegistry::string, symPattDefinitions_, thetaWindow_, thetaWindowZone0_, twoStationSameBX_, useCPPF_, useCSC_, useDT_, useGEM_, useIRPC_, useME0_, useNewZones_, useO2O_, useRPC_, useRun3CCLUT_, useSecondEarliest_, useSingleHits_, useSymPatterns_, verbose_, zoneBoundaries_, and zoneOverlap_.

◆ ~VersionControl()

VersionControl::~VersionControl ( )

Definition at line 68 of file VersionControl.cc.

68 {}

Member Function Documentation

◆ configure_by_fw_version()

void VersionControl::configure_by_fw_version ( unsigned  fw_version)

Settings for 2018 (by default just use settings in simEmtfDigis_cfi.py) ///

Settings for 2017 (by default just use settings in simEmtfDigis_cfi.py) ///

Settings for all of 2016 (following order in simEmtfDigis_cfi.py) ///

Definition at line 71 of file VersionControl.cc.

71  {
72  if (fw_version == 0 || fw_version == 123456) // fw_version '123456' is from the fake conditions
73  return;
74 
75  // For now, no switches later than FW version 47864 (end-of-year 2016)
76  // Beggining in late 2016, "fw_version" in O2O populated with timestamp, rather than FW version
77  // tm fw_time = gmtime(fw_version); (See https://linux.die.net/man/3/gmtime, https://www.epochconverter.com)
78 
82  if (fw_version >= 1514764800) { // January 1, 2018
83 
84  // Settings for all of 2018 (following order in simEmtfDigis_cfi.py)
85  // BXWindow(2) and BugAmbigThetaWin(F) deployed sometime before stable beams on March 20, not quite sure when - AWB 26.04.18
86  // TwoStationSameBX(T), ThetaWindowZone0(4), and ModeQualVer(2) to be deployed sometime between May 17 and May 31 - AWB 14.05.18
87 
88  // Global parameters
89  // Defaults : CSCEnable(T), RPCEnable(T), GEMEnable(F), Era("Run2_2018"), MinBX(-3), MaxBX(+3), BXWindow(2)
90  // --------------------------------------------------------------------------------------------------------
91  era_ = "Run2_2018"; // Era for CMSSW customization
92  bxWindow_ = 2; // Number of BX whose primitives can be included in the same track
93 
94  // spTBParams16 : Sector processor track-building parameters
95  // Defaults : PrimConvLUT(1), ZoneBoundaries(0,41,49,87,127), ZoneOverlap(2), IncludeNeighbor(T),
96  // DuplicateThteta(T), FixZonePhi(T), UseNewZones(F), FixME11Edges(T)
97  // ------------------------------------------------------------------------------
98 
99  // spPRParams16 : Sector processor pattern-recognition parameters
100  // Defaults : PatternDefinitions(...), SymPatternDefinitions(...), UseSymmetricalPatterns(T)
101  // -----------------------------------------------------------------------------------------
102 
103  // spTBParams16 : Sector processor track-building parameters
104  // Defaults : ThetaWindow(8), ThetaWindowZone0(4), UseSingleHits(F), BugSt2PhDiff(F),
105  // BugME11Dupes(F), BugAmbigThetaWin(F), TwoStationSameBX(T)
106  // ----------------------------------------------------------------------------------
107  thetaWindow_ = 8; // Maximum dTheta between primitives in the same track
108  thetaWindowZone0_ = 4; // Maximum dTheta between primitives in the same track in Zone 0 (ring 1)
109  bugAmbigThetaWin_ = false; // Can allow dThetas outside window when there are 2 LCTs in the same chamber
110  twoStationSameBX_ = true; // Requires the hits in two-station tracks to have the same BX
111 
112  // spGCParams16 : Sector processor ghost-cancellation parameters
113  // Defaults : MaxRoadsPerZone(3), MaxTracks(3), UseSecondEarliest(T), BugSameSectorPt0(F)
114  // --------------------------------------------------------------------------------------
115 
116  // spPAParams16 : Sector processor pt-assignment parameters
117  // Defaults : ReadPtLUTFile(F), FixMode15HighPt(T), Bug9BitDPhi(F), BugMode7CLCT(F),
118  // BugNegPt(F), BugGMTPhi(F), PromoteMode7(F), ModeQualVer(2)
119  // ---------------------------------------------------------------------------------
120  modeQualVer_ = 2; // Version 2 contains modified mode-quality mapping for 2018
121  promoteMode7_ = false; // Assign station 2-3-4 tracks with |eta| > 1.6 SingleMu quality
122 
123  // ___________________________________________________________________________
124  // Versions in 2018 - no external documentation
125  // As of the beginning of 2018 EMTF O2O was broken, not updating the database with online conditions
126  // Firmware version reported for runs before 318841 (June 28) is 1504018578 (Aug. 29, 2017) even though
127  // updates occured in February and March of 2018. May need to re-write history in the database. - AWB 30.06.18
128 
129  if (fw_version < 1529520380) { // June 20, 2018
130  thetaWindowZone0_ = 8; // Maximum dTheta between primitives in the same track in Zone 0 (ring 1)
131  twoStationSameBX_ = false; // Requires the hits in two-station tracks to have the same BX
132  modeQualVer_ = 1; // Version 2 contains modified mode-quality mapping for 2018
133  promoteMode7_ = true; // Assign station 2-3-4 tracks with |eta| > 1.6 SingleMu quality
134  }
135 
136  return;
137  }
138 
142  else if (fw_version >= 50000) {
143  // Settings for all of 2017 (following order in simEmtfDigis_cfi.py)
144 
145  // Global parameters
146  // Defaults : CSCEnable(T), RPCEnable(T), GEMEnable(F), Era("Run2_2018"), MinBX(-3), MaxBX(+3), BXWindow(2)
147  // --------------------------------------------------------------------------------------------------------
148  era_ = "Run2_2017"; // Era for CMSSW customization
149  bxWindow_ = 3; // Number of BX whose primitives can be included in the same track
150 
151  // spTBParams16 : Sector processor track-building parameters
152  // Defaults : PrimConvLUT(1), ZoneBoundaries(0,41,49,87,127), ZoneOverlap(2), IncludeNeighbor(T),
153  // DuplicateThteta(T), FixZonePhi(T), UseNewZones(F), FixME11Edges(T)
154  // ------------------------------------------------------------------------------
155 
156  // spPRParams16 : Sector processor pattern-recognition parameters
157  // Defaults : PatternDefinitions(...), SymPatternDefinitions(...), UseSymmetricalPatterns(T)
158  // -----------------------------------------------------------------------------------------
159 
160  // spTBParams16 : Sector processor track-building parameters
161  // Defaults : ThetaWindow(8), ThetaWindowZone0(4), UseSingleHits(F), BugSt2PhDiff(F),
162  // BugME11Dupes(F), BugAmbigThetaWin(F), TwoStationSameBX(T)
163  // ----------------------------------------------------------------------------------
164  thetaWindow_ = 8; // Maximum dTheta between primitives in the same track
165  thetaWindowZone0_ = 8; // Maximum dTheta between primitives in the same track in Zone 0 (ring 1)
166  bugAmbigThetaWin_ = true; // Can allow dThetas outside window when there are 2 LCTs in the same chamber
167  twoStationSameBX_ = false; // Requires the hits in two-station tracks to have the same BX
168 
169  // spGCParams16 : Sector processor ghost-cancellation parameters
170  // Defaults : MaxRoadsPerZone(3), MaxTracks(3), UseSecondEarliest(T), BugSameSectorPt0(F)
171  // --------------------------------------------------------------------------------------
172 
173  // spPAParams16 : Sector processor pt-assignment parameters
174  // Defaults : ReadPtLUTFile(F), FixMode15HighPt(T), Bug9BitDPhi(F), BugMode7CLCT(F),
175  // BugNegPt(F), BugGMTPhi(F), PromoteMode7(F)
176  // ---------------------------------------------------------------------------------
177  modeQualVer_ = 1; // Version 2 contains modified mode-quality mapping for 2018
178 
179  // ___________________________________________________________________________
180  // Versions in 2017 - no full documentation, can refer to https://twiki.cern.ch/twiki/bin/viewauth/CMS/L1KnownIssues
181 
182  // Before July 9th (runs < 298653), all mode 7 tracks (station 2-3-4) assigned quality 11
183  // July 9th - 29th (runs 298653 - 300087), mode 7 tracks with |eta| > 1.6 in sector -6 assigned quality 12
184  // After July 29th (runs >= 300088), mode 7 track promotion applied in all sectors
185  // For some reason, the FW version in the database is 1496792995, at least for runs >= 298034 (July 4),
186  // which is towards the end of run 2017B (could not check earlier runs). This corresponds to the date "June 6th",
187  // which is a month earlier than the first firmware update to apply this promotion. So something's screwey.
188  // Since July 18 is in the middle of the single-sector-fix period, would like to use a firmware version with
189  // roughly that date. But this may require an intervention in the database. - AWB 04.08.17
190  // Last firmware version in 2017 was 1504018578 (Aug. 29, 2017).
191  if (fw_version >= 1496792995)
192  promoteMode7_ = true; // Assign station 2-3-4 tracks with |eta| > 1.6 SingleMu quality
193 
194  return;
195  }
196 
200  else {
201  // Global parameters
202  // Defaults : CSCEnable(T), RPCEnable(T), GEMEnable(F), Era("Run2_2018"), MinBX(-3), MaxBX(+3), BXWindow(2)
203  // --------------------------------------------------------------------------------------------------------
204  useRPC_ = false; // Use clustered RPC hits from CPPF in track-building
205  era_ = "Run2_2016"; // Era for CMSSW customization
206  // maxBX_ // Depends on FW version, see below
207  bxWindow_ = 3; // Number of BX whose primitives can be included in the same track
208 
209  // spTBParams16 : Sector processor track-building parameters
210  // Defaults : PrimConvLUT(1), ZoneBoundaries(0,41,49,87,127), ZoneOverlap(2), IncludeNeighbor(T),
211  // DuplicateThteta(T), FixZonePhi(T), UseNewZones(F), FixME11Edges(T)
212  // ------------------------------------------------------------------------------
213  // primConvLUT_ // Should be 0 for 2016, set using get_pc_lut_version() from ConditionsHelper.cc
214  // fixZonePhi_ // Depends on FW version, see below
215  fixME11Edges_ = false; // Improved small fraction of buggy LCT coordinate transformations
216 
217  // spPRParams16 : Sector processor pattern-recognition parameters
218  // Defaults : PatternDefinitions(...), SymPatternDefinitions(...), UseSymmetricalPatterns(T)
219  // -----------------------------------------------------------------------------------------
220  // useSymPatterns_ // Depends on FW version, see below
221 
222  // spTBParams16 : Sector processor track-building parameters
223  // Defaults : ThetaWindow(8), ThetaWindowZone0(4), UseSingleHits(F), BugSt2PhDiff(F),
224  // BugME11Dupes(F), BugAmbigThetaWin(F), TwoStationSameBX(T)
225  // ----------------------------------------------------------------------------------
226  thetaWindow_ = 4; // Maximum dTheta between primitives in the same track
227  thetaWindowZone0_ = 4; // Maximum dTheta between primitives in the same track in Zone 0 (ring 1)
228  // bugSt2PhDiff_ // Depends on FW version, see below
229  // bugME11Dupes_ // Depends on FW version, see below
230  bugAmbigThetaWin_ = true; // Can allow dThetas outside window when there are 2 LCTs in the same chamber
231  twoStationSameBX_ = false; // Requires the hits in two-station tracks to have the same BX
232 
233  // spGCParams16 : Sector processor ghost-cancellation parameters
234  // Defaults : MaxRoadsPerZone(3), MaxTracks(3), UseSecondEarliest(T), BugSameSectorPt0(F)
235  // --------------------------------------------------------------------------------------
236  // useSecondEarliest_ // Depends on FW version, see below
237  // bugSameSectorPt0_ // Depends on FW version, see below
238 
239  // spPAParams16 : Sector processor pt-assignment parameters
240  // Defaults : ReadPtLUTFile(F), FixMode15HighPt(T), Bug9BitDPhi(F), BugMode7CLCT(F),
241  // BugNegPt(F), BugGMTPhi(F), PromoteMode7(F)
242  // ---------------------------------------------------------------------------------
243  // fixMode15HighPt_ // Depends on FW version, see below
244  // bug9BitDPhi_ // Depends on FW version, see below
245  // bugMode7CLCT_ // Depends on FW version, see below
246  // bugNegPt_ // Depends on FW version, see below
247  bugGMTPhi_ = true; // Some drift in uGMT phi conversion, off by up to a few degrees
248  modeQualVer_ = 1; // Version 2 contains modified mode-quality mapping for 2018
249 
250  } // End default settings for 2016
251 
252  // ___________________________________________________________________________
253  // Versions in 2016 - refer to docs/EMTF_FW_LUT_versions_2016_draft2.xlsx
254 
255  // 1st_LCT_BX / 2nd_LCT_BX (should also make unpacker configurable - AWB 21.07.17)
256  // FW: Before: Earliest LCT used to assign BX, tracks only cancel within same BX
257  // After: Second-earliest LCT used to assign BX, tracks cancel over 3 BX, improved LCT recovery
258  useSecondEarliest_ = (fw_version < 46773) ? false : true; // Changed Sept. 5
259 
260  // 8_BX_readout / 7_BX_readout
261  // SW: DAQ readout changed from to [-3, +4] BX to [-3, +3] BX
262  maxBX_ = (fw_version < 47109) ? +4 : +3; // Changed Sept. 28
263 
264  // Asymm_patterns / Symm_patterns
265  // FW: Changed from 9 asymmetric patterns to 5 symmetric patterns for track building
266  useSymPatterns_ = (fw_version < 47214) ? false : true; // Changed Oct. 6
267 
268  // HiPt_outlier
269  // LUT: High-pT fix puts outlier LCTs in mode 15 tracks back in a straight line
270  fixMode15HighPt_ = (fw_version < 46650) ? false : true; // Changed July 25
271 
272  // Link_monitor (unpacker only)
273  // FW: Added MPC link monitoring
274 
275  // ___________________________________________________________________________
276  // Bugs
277 
278  // DAQ_ID (unpacker only; should make configurable - AWB 21.07.17)
279  // FW: DAQ ME with output CSC ID range 0 - 8 instead of 1 - 9
280  // SP output ME2_ID, 3_ID, and 4_ID filled with 4, 5, or 6 when they should have been 7, 8, or 9.
281 
282  // ME_ID_FR
283  // FW: Incorrect ME_ID fields in DAQ, wrong FR bits and some dPhi wrap-around in pT LUT address
284  // - Unpacker only, or not worth emulating
285 
286  // DAQ_miss_LCT (unpacker only)
287  // FW: LCTs only output if there was a track in the sector
288 
289  // Sector_pT_0
290  // FW: Only highest-quality track in a sector assigned pT; others assigned pT = 0
291  bugSameSectorPt0_ = (fw_version < 46650) ? true : false; // Fixed July 22
292 
293  // Sector_bad_pT
294  // FW: Tracks sometimes assigned pT of track in previous BX
295  // - This is an ongoing (very rare) bug which occurs when 2 tracks try to access the same "bank" in the pT LUT
296  // It would be very difficult to emulate exactly, but the logic from Alex Madorsky is below
297  // ## macro for detecting same bank address
298  // ## bank and chip must match, and valid flags must be set
299  // ## a and b are indexes 0,1,2
300  // ## [X:Y] are bit portions from ptlut address words
301  // `define sb(a,b) (ptlut_addr[a][29:26] == ptlut_addr[b][29:26] && ptlut_addr[a][5:2] == ptlut_addr[b][5:2] && ptlut_addr_val[a] && ptlut_addr_val[b])
302  // ## This macro is used like this:
303  // if (`sb(0,2) || `sb(1,2)) {disable PT readout for track 2}
304 
305  // DAQ_BX_3_LCT (unpacker only)
306  // SW: LCTs in BX -3 only reported if there was a track in the sector
307  // - not applicable
308 
309  // DAQ_BX_23_LCT (unpacker only)
310  // SW: LCTs in BX -2 and -3 only reported if there was a track in the sector
311  // - not applicable
312 
313  // pT_dPhi_bits
314  // FW: dPhi wrap-around in modes 3, 5, 6, 9, 10, 12
315  bug9BitDPhi_ = (fw_version < 47214) ? true : false; // Fixed Oct. 6
316 
317  // Pattern_phi / ME1_neigh_phi
318  // FW: Pattern phi slightly offset from true LCT phi; also ME3/4 pattern width off
319  // Pattern phi of neighbor hits in ME1 miscalculated
320  fixZonePhi_ = (fw_version < 47214) ? false : true; // Fixed Oct. 6
321 
322  // LCT_station_2
323  // FW: Reduced LCT matching window in station 2, resulting in demoted tracks and inefficiency
324  bugSt2PhDiff_ = (47109 <= fw_version && fw_version < 47249) ? true : false; // Bug introduced Oct. 6, fixed Oct. 19
325 
326  // LCT_theta_dup
327  // FW: LCTs matched to track may take theta value from other LCT in the same chamber
328  bugME11Dupes_ = (fw_version < 47423) ? true : false; // Fixed Nov. 1
329 
330  // LCT_7_10_neg_pT (E)
331  // LUT: Written with incorrect values for mode 7 CLCT, mode 10 random offset, all modes negative (1/pT) set to 3 instead of 511
332  bugMode7CLCT_ = (fw_version < 47864) ? true : false; // Fixed sometime after Nov. 1
333  bugNegPt_ = (fw_version < 47864) ? true : false; // Fixed sometime after Nov. 1
334 }

References bug9BitDPhi_, bugAmbigThetaWin_, bugGMTPhi_, bugME11Dupes_, bugMode7CLCT_, bugNegPt_, bugSameSectorPt0_, bugSt2PhDiff_, bxWindow_, era_, fixME11Edges_, fixMode15HighPt_, fixZonePhi_, maxBX_, modeQualVer_, promoteMode7_, thetaWindow_, thetaWindowZone0_, twoStationSameBX_, useRPC_, useSecondEarliest_, and useSymPatterns_.

Referenced by EMTFSetup::reload().

◆ era()

std::string VersionControl::era ( ) const
inline

Definition at line 20 of file VersionControl.h.

20 { return era_; }

References era_.

Referenced by EMTFSetup::era().

◆ getConfig()

const edm::ParameterSet& VersionControl::getConfig ( ) const
inline

Definition at line 17 of file VersionControl.h.

17 { return config_; }

References config_.

Referenced by EMTFSetup::getConfig().

◆ useO2O()

bool VersionControl::useO2O ( ) const
inline

Definition at line 19 of file VersionControl.h.

19 { return useO2O_; }

References useO2O_.

Referenced by EMTFSetup::useO2O().

◆ verbose()

int VersionControl::verbose ( ) const
inline

Definition at line 18 of file VersionControl.h.

18 { return verbose_; }

References verbose_.

Referenced by EMTFSetup::verbose().

Friends And Related Function Documentation

◆ SectorProcessor

friend class SectorProcessor
friend

Definition at line 22 of file VersionControl.h.

Member Data Documentation

◆ bug9BitDPhi_

bool VersionControl::bug9BitDPhi_
private

Definition at line 57 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ bugAmbigThetaWin_

bool VersionControl::bugAmbigThetaWin_
private

Definition at line 48 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ bugGMTPhi_

bool VersionControl::bugGMTPhi_
private

Definition at line 57 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ bugME11Dupes_

bool VersionControl::bugME11Dupes_
private

Definition at line 48 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ bugMode7CLCT_

bool VersionControl::bugMode7CLCT_
private

Definition at line 57 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ bugNegPt_

bool VersionControl::bugNegPt_
private

Definition at line 57 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ bugSameSectorPt0_

bool VersionControl::bugSameSectorPt0_
private

Definition at line 53 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ bugSt2PhDiff_

bool VersionControl::bugSt2PhDiff_
private

Definition at line 48 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ bxShiftCSC_

int VersionControl::bxShiftCSC_
private

Definition at line 34 of file VersionControl.h.

Referenced by VersionControl().

◆ bxShiftGEM_

int VersionControl::bxShiftGEM_
private

Definition at line 34 of file VersionControl.h.

Referenced by VersionControl().

◆ bxShiftME0_

int VersionControl::bxShiftME0_
private

Definition at line 34 of file VersionControl.h.

Referenced by VersionControl().

◆ bxShiftRPC_

int VersionControl::bxShiftRPC_
private

Definition at line 34 of file VersionControl.h.

Referenced by VersionControl().

◆ bxWindow_

int VersionControl::bxWindow_
private

Definition at line 34 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ config_

const edm::ParameterSet VersionControl::config_
private

Definition at line 26 of file VersionControl.h.

Referenced by getConfig().

◆ duplicateTheta_

bool VersionControl::duplicateTheta_
private

Definition at line 39 of file VersionControl.h.

Referenced by VersionControl().

◆ era_

std::string VersionControl::era_
private

Definition at line 30 of file VersionControl.h.

Referenced by configure_by_fw_version(), era(), and VersionControl().

◆ fixME11Edges_

bool VersionControl::fixME11Edges_
private

Definition at line 39 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ fixMode15HighPt_

bool VersionControl::fixMode15HighPt_
private

Definition at line 56 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ fixZonePhi_

bool VersionControl::fixZonePhi_
private

Definition at line 39 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ includeNeighbor_

bool VersionControl::includeNeighbor_
private

Definition at line 39 of file VersionControl.h.

Referenced by VersionControl().

◆ maxBX_

int VersionControl::maxBX_
private

Definition at line 34 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ maxRoadsPerZone_

int VersionControl::maxRoadsPerZone_
private

Definition at line 51 of file VersionControl.h.

Referenced by VersionControl().

◆ maxTracks_

int VersionControl::maxTracks_
private

Definition at line 51 of file VersionControl.h.

Referenced by VersionControl().

◆ minBX_

int VersionControl::minBX_
private

Definition at line 34 of file VersionControl.h.

Referenced by VersionControl().

◆ modeQualVer_

int VersionControl::modeQualVer_
private

Definition at line 58 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ pattDefinitions_

std::vector<std::string> VersionControl::pattDefinitions_
private

Definition at line 42 of file VersionControl.h.

Referenced by VersionControl().

◆ pbFileName_

std::string VersionControl::pbFileName_
private

Definition at line 59 of file VersionControl.h.

Referenced by VersionControl().

◆ promoteMode7_

bool VersionControl::promoteMode7_
private

Definition at line 57 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ readPtLUTFile_

bool VersionControl::readPtLUTFile_
private

Definition at line 56 of file VersionControl.h.

Referenced by VersionControl().

◆ symPattDefinitions_

std::vector<std::string> VersionControl::symPattDefinitions_
private

Definition at line 42 of file VersionControl.h.

Referenced by VersionControl().

◆ thetaWindow_

int VersionControl::thetaWindow_
private

Definition at line 46 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ thetaWindowZone0_

int VersionControl::thetaWindowZone0_
private

Definition at line 46 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ twoStationSameBX_

bool VersionControl::twoStationSameBX_
private

Definition at line 48 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ useCPPF_

bool VersionControl::useCPPF_
private

Definition at line 33 of file VersionControl.h.

Referenced by VersionControl().

◆ useCSC_

bool VersionControl::useCSC_
private

Definition at line 33 of file VersionControl.h.

Referenced by VersionControl().

◆ useDT_

bool VersionControl::useDT_
private

Definition at line 33 of file VersionControl.h.

Referenced by VersionControl().

◆ useGEM_

bool VersionControl::useGEM_
private

Definition at line 33 of file VersionControl.h.

Referenced by VersionControl().

◆ useIRPC_

bool VersionControl::useIRPC_
private

Definition at line 33 of file VersionControl.h.

Referenced by VersionControl().

◆ useME0_

bool VersionControl::useME0_
private

Definition at line 33 of file VersionControl.h.

Referenced by VersionControl().

◆ useNewZones_

bool VersionControl::useNewZones_
private

Definition at line 39 of file VersionControl.h.

Referenced by VersionControl().

◆ useO2O_

bool VersionControl::useO2O_
private

Definition at line 29 of file VersionControl.h.

Referenced by useO2O(), and VersionControl().

◆ useRPC_

bool VersionControl::useRPC_
private

Definition at line 33 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ useRun3CCLUT_

bool VersionControl::useRun3CCLUT_
private

Definition at line 39 of file VersionControl.h.

Referenced by VersionControl().

◆ useSecondEarliest_

bool VersionControl::useSecondEarliest_
private

Definition at line 52 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ useSingleHits_

bool VersionControl::useSingleHits_
private

Definition at line 47 of file VersionControl.h.

Referenced by VersionControl().

◆ useSymPatterns_

bool VersionControl::useSymPatterns_
private

Definition at line 43 of file VersionControl.h.

Referenced by configure_by_fw_version(), and VersionControl().

◆ verbose_

int VersionControl::verbose_
private

Definition at line 28 of file VersionControl.h.

Referenced by verbose(), and VersionControl().

◆ zoneBoundaries_

std::vector<int> VersionControl::zoneBoundaries_
private

Definition at line 37 of file VersionControl.h.

Referenced by VersionControl().

◆ zoneOverlap_

int VersionControl::zoneOverlap_
private

Definition at line 38 of file VersionControl.h.

Referenced by VersionControl().

VersionControl::bugME11Dupes_
bool bugME11Dupes_
Definition: VersionControl.h:48
VersionControl::modeQualVer_
int modeQualVer_
Definition: VersionControl.h:58
VersionControl::minBX_
int minBX_
Definition: VersionControl.h:34
VersionControl::bugSt2PhDiff_
bool bugSt2PhDiff_
Definition: VersionControl.h:48
VersionControl::bxShiftRPC_
int bxShiftRPC_
Definition: VersionControl.h:34
VersionControl::pattDefinitions_
std::vector< std::string > pattDefinitions_
Definition: VersionControl.h:42
VersionControl::zoneBoundaries_
std::vector< int > zoneBoundaries_
Definition: VersionControl.h:37
VersionControl::bug9BitDPhi_
bool bug9BitDPhi_
Definition: VersionControl.h:57
VersionControl::useDT_
bool useDT_
Definition: VersionControl.h:33
VersionControl::fixMode15HighPt_
bool fixMode15HighPt_
Definition: VersionControl.h:56
VersionControl::promoteMode7_
bool promoteMode7_
Definition: VersionControl.h:57
VersionControl::useRPC_
bool useRPC_
Definition: VersionControl.h:33
VersionControl::useCSC_
bool useCSC_
Definition: VersionControl.h:33
VersionControl::maxRoadsPerZone_
int maxRoadsPerZone_
Definition: VersionControl.h:51
VersionControl::bugSameSectorPt0_
bool bugSameSectorPt0_
Definition: VersionControl.h:53
VersionControl::zoneOverlap_
int zoneOverlap_
Definition: VersionControl.h:38
VersionControl::useNewZones_
bool useNewZones_
Definition: VersionControl.h:39
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
VersionControl::bxShiftCSC_
int bxShiftCSC_
Definition: VersionControl.h:34
VersionControl::useSecondEarliest_
bool useSecondEarliest_
Definition: VersionControl.h:52
simEmtfDigis_cfi.spPRParams16
spPRParams16
Definition: simEmtfDigis_cfi.py:72
VersionControl::symPattDefinitions_
std::vector< std::string > symPattDefinitions_
Definition: VersionControl.h:42
VersionControl::useGEM_
bool useGEM_
Definition: VersionControl.h:33
VersionControl::pbFileName_
std::string pbFileName_
Definition: VersionControl.h:59
VersionControl::bugMode7CLCT_
bool bugMode7CLCT_
Definition: VersionControl.h:57
VersionControl::useO2O_
bool useO2O_
Definition: VersionControl.h:29
simEmtfDigis_cfi.spGCParams16
spGCParams16
Definition: simEmtfDigis_cfi.py:110
simEmtfDigis_cfi.spPAParams16
spPAParams16
Definition: simEmtfDigis_cfi.py:118
edm::ParameterSet
Definition: ParameterSet.h:47
VersionControl::thetaWindow_
int thetaWindow_
Definition: VersionControl.h:46
VersionControl::useIRPC_
bool useIRPC_
Definition: VersionControl.h:33
VersionControl::bugGMTPhi_
bool bugGMTPhi_
Definition: VersionControl.h:57
VersionControl::useRun3CCLUT_
bool useRun3CCLUT_
Definition: VersionControl.h:39
VersionControl::useME0_
bool useME0_
Definition: VersionControl.h:33
VersionControl::useSymPatterns_
bool useSymPatterns_
Definition: VersionControl.h:43
VersionControl::fixME11Edges_
bool fixME11Edges_
Definition: VersionControl.h:39
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
VersionControl::twoStationSameBX_
bool twoStationSameBX_
Definition: VersionControl.h:48
VersionControl::useSingleHits_
bool useSingleHits_
Definition: VersionControl.h:47
VersionControl::era_
std::string era_
Definition: VersionControl.h:30
VersionControl::bxShiftGEM_
int bxShiftGEM_
Definition: VersionControl.h:34
VersionControl::includeNeighbor_
bool includeNeighbor_
Definition: VersionControl.h:39
VersionControl::fixZonePhi_
bool fixZonePhi_
Definition: VersionControl.h:39
VersionControl::verbose_
int verbose_
Definition: VersionControl.h:28
VersionControl::maxTracks_
int maxTracks_
Definition: VersionControl.h:51
VersionControl::maxBX_
int maxBX_
Definition: VersionControl.h:34
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
VersionControl::bxWindow_
int bxWindow_
Definition: VersionControl.h:34
VersionControl::duplicateTheta_
bool duplicateTheta_
Definition: VersionControl.h:39
VersionControl::config_
const edm::ParameterSet config_
Definition: VersionControl.h:26
simEmtfDigis_cfi.spPCParams16
spPCParams16
Definition: simEmtfDigis_cfi.py:60
simEmtfDigis_cfi.spTBParams16
spTBParams16
Definition: simEmtfDigis_cfi.py:99
VersionControl::thetaWindowZone0_
int thetaWindowZone0_
Definition: VersionControl.h:46
VersionControl::bugAmbigThetaWin_
bool bugAmbigThetaWin_
Definition: VersionControl.h:48
VersionControl::bxShiftME0_
int bxShiftME0_
Definition: VersionControl.h:34
VersionControl::readPtLUTFile_
bool readPtLUTFile_
Definition: VersionControl.h:56
VersionControl::useCPPF_
bool useCPPF_
Definition: VersionControl.h:33
VersionControl::bugNegPt_
bool bugNegPt_
Definition: VersionControl.h:57