CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
SectorProcessor Class Reference

#include <SectorProcessor.h>

Public Types

typedef unsigned long long EventNumber_t
 
typedef PatternRecognition::pattern_ref_t pattern_ref_t
 

Public Member Functions

void configure (const GeometryTranslator *tp_geom, const ConditionHelper *cond, const SectorProcessorLUT *lut, PtAssignmentEngine *pt_assign_engine, int verbose, int endcap, int sector, int minBX, int maxBX, int bxWindow, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, std::string era, const std::vector< int > &zoneBoundaries, int zoneOverlap, bool includeNeighbor, bool duplicateTheta, bool fixZonePhi, bool useNewZones, bool fixME11Edges, const std::vector< std::string > &pattDefinitions, const std::vector< std::string > &symPattDefinitions, bool useSymPatterns, int thetaWindow, int thetaWindowZone0, bool useRPC, bool useSingleHits, bool bugSt2PhDiff, bool bugME11Dupes, bool bugAmbigThetaWin, bool twoStationSameBX, int maxRoadsPerZone, int maxTracks, bool useSecondEarliest, bool bugSameSectorPt0, bool readPtLUTFile, bool fixMode15HighPt, bool bug9BitDPhi, bool bugMode7CLCT, bool bugNegPt, bool bugGMTPhi, bool promoteMode7, int modeQualVer)
 
void configure_by_fw_version (unsigned fw_version)
 
void process (EventNumber_t ievent, const TriggerPrimitiveCollection &muon_primitives, EMTFHitCollection &out_hits, EMTFTrackCollection &out_tracks) const
 
void process_single_bx (int bx, const TriggerPrimitiveCollection &muon_primitives, EMTFHitCollection &out_hits, EMTFTrackCollection &out_tracks, std::deque< EMTFHitCollection > &extended_conv_hits, std::deque< EMTFTrackCollection > &extended_best_track_cands, std::map< pattern_ref_t, int > &patt_lifetime_map) const
 
 SectorProcessor ()
 
 ~SectorProcessor ()
 

Private Attributes

bool bug9BitDPhi_
 
bool bugAmbigThetaWin_
 
bool bugGMTPhi_
 
bool bugME11Dupes_
 
bool bugMode7CLCT_
 
bool bugNegPt_
 
bool bugSameSectorPt0_
 
bool bugSt2PhDiff_
 
int bxShiftCSC_
 
int bxShiftGEM_
 
int bxShiftRPC_
 
int bxWindow_
 
const ConditionHelpercond_
 
bool duplicateTheta_
 
int endcap_
 
std::string era_
 
bool fixME11Edges_
 
bool fixMode15HighPt_
 
bool fixZonePhi_
 
bool includeNeighbor_
 
const SectorProcessorLUTlut_
 
int maxBX_
 
int maxRoadsPerZone_
 
int maxTracks_
 
int minBX_
 
int modeQualVer_
 
std::vector< std::string > pattDefinitions_
 
bool promoteMode7_
 
PtAssignmentEnginept_assign_engine_
 
bool readPtLUTFile_
 
int sector_
 
std::vector< std::string > symPattDefinitions_
 
int thetaWindow_
 
int thetaWindowZone0_
 
const GeometryTranslatortp_geom_
 
bool twoStationSameBX_
 
bool useCPPF_
 
bool useNewZones_
 
bool useRPC_
 
bool useSecondEarliest_
 
bool useSingleHits_
 
bool useSymPatterns_
 
int verbose_
 
std::vector< int > zoneBoundaries_
 
int zoneOverlap_
 

Detailed Description

Definition at line 28 of file SectorProcessor.h.

Member Typedef Documentation

typedef unsigned long long SectorProcessor::EventNumber_t

Definition at line 33 of file SectorProcessor.h.

Definition at line 34 of file SectorProcessor.h.

Constructor & Destructor Documentation

SectorProcessor::SectorProcessor ( )
explicit

Definition at line 3 of file SectorProcessor.cc.

3 {}
SectorProcessor::~SectorProcessor ( )

Definition at line 5 of file SectorProcessor.cc.

5 {}

Member Function Documentation

void SectorProcessor::configure ( const GeometryTranslator tp_geom,
const ConditionHelper cond,
const SectorProcessorLUT lut,
PtAssignmentEngine pt_assign_engine,
int  verbose,
int  endcap,
int  sector,
int  minBX,
int  maxBX,
int  bxWindow,
int  bxShiftCSC,
int  bxShiftRPC,
int  bxShiftGEM,
std::string  era,
const std::vector< int > &  zoneBoundaries,
int  zoneOverlap,
bool  includeNeighbor,
bool  duplicateTheta,
bool  fixZonePhi,
bool  useNewZones,
bool  fixME11Edges,
const std::vector< std::string > &  pattDefinitions,
const std::vector< std::string > &  symPattDefinitions,
bool  useSymPatterns,
int  thetaWindow,
int  thetaWindowZone0,
bool  useRPC,
bool  useSingleHits,
bool  bugSt2PhDiff,
bool  bugME11Dupes,
bool  bugAmbigThetaWin,
bool  twoStationSameBX,
int  maxRoadsPerZone,
int  maxTracks,
bool  useSecondEarliest,
bool  bugSameSectorPt0,
bool  readPtLUTFile,
bool  fixMode15HighPt,
bool  bug9BitDPhi,
bool  bugMode7CLCT,
bool  bugNegPt,
bool  bugGMTPhi,
bool  promoteMode7,
int  modeQualVer 
)

Definition at line 7 of file SectorProcessor.cc.

References bug9BitDPhi_, bugAmbigThetaWin_, bugGMTPhi_, bugME11Dupes_, bugMode7CLCT_, bugNegPt_, bugSameSectorPt0_, bugSt2PhDiff_, bxShiftCSC_, bxShiftGEM_, bxShiftRPC_, bxWindow_, cond_, duplicateTheta_, makeMuonMisalignmentScenario::endcap, endcap_, era_, fixME11Edges_, fixMode15HighPt_, fixZonePhi_, includeNeighbor_, lut_, emtf::MAX_ENDCAP, emtf::MAX_TRIGSECTOR, simKBmtfStubs_cfi::maxBX, maxBX_, maxRoadsPerZone_, HLT_2018_cff::maxTracks, maxTracks_, emtf::MIN_ENDCAP, emtf::MIN_TRIGSECTOR, simKBmtfStubs_cfi::minBX, minBX_, modeQualVer_, pattDefinitions_, promoteMode7_, pt_assign_engine_, readPtLUTFile_, sector_, symPattDefinitions_, thetaWindow_, thetaWindowZone0_, tp_geom_, twoStationSameBX_, useNewZones_, useRPC_, useSecondEarliest_, useSingleHits_, useSymPatterns_, verbose, verbose_, zoneBoundaries_, and zoneOverlap_.

50  {
51  if (not(emtf::MIN_ENDCAP <= endcap && endcap <= emtf::MAX_ENDCAP)) {
52  edm::LogError("L1T") << "emtf::MIN_ENDCAP = " << emtf::MIN_ENDCAP << ", emtf::MAX_ENDCAP = " << emtf::MAX_ENDCAP
53  << ", endcap = " << endcap;
54  return;
55  }
56  if (not(emtf::MIN_TRIGSECTOR <= sector && sector <= emtf::MAX_TRIGSECTOR)) {
57  edm::LogError("L1T") << "emtf::MIN_TRIGSECTOR = " << emtf::MIN_TRIGSECTOR
58  << ", emtf::MAX_TRIGSECTOR = " << emtf::MAX_TRIGSECTOR << ", endcap = " << sector;
59  return;
60  }
61  if (not(tp_geom != nullptr)) {
62  edm::LogError("L1T") << "tp_geom = nullptr";
63  return;
64  }
65  if (not(cond != nullptr)) {
66  edm::LogError("L1T") << "cond = nullptr";
67  return;
68  }
69  if (not(lut != nullptr)) {
70  edm::LogError("L1T") << "lut = nullptr";
71  return;
72  }
73  if (not(pt_assign_engine != nullptr)) {
74  edm::LogError("L1T") << "pt_assign_engine = nullptr";
75  return;
76  }
77 
78  tp_geom_ = tp_geom;
79  cond_ = cond;
80  lut_ = lut;
81  pt_assign_engine_ = pt_assign_engine;
82 
83  verbose_ = verbose;
84  endcap_ = endcap;
85  sector_ = sector;
86 
87  minBX_ = minBX;
88  maxBX_ = maxBX;
89  bxWindow_ = bxWindow;
90  bxShiftCSC_ = bxShiftCSC;
91  bxShiftRPC_ = bxShiftRPC;
92  bxShiftGEM_ = bxShiftGEM;
93 
94  era_ = era;
95 
96  zoneBoundaries_ = zoneBoundaries;
97  zoneOverlap_ = zoneOverlap;
98  includeNeighbor_ = includeNeighbor;
99  duplicateTheta_ = duplicateTheta;
100  fixZonePhi_ = fixZonePhi;
101  useNewZones_ = useNewZones;
102  fixME11Edges_ = fixME11Edges;
103 
104  pattDefinitions_ = pattDefinitions;
105  symPattDefinitions_ = symPattDefinitions;
106  useSymPatterns_ = useSymPatterns;
107 
108  thetaWindow_ = thetaWindow;
109  thetaWindowZone0_ = thetaWindowZone0;
110  useRPC_ = useRPC;
111  useSingleHits_ = useSingleHits;
112  bugSt2PhDiff_ = bugSt2PhDiff;
113  bugME11Dupes_ = bugME11Dupes;
114  bugAmbigThetaWin_ = bugAmbigThetaWin;
115  twoStationSameBX_ = twoStationSameBX;
116 
117  maxRoadsPerZone_ = maxRoadsPerZone;
119  useSecondEarliest_ = useSecondEarliest;
120  bugSameSectorPt0_ = bugSameSectorPt0;
121 
122  readPtLUTFile_ = readPtLUTFile;
123  fixMode15HighPt_ = fixMode15HighPt;
124  bug9BitDPhi_ = bug9BitDPhi;
125  bugMode7CLCT_ = bugMode7CLCT;
126  bugNegPt_ = bugNegPt;
127  bugGMTPhi_ = bugGMTPhi;
128  promoteMode7_ = promoteMode7;
129  modeQualVer_ = modeQualVer;
130 }
std::vector< std::string > pattDefinitions_
int MAX_TRIGSECTOR
Definition: Common.h:63
std::vector< int > zoneBoundaries_
const ConditionHelper * cond_
int MIN_ENDCAP
Definition: Common.h:58
std::string era_
std::vector< std::string > symPattDefinitions_
const GeometryTranslator * tp_geom_
static int verbose
int MIN_TRIGSECTOR
Definition: Common.h:62
const SectorProcessorLUT * lut_
PtAssignmentEngine * pt_assign_engine_
int MAX_ENDCAP
Definition: Common.h:59
void SectorProcessor::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 133 of file SectorProcessor.cc.

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

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

Definition at line 402 of file SectorProcessor.cc.

References l1GtPatternGenerator_cfi::bx, bxWindow_, gather_cfg::cout, endcap_, maxBX_, minBX_, dqmiodumpmetadata::n, process_single_bx(), sector_, findQualityFiles::size, and verbose_.

405  {
406  // if (endcap_ == 1 && sector_ == 1) {
407  // std::cout << "\nConfigured with era " << era_ << ", thetaWindowZone0 = " << thetaWindowZone0_ << ", bugAmbigThetaWin = "
408  // << bugAmbigThetaWin_ << ", twoStationSameBX = " << twoStationSameBX_ << ", promoteMode7_ = " << promoteMode7_ << std::endl;
409  // }
410 
411  // List of converted hits, extended from previous BXs
412  // deque (double-ended queue) is similar to a vector, but allows insertion or deletion of elements at both beginning and end
413  std::deque<EMTFHitCollection> extended_conv_hits;
414 
415  // List of best track candidates, extended from previous BXs
416  std::deque<EMTFTrackCollection> extended_best_track_cands;
417 
418  // Map of pattern detector --> lifetime, tracked across BXs
419  std::map<pattern_ref_t, int> patt_lifetime_map;
420 
421  // ___________________________________________________________________________
422  // Run each sector processor for every BX, taking into account the BX window
423 
424  int delayBX = bxWindow_ - 1;
425 
426  for (int bx = minBX_; bx <= maxBX_ + delayBX; ++bx) {
427  if (verbose_ > 0) { // debug
428  std::cout << "Endcap: " << endcap_ << " Sector: " << sector_ << " Event: " << ievent << " BX: " << bx
429  << std::endl;
430  }
431 
433  bx, muon_primitives, out_hits, out_tracks, extended_conv_hits, extended_best_track_cands, patt_lifetime_map);
434 
435  // Drop earliest BX outside of BX window
436  if (bx >= minBX_ + delayBX) {
437  extended_conv_hits.pop_front();
438 
439  int n = emtf::zone_array<int>().size();
440  extended_best_track_cands.erase(extended_best_track_cands.end() - n,
441  extended_best_track_cands.end()); // pop_back
442  }
443  } // end loop over bx
444 
445  return;
446 }
size
Write out results.
void process_single_bx(int bx, const TriggerPrimitiveCollection &muon_primitives, EMTFHitCollection &out_hits, EMTFTrackCollection &out_tracks, std::deque< EMTFHitCollection > &extended_conv_hits, std::deque< EMTFTrackCollection > &extended_best_track_cands, std::map< pattern_ref_t, int > &patt_lifetime_map) const
std::array< T, NUM_ZONES > zone_array
Definition: Common.h:78
void SectorProcessor::process_single_bx ( int  bx,
const TriggerPrimitiveCollection muon_primitives,
EMTFHitCollection out_hits,
EMTFTrackCollection out_tracks,
std::deque< EMTFHitCollection > &  extended_conv_hits,
std::deque< EMTFTrackCollection > &  extended_best_track_cands,
std::map< pattern_ref_t, int > &  patt_lifetime_map 
) const

Definition at line 448 of file SectorProcessor.cc.

References bug9BitDPhi_, bugAmbigThetaWin_, bugGMTPhi_, bugME11Dupes_, bugMode7CLCT_, bugNegPt_, bugSameSectorPt0_, bugSt2PhDiff_, bxShiftCSC_, bxShiftGEM_, bxShiftRPC_, bxWindow_, BestTrackSelection::configure(), SingleHitTrack::configure(), PrimitiveSelection::configure(), AngleCalculation::configure(), PrimitiveConversion::configure(), PtAssignment::configure(), PrimitiveMatching::configure(), PatternRecognition::configure(), duplicateTheta_, endcap_, fixME11Edges_, fixMode15HighPt_, fixZonePhi_, includeNeighbor_, lut_, maxRoadsPerZone_, maxTracks_, PrimitiveSelection::merge(), PrimitiveSelection::merge_no_truncate(), modeQualVer_, pattDefinitions_, SingleHitTrack::process(), BestTrackSelection::process(), AngleCalculation::process(), PrimitiveMatching::process(), PrimitiveSelection::process(), PatternRecognition::process(), PtAssignment::process(), PrimitiveConversion::process(), promoteMode7_, pt_assign_engine_, readPtLUTFile_, sector_, symPattDefinitions_, thetaWindow_, thetaWindowZone0_, tp_geom_, twoStationSameBX_, useNewZones_, useRPC_, useSecondEarliest_, useSingleHits_, useSymPatterns_, verbose_, zoneBoundaries_, and zoneOverlap_.

Referenced by process().

454  {
455  // ___________________________________________________________________________
456  // Configure
457 
458  PrimitiveSelection prim_sel;
459  prim_sel.configure(verbose_,
460  endcap_,
461  sector_,
462  bx,
463  bxShiftCSC_,
464  bxShiftRPC_,
465  bxShiftGEM_,
468  bugME11Dupes_);
469 
470  PrimitiveConversion prim_conv;
471  prim_conv.configure(tp_geom_,
472  lut_,
473  verbose_,
474  endcap_,
475  sector_,
476  bx,
477  bxShiftCSC_,
478  bxShiftRPC_,
479  bxShiftGEM_,
481  zoneOverlap_,
483  fixZonePhi_,
484  useNewZones_,
486  bugME11Dupes_);
487 
488  PatternRecognition patt_recog;
489  patt_recog.configure(verbose_,
490  endcap_,
491  sector_,
492  bx,
493  bxWindow_,
499 
500  PrimitiveMatching prim_match;
502 
503  AngleCalculation angle_calc;
504  angle_calc.configure(verbose_,
505  endcap_,
506  sector_,
507  bx,
508  bxWindow_,
509  thetaWindow_,
514 
515  BestTrackSelection btrack_sel;
516  btrack_sel.configure(
518 
519  SingleHitTrack single_hit;
521 
522  PtAssignment pt_assign;
523  pt_assign.configure(pt_assign_engine_,
524  verbose_,
525  endcap_,
526  sector_,
527  bx,
530  bug9BitDPhi_,
532  bugNegPt_,
533  bugGMTPhi_,
535  modeQualVer_);
536 
537  std::map<int, TriggerPrimitiveCollection> selected_csc_map;
538  std::map<int, TriggerPrimitiveCollection> selected_rpc_map;
539  std::map<int, TriggerPrimitiveCollection> selected_gem_map;
540  std::map<int, TriggerPrimitiveCollection> selected_prim_map;
541  std::map<int, TriggerPrimitiveCollection> inclusive_selected_prim_map;
542 
543  EMTFHitCollection conv_hits; // "converted" hits converted by primitive converter
544  EMTFHitCollection inclusive_conv_hits;
545 
546  emtf::zone_array<EMTFRoadCollection> zone_roads; // each zone has its road collection
547 
548  emtf::zone_array<EMTFTrackCollection> zone_tracks; // each zone has its track collection
549 
550  EMTFTrackCollection best_tracks; // "best" tracks selected from all the zones
551 
552  // ___________________________________________________________________________
553  // Process
554 
555  // Select muon primitives that belong to this sector and this BX.
556  // Put them into maps with an index that roughly corresponds to
557  // each input link.
558  // From src/PrimitiveSelection.cc
559  prim_sel.process(CSCTag(), muon_primitives, selected_csc_map);
560  if (useRPC_) {
561  prim_sel.process(RPCTag(), muon_primitives, selected_rpc_map);
562  }
563  prim_sel.process(GEMTag(), muon_primitives, selected_gem_map);
564  prim_sel.merge(selected_csc_map, selected_rpc_map, selected_gem_map, selected_prim_map);
565 
566  // Convert trigger primitives into "converted" hits
567  // A converted hit consists of integer representations of phi, theta, and zones
568  // From src/PrimitiveConversion.cc
569  prim_conv.process(selected_prim_map, conv_hits);
570  extended_conv_hits.push_back(conv_hits);
571 
572  {
573  // Keep all the converted hits for the use of data-emulator comparisons.
574  // They include the extra ones that are not used in track building and the subsequent steps.
575  prim_sel.merge_no_truncate(selected_csc_map, selected_rpc_map, selected_gem_map, inclusive_selected_prim_map);
576  prim_conv.process(inclusive_selected_prim_map, inclusive_conv_hits);
577 
578  // Clear the input maps to save memory
579  selected_csc_map.clear();
580  selected_rpc_map.clear();
581  selected_gem_map.clear();
582  }
583 
584  // Detect patterns in all zones, find 3 best roads in each zone
585  // From src/PatternRecognition.cc
586  patt_recog.process(extended_conv_hits, patt_lifetime_map, zone_roads);
587 
588  // Match the trigger primitives to the roads, create tracks
589  // From src/PrimitiveMatching.cc
590  prim_match.process(extended_conv_hits, zone_roads, zone_tracks);
591 
592  // Calculate deflection angles for each track and fill track variables
593  // From src/AngleCalculation.cc
594  angle_calc.process(zone_tracks);
595  extended_best_track_cands.insert(
596  extended_best_track_cands.begin(), zone_tracks.begin(), zone_tracks.end()); // push_front
597 
598  // Select 3 "best" tracks from all the zones
599  // From src/BestTrackSelection.cc
600  btrack_sel.process(extended_best_track_cands, best_tracks);
601 
602  // Insert single LCTs from station 1 as tracks
603  // From src/SingleHitTracks.cc
604  single_hit.process(conv_hits, best_tracks);
605 
606  // Construct pT address, assign pT, calculate other GMT quantities
607  // From src/PtAssignment.cc
608  pt_assign.process(best_tracks);
609 
610  // ___________________________________________________________________________
611  // Output
612 
613  out_hits.insert(out_hits.end(), inclusive_conv_hits.begin(), inclusive_conv_hits.end());
614  out_tracks.insert(out_tracks.end(), best_tracks.begin(), best_tracks.end());
615 
616  return;
617 }
std::vector< std::string > pattDefinitions_
l1t::EMTFTrackCollection EMTFTrackCollection
Definition: Common.h:29
void process(const std::deque< EMTFTrackCollection > &extended_best_track_cands, EMTFTrackCollection &best_tracks) const
std::vector< int > zoneBoundaries_
void configure(const GeometryTranslator *tp_geom, const SectorProcessorLUT *lut, int verbose, int endcap, int sector, int bx, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, const std::vector< int > &zoneBoundaries, int zoneOverlap, bool duplicateTheta, bool fixZonePhi, bool useNewZones, bool fixME11Edges, bool bugME11Dupes)
void process(emtf::zone_array< EMTFTrackCollection > &zone_tracks) const
void process(const EMTFHitCollection &conv_hits, EMTFTrackCollection &best_tracks) const
l1t::EMTFHitCollection EMTFHitCollection
Definition: Common.h:25
std::vector< std::string > symPattDefinitions_
void merge_no_truncate(const std::map< int, TriggerPrimitiveCollection > &selected_csc_map, const std::map< int, TriggerPrimitiveCollection > &selected_rpc_map, const std::map< int, TriggerPrimitiveCollection > &selected_gem_map, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
void configure(int verbose, int endcap, int sector, int bx, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, bool includeNeighbor, bool duplicateTheta, bool bugME11Dupes)
const GeometryTranslator * tp_geom_
void process(const std::deque< EMTFHitCollection > &extended_conv_hits, std::map< pattern_ref_t, int > &patt_lifetime_map, emtf::zone_array< EMTFRoadCollection > &zone_roads) const
void configure(int verbose, int endcap, int sector, int bx, int bxWindow, int thetaWindow, int thetaWindowZone0, bool bugME11Dupes, bool bugAmbigThetaWin, bool twoStationSameBX)
const SectorProcessorLUT * lut_
emtf::CSCTag CSCTag
Definition: Common.h:45
std::array< T, NUM_ZONES > zone_array
Definition: Common.h:78
void process(T tag, const TriggerPrimitiveCollection &muon_primitives, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
emtf::RPCTag RPCTag
Definition: Common.h:46
void configure(PtAssignmentEngine *pt_assign_engine, int verbose, int endcap, int sector, int bx, bool readPtLUTFile, bool fixMode15HighPt, bool bug9BitDPhi, bool bugMode7CLCT, bool bugNegPt, bool bugGMTPhi, bool promoteMode7, int modeQualVer)
Definition: PtAssignment.cc:5
void configure(int verbose, int endcap, int sector, int bx, int bxWindow, const std::vector< std::string > &pattDefinitions, const std::vector< std::string > &symPattDefinitions, bool useSymPatterns, int maxRoadsPerZone, bool useSecondEarliest)
PtAssignmentEngine * pt_assign_engine_
void configure(int verbose, int endcap, int sector, int bx, int bxWindow, int maxRoadsPerZone, int maxTracks, bool useSecondEarliest, bool bugSameSectorPt0)
void merge(const std::map< int, TriggerPrimitiveCollection > &selected_csc_map, const std::map< int, TriggerPrimitiveCollection > &selected_rpc_map, const std::map< int, TriggerPrimitiveCollection > &selected_gem_map, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
void process(const std::map< int, TriggerPrimitiveCollection > &selected_prim_map, EMTFHitCollection &conv_hits) const
void process(EMTFTrackCollection &best_tracks)
Definition: PtAssignment.cc:37
void configure(int verbose, int endcap, int sector, int bx, int maxTracks, bool useSingleHits)
void process(const std::deque< EMTFHitCollection > &extended_conv_hits, const emtf::zone_array< EMTFRoadCollection > &zone_roads, emtf::zone_array< EMTFTrackCollection > &zone_tracks) const
emtf::GEMTag GEMTag
Definition: Common.h:48
void configure(int verbose, int endcap, int sector, int bx, bool fixZonePhi, bool useNewZones, bool bugSt2PhDiff, bool bugME11Dupes)

Member Data Documentation

bool SectorProcessor::bug9BitDPhi_
private

Definition at line 139 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::bugAmbigThetaWin_
private

Definition at line 130 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::bugGMTPhi_
private

Definition at line 139 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::bugME11Dupes_
private

Definition at line 130 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::bugMode7CLCT_
private

Definition at line 139 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::bugNegPt_
private

Definition at line 139 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::bugSameSectorPt0_
private

Definition at line 135 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::bugSt2PhDiff_
private

Definition at line 130 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

int SectorProcessor::bxShiftCSC_
private

Definition at line 114 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

int SectorProcessor::bxShiftGEM_
private

Definition at line 114 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

int SectorProcessor::bxShiftRPC_
private

Definition at line 114 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

int SectorProcessor::bxWindow_
private

Definition at line 114 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), process(), and process_single_bx().

const ConditionHelper* SectorProcessor::cond_
private

Definition at line 106 of file SectorProcessor.h.

Referenced by configure().

bool SectorProcessor::duplicateTheta_
private

Definition at line 121 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

int SectorProcessor::endcap_
private

Definition at line 112 of file SectorProcessor.h.

Referenced by configure(), process(), and process_single_bx().

std::string SectorProcessor::era_
private

Definition at line 116 of file SectorProcessor.h.

Referenced by configure(), and configure_by_fw_version().

bool SectorProcessor::fixME11Edges_
private

Definition at line 121 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::fixMode15HighPt_
private

Definition at line 138 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::fixZonePhi_
private

Definition at line 121 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::includeNeighbor_
private

Definition at line 121 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

const SectorProcessorLUT* SectorProcessor::lut_
private

Definition at line 108 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

int SectorProcessor::maxBX_
private

Definition at line 114 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process().

int SectorProcessor::maxRoadsPerZone_
private

Definition at line 133 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

int SectorProcessor::maxTracks_
private

Definition at line 133 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

int SectorProcessor::minBX_
private

Definition at line 114 of file SectorProcessor.h.

Referenced by configure(), and process().

int SectorProcessor::modeQualVer_
private

Definition at line 140 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

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

Definition at line 124 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

bool SectorProcessor::promoteMode7_
private

Definition at line 139 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

PtAssignmentEngine* SectorProcessor::pt_assign_engine_
private

Definition at line 110 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

bool SectorProcessor::readPtLUTFile_
private

Definition at line 138 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

int SectorProcessor::sector_
private

Definition at line 112 of file SectorProcessor.h.

Referenced by configure(), process(), and process_single_bx().

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

Definition at line 124 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

int SectorProcessor::thetaWindow_
private

Definition at line 128 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

int SectorProcessor::thetaWindowZone0_
private

Definition at line 128 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

const GeometryTranslator* SectorProcessor::tp_geom_
private

Definition at line 104 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

bool SectorProcessor::twoStationSameBX_
private

Definition at line 130 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::useCPPF_
private

Definition at line 129 of file SectorProcessor.h.

bool SectorProcessor::useNewZones_
private

Definition at line 121 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

bool SectorProcessor::useRPC_
private

Definition at line 129 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::useSecondEarliest_
private

Definition at line 134 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

bool SectorProcessor::useSingleHits_
private

Definition at line 129 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

bool SectorProcessor::useSymPatterns_
private

Definition at line 125 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), and process_single_bx().

int SectorProcessor::verbose_
private

Definition at line 112 of file SectorProcessor.h.

Referenced by configure(), configure_by_fw_version(), process(), and process_single_bx().

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

Definition at line 119 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().

int SectorProcessor::zoneOverlap_
private

Definition at line 120 of file SectorProcessor.h.

Referenced by configure(), and process_single_bx().