CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
CSCTFSectorProcessor Class Reference

KK. More...

#include <CSCTFSectorProcessor.h>

Classes

class  h
 

Public Member Functions

 CSCTFSectorProcessor (const unsigned &endcap, const unsigned &sector, const edm::ParameterSet &pset, bool tmb07, const L1MuTriggerScales *scales, const L1MuTriggerPtScale *ptScale)
 
CSCTriggerContainer
< csctf::TrackStub
dtStubs () const
 
std::vector< csctf::TrackStubfilteredStubs () const
 
void initialize (const edm::EventSetup &c)
 KK. More...
 
int maxBX () const
 
int minBX () const
 
void printDisclaimer (int firmSP, int firmFA)
 
void readParameters (const edm::ParameterSet &pset)
 
bool run (const CSCTriggerContainer< csctf::TrackStub > &)
 
CSCTriggerContainer< csc::L1Tracktracks () const
 
 ~CSCTFSectorProcessor ()
 

Private Member Functions

 CSCTFSectorProcessor (const CSCTFSectorProcessor &par)
 
CSCTFSectorProcessoroperator= (const CSCTFSectorProcessor &rhs)
 

Private Attributes

CSCTFSPCoreLogiccore_
 
CSCTriggerContainer
< csctf::TrackStub
dt_stubs
 
std::map< int, int > firmSP_Map
 
bool initializeFromPSet
 
bool isCoreVerbose
 
int kill_fiber
 
CSCTriggerContainer< csc::L1Trackl1_tracks
 
int m_allowALCTonly
 
int m_allowCLCTonly
 
int m_bxa_depth
 
int m_curvedp
 
unsigned m_endcap
 
int m_etamax [8]
 
int m_etamin [8]
 
int m_etawin [7]
 
int m_firmDD
 
int m_firmFA
 
int m_firmSP
 
int m_firmVM
 
bool m_gangedME1a
 
unsigned m_latency
 
int m_maxBX
 
int m_maxdeta112_accp
 
int m_maxdeta113_accp
 
int m_maxdeta12_accp
 
int m_maxdeta13_accp
 
int m_maxdphi112_accp
 
int m_maxdphi113_accp
 
int m_maxdphi12_accp
 
int m_maxdphi13_accp
 
int m_mbaPhiOff
 
int m_mbbPhiOff
 
int m_minBX
 
int m_mindeta112_accp
 
int m_mindeta113_accp
 
int m_mindeta12_accp
 
int m_mindeta13_accp
 
int m_mindetap
 
int m_mindetap_halo
 
int m_mindphip
 
int m_mindphip_halo
 
int m_preTrigger
 
unsigned m_sector
 
int m_straightp
 
int m_widePhi
 
CSCTFPtLUTptLUT_
 
int QualityEnableME1a
 
int QualityEnableME1b
 
int QualityEnableME1c
 
int QualityEnableME1d
 
int QualityEnableME1e
 
int QualityEnableME1f
 
int QualityEnableME2a
 
int QualityEnableME2b
 
int QualityEnableME2c
 
int QualityEnableME3a
 
int QualityEnableME3b
 
int QualityEnableME3c
 
int QualityEnableME4a
 
int QualityEnableME4b
 
int QualityEnableME4c
 
int rescaleSinglesPhi
 
int run_core
 
unsigned int singlesTrackOutput
 
int singlesTrackPt
 
std::map< std::string,
CSCSectorReceiverLUT * > 
srLUTs_
 
std::vector< csctf::TrackStubstub_vec_filtered
 
unsigned TMB07
 
int trigger_on_MB1a
 
int trigger_on_MB1d
 
int trigger_on_ME1a
 
int trigger_on_ME1b
 
int trigger_on_ME2
 
int trigger_on_ME3
 
int trigger_on_ME4
 

Static Private Attributes

static const std::string FPGAs [5] = {"F1","F2","F3","F4","F5"}
 

Detailed Description

KK.

Definition at line 26 of file CSCTFSectorProcessor.h.

Constructor & Destructor Documentation

CSCTFSectorProcessor::CSCTFSectorProcessor ( const unsigned &  endcap,
const unsigned &  sector,
const edm::ParameterSet pset,
bool  tmb07,
const L1MuTriggerScales scales,
const L1MuTriggerPtScale ptScale 
)

Definition at line 16 of file CSCTFSectorProcessor.cc.

References core_, Reference_intrackfit_cff::endcap, firmSP_Map, FPGAs, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), i, getHLTprescales::index, initializeFromPSet, isCoreVerbose, j, kill_fiber, LogDebug, m_allowALCTonly, m_allowCLCTonly, m_bxa_depth, m_curvedp, m_endcap, m_etamax, m_etamin, m_etawin, m_firmDD, m_firmFA, m_firmSP, m_firmVM, m_gangedME1a, m_latency, m_maxBX, m_maxdeta112_accp, m_maxdeta113_accp, m_maxdeta12_accp, m_maxdeta13_accp, m_maxdphi112_accp, m_maxdphi113_accp, m_maxdphi12_accp, m_maxdphi13_accp, m_mbaPhiOff, m_mbbPhiOff, m_minBX, m_mindeta112_accp, m_mindeta113_accp, m_mindeta12_accp, m_mindeta13_accp, m_mindetap, m_mindetap_halo, m_mindphip, m_mindphip_halo, m_preTrigger, m_sector, m_straightp, m_widePhi, ptLUT_, QualityEnableME1a, QualityEnableME1b, QualityEnableME1c, QualityEnableME1d, QualityEnableME1e, QualityEnableME1f, QualityEnableME2a, QualityEnableME2b, QualityEnableME2c, QualityEnableME3a, QualityEnableME3b, QualityEnableME3c, QualityEnableME4a, QualityEnableME4b, QualityEnableME4c, readParameters(), rescaleSinglesPhi, run_core, singlesTrackOutput, srLUTs_, TMB07, trigger_on_MB1a, trigger_on_MB1d, trigger_on_ME1a, trigger_on_ME1b, trigger_on_ME2, trigger_on_ME3, and trigger_on_ME4.

22 {
23  m_endcap = endcap;
24  m_sector = sector;
25  TMB07 = tmb07;
26 
27  // allows a configurable option to handle unganged ME1a
28  m_gangedME1a = pset.getUntrackedParameter<bool>("gangedME1a", true);
29 
30  // Parameter below should always present in ParameterSet:
31  m_latency = pset.getParameter<unsigned>("CoreLatency");
32  m_minBX = pset.getParameter<int>("MinBX");
33  m_maxBX = pset.getParameter<int>("MaxBX");
34  initializeFromPSet = pset.getParameter<bool>("initializeFromPSet");
35  if( m_maxBX-m_minBX >= 7 ) edm::LogWarning("CSCTFTrackBuilder::ctor")<<" BX window width >= 7BX. Resetting m_maxBX="<<(m_maxBX=m_minBX+6);
36 
37  // All following parameters may appear in either ParameterSet of in EventSetup; uninitialize:
38  m_bxa_depth = -1;
39  m_allowALCTonly = -1;
40  m_allowCLCTonly = -1;
41  m_preTrigger = -1;
42 
43  for(int index=0; index<7; index++) m_etawin[index] = -1;
44  for(int index=0; index<8; index++) m_etamin[index] = -1;
45  for(int index=0; index<8; index++) m_etamax[index] = -1;
46 
47  m_mindphip=-1;
48  m_mindetap=-1;
49 
53 
57 
61 
65  m_mindphip_halo=-1;
66  m_mindetap_halo=-1;
67 
68  m_widePhi=-1;
69 
70  m_straightp=-1;
71  m_curvedp=-1;
72 
73  m_mbaPhiOff=-1;
74  m_mbbPhiOff=-1;
75 
76  kill_fiber = -1;
77  QualityEnableME1a = -1;
78  QualityEnableME1b = -1;
79  QualityEnableME1c = -1;
80  QualityEnableME1d = -1;
81  QualityEnableME1e = -1;
82  QualityEnableME1f = -1;
83  QualityEnableME2a = -1;
84  QualityEnableME2b = -1;
85  QualityEnableME2c = -1;
86  QualityEnableME3a = -1;
87  QualityEnableME3b = -1;
88  QualityEnableME3c = -1;
89  QualityEnableME4a = -1;
90  QualityEnableME4b = -1;
91  QualityEnableME4c = -1;
92 
93  run_core = -1;
94  trigger_on_ME1a = -1;
95  trigger_on_ME1b = -1;
96  trigger_on_ME2 = -1;
97  trigger_on_ME3 = -1;
98  trigger_on_ME4 = -1;
99  trigger_on_MB1a = -1;
100  trigger_on_MB1d = -1;
101 
102  singlesTrackOutput = 999;
103  rescaleSinglesPhi = -1;
104 
105  m_firmSP = -1;
106  m_firmFA = -1;
107  m_firmDD = -1;
108  m_firmVM = -1;
109 
110  isCoreVerbose = pset.getParameter<bool>("isCoreVerbose");
111 
112  if(initializeFromPSet) readParameters(pset);
113 
114 
115  // Sector Receiver LUTs initialization
116  edm::ParameterSet srLUTset = pset.getParameter<edm::ParameterSet>("SRLUT");
117  for(int i = 1; i <= 4; ++i)
118  {
119  if(i == 1)
120  for(int j = 0; j < 2; j++)
121  {
122  srLUTs_[FPGAs[j]] = new CSCSectorReceiverLUT(endcap, sector, j+1, i, srLUTset, TMB07);
123  }
124  else
125  srLUTs_[FPGAs[i]] = new CSCSectorReceiverLUT(endcap, sector, 0, i, srLUTset, TMB07);
126  }
127 
128  core_ = new CSCTFSPCoreLogic();
129 
130  // Pt LUTs initialization
131  if(initializeFromPSet){
132  edm::ParameterSet ptLUTset = pset.getParameter<edm::ParameterSet>("PTLUT");
133  ptLUT_ = new CSCTFPtLUT(ptLUTset, scales, ptScale);
134  LogDebug("CSCTFSectorProcessor") << "Using stand-alone PT LUT for endcap="<<m_endcap<<", sector="<<m_sector;
135  } else {
136  ptLUT_=0;
137  LogDebug("CSCTFSectorProcessor") << "Looking for PT LUT in EventSetup for endcap="<<m_endcap<<", sector="<<m_sector;
138  }
139 
140  // firmware map initialization
141  // all the information are based on the firmware releases
142  // documented at http://www.phys.ufl.edu/~uvarov/SP05/SP05.htm
143 
144  // map is <m_firmSP, core_version>
145  // it may happen that the same core is used for different firmware
146  // versions, e.g. change in the wrapper only
147 
148  // this mapping accounts for runs starting from 132440
149  // schema is year+month+day
150  firmSP_Map.insert(std::pair<int,int>(20100210,20100122));
151  firmSP_Map.insert(std::pair<int,int>(20100617,20100122));
152  firmSP_Map.insert(std::pair<int,int>(20100629,20100122));
153 
154  firmSP_Map.insert(std::pair<int,int>(20100728,20100728));
155 
156  firmSP_Map.insert(std::pair<int,int>(20100901,20100901));
157 
158  //testing firmwares
159  firmSP_Map.insert(std::pair<int,int>(20101011,20101011));
160  firmSP_Map.insert(std::pair<int,int>(20101210,20101210));
161  firmSP_Map.insert(std::pair<int,int>(20110204,20110118));
162  firmSP_Map.insert(std::pair<int,int>(20110322,20110118));
163 }
#define LogDebug(id)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
CSCTFSPCoreLogic * core_
void readParameters(const edm::ParameterSet &pset)
static const std::string FPGAs[5]
int j
Definition: DBlmapReader.cc:9
std::map< std::string, CSCSectorReceiverLUT * > srLUTs_
std::map< int, int > firmSP_Map
CSCTFSectorProcessor::~CSCTFSectorProcessor ( )

Definition at line 449 of file CSCTFSectorProcessor.cc.

References core_, FPGAs, i, NULL, ptLUT_, and srLUTs_.

450 {
451  for(int i = 0; i < 5; ++i)
452  {
453  if(srLUTs_[FPGAs[i]]) delete srLUTs_[FPGAs[i]]; // delete the pointer
454  srLUTs_[FPGAs[i]] = NULL; // point it at a safe place
455  }
456 
457  delete core_;
458  core_ = NULL;
459 
460  if(ptLUT_) delete ptLUT_;
461  ptLUT_ = NULL;
462 }
int i
Definition: DBlmapReader.cc:9
CSCTFSPCoreLogic * core_
#define NULL
Definition: scimark2.h:8
static const std::string FPGAs[5]
std::map< std::string, CSCSectorReceiverLUT * > srLUTs_
CSCTFSectorProcessor::CSCTFSectorProcessor ( const CSCTFSectorProcessor par)
inlineprivate

Definition at line 59 of file CSCTFSectorProcessor.h.

59 {}

Member Function Documentation

CSCTriggerContainer<csctf::TrackStub> CSCTFSectorProcessor::dtStubs ( ) const
inline

Definition at line 47 of file CSCTFSectorProcessor.h.

References dt_stubs.

47 { return dt_stubs; }
CSCTriggerContainer< csctf::TrackStub > dt_stubs
std::vector<csctf::TrackStub> CSCTFSectorProcessor::filteredStubs ( ) const
inline

Definition at line 45 of file CSCTFSectorProcessor.h.

References stub_vec_filtered.

Referenced by CSCTFTrackBuilder::buildTracks().

45 { return stub_vec_filtered; }
std::vector< csctf::TrackStub > stub_vec_filtered
void CSCTFSectorProcessor::initialize ( const edm::EventSetup c)

KK.

Definition at line 166 of file CSCTFSectorProcessor.cc.

References HDQMDatabaseProducer::config, core_, edm::hlt::Exception, firmSP_Map, edm::EventSetup::get(), getHLTprescales::index, initializeFromPSet, isCoreVerbose, kill_fiber, LogDebug, m_allowALCTonly, m_allowCLCTonly, m_bxa_depth, m_curvedp, m_endcap, m_etamax, m_etamin, m_etawin, m_firmDD, m_firmFA, m_firmSP, m_firmVM, m_latency, m_maxdeta112_accp, m_maxdeta113_accp, m_maxdeta12_accp, m_maxdeta13_accp, m_maxdphi112_accp, m_maxdphi113_accp, m_maxdphi12_accp, m_maxdphi13_accp, m_mbaPhiOff, m_mbbPhiOff, m_mindeta112_accp, m_mindeta113_accp, m_mindeta12_accp, m_mindeta13_accp, m_mindetap, m_mindetap_halo, m_mindphip, m_mindphip_halo, m_preTrigger, m_sector, m_straightp, m_widePhi, printDisclaimer(), edm::ESHandle< class >::product(), ptLUT_, QualityEnableME1a, QualityEnableME1b, QualityEnableME1c, QualityEnableME1d, QualityEnableME1e, QualityEnableME1f, QualityEnableME2a, QualityEnableME2b, QualityEnableME2c, QualityEnableME3a, QualityEnableME3b, QualityEnableME3c, QualityEnableME4a, QualityEnableME4b, QualityEnableME4c, readParameters(), rescaleSinglesPhi, run_core, singlesTrackOutput, trigger_on_MB1a, trigger_on_MB1d, trigger_on_ME1a, trigger_on_ME1b, trigger_on_ME2, trigger_on_ME3, and trigger_on_ME4.

Referenced by CSCTFTrackBuilder::initialize().

166  {
167  if(!initializeFromPSet){
168  // Only pT lut can be initialized from EventSetup, all front LUTs are initialized locally from their parametrizations
169  LogDebug("CSCTFSectorProcessor") <<"Initializing endcap: "<<m_endcap<<" sector:"<<m_sector << "SP:" << (m_endcap-1)*6+(m_sector-1);
170  LogDebug("CSCTFSectorProcessor") << "Initializing pT LUT from EventSetup";
171 
172  ptLUT_ = new CSCTFPtLUT(c);
173 
174  // Extract from EventSetup alternative (to the one, used in constructor) ParameterSet
176  c.get<L1MuCSCTFConfigurationRcd>().get(config);
177  // And initialize only those parameters, which left uninitialized during construction
178  readParameters(config.product()->parameters((m_endcap-1)*6+(m_sector-1)));
179  }
180 
181  // ---------------------------------------------------------------------------
182  // This part is added per Vasile's request.
183  // It will help people understanding the emulator configuration
184  LogDebug("CSCTFSectorProcessor") << "\n !!! CSCTF EMULATOR CONFIGURATION !!!"
185  << "\n\nCORE CONFIGURATION"
186  << "\n Coincidence Trigger? " << run_core
187  << "\n Singles in ME1a? " << trigger_on_ME1a
188  << "\n Singles in ME1b? " << trigger_on_ME1b
189  << "\n Singles in ME2? " << trigger_on_ME2
190  << "\n Singles in ME3? " << trigger_on_ME3
191  << "\n Singles in ME4? " << trigger_on_ME4
192  << "\n Singles in MB1a? " << trigger_on_MB1a
193  << "\n Singles in MB1d? " << trigger_on_MB1d
194 
195  << "\n BX Analyzer depth: assemble coinc. track with stubs in +/-" << m_bxa_depth << " Bxs"
196  << "\n Is Wide Phi Extrapolation (DeltaPhi valid up to ~15 degrees, otherwise ~7.67 degrees)? " << m_widePhi
197  << "\n PreTrigger=" << m_preTrigger
198 
199  << "\n CoreLatency=" << m_latency
200  << "\n Is Phi for singles rescaled? " << rescaleSinglesPhi
201 
202  << "\n\nVARIOUS CONFIGURATION PARAMETERS"
203  << "\n Allow ALCT only? " << m_allowALCTonly
204  << "\n Allow CLCT only? " << m_allowCLCTonly
205 
206  << "\nQualityEnableME1a (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME1a
207  << "\nQualityEnableME1b (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME1b
208  << "\nQualityEnableME1c (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME1c
209  << "\nQualityEnableME1d (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME1d
210  << "\nQualityEnableME1e (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME1e
211  << "\nQualityEnableME1f (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME1f
212  << "\nQualityEnableME2a (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME2a
213  << "\nQualityEnableME2b (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME2b
214  << "\nQualityEnableME2c (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME2c
215  << "\nQualityEnableME3a (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME3a
216  << "\nQualityEnableME3b (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME3b
217  << "\nQualityEnableME3c (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME3c
218  << "\nQualityEnableME4a (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME4a
219  << "\nQualityEnableME4b (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME4b
220  << "\nQualityEnableME4c (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" << QualityEnableME4c
221 
222  << "\nkill_fiber=" << kill_fiber
223  << "\nSingles Output Link=" << singlesTrackOutput
224 
225  //the DAT_ETA registers meaning are explained at Table 2 of
226  //http://www.phys.ufl.edu/~uvarov/SP05/LU-SP_ReferenceGuide_090915_Update.pdf
227 
228  << "\n\nDAT_ETA REGISTERS"
229  << "\nMinimum eta difference for track cancellation logic=" << m_mindetap
230  << "\nMinimum eta difference for halo track cancellation logic=" << m_mindetap_halo
231 
232  << "\nMinimum eta for ME1-ME2 collision tracks=" << m_etamin[0]
233  << "\nMinimum eta for ME1-ME3 collision tracks=" << m_etamin[1]
234  << "\nMinimum eta for ME2-ME3 collision tracks=" << m_etamin[2]
235  << "\nMinimum eta for ME2-ME4 collision tracks=" << m_etamin[3]
236  << "\nMinimum eta for ME3-ME4 collision tracks=" << m_etamin[4]
237  << "\nMinimum eta for ME1-ME2 collision tracks in overlap region=" << m_etamin[5]
238  << "\nMinimum eta for ME2-MB1 collision tracks=" << m_etamin[6]
239  << "\nMinimum eta for ME1-ME4 collision tracks=" << m_etamin[7]
240 
241  << "\nMinimum eta difference for ME1-ME2 (except ME1/1) halo tracks=" << m_mindeta12_accp
242  << "\nMinimum eta difference for ME1-ME3 (except ME1/1) halo tracks=" << m_mindeta13_accp
243  << "\nMinimum eta difference for ME1/1-ME2 halo tracks=" << m_mindeta112_accp
244  << "\nMinimum eta difference for ME1/1-ME3 halo tracks=" << m_mindeta113_accp
245 
246  << "\nMaximum eta for ME1-ME2 collision tracks=" << m_etamax[0]
247  << "\nMaximum eta for ME1-ME3 collision tracks=" << m_etamax[1]
248  << "\nMaximum eta for ME2-ME3 collision tracks=" << m_etamax[2]
249  << "\nMaximum eta for ME2-ME4 collision tracks=" << m_etamax[3]
250  << "\nMaximum eta for ME3-ME4 collision tracks=" << m_etamax[4]
251  << "\nMaximum eta for ME1-ME2 collision tracks in overlap region=" << m_etamax[5]
252  << "\nMaximum eta for ME2-MB1 collision tracks=" << m_etamax[6]
253  << "\nMaximum eta for ME1-ME4 collision tracks=" << m_etamax[7]
254 
255  << "\nMaximum eta difference for ME1-ME2 (except ME1/1) halo tracks=" << m_maxdeta12_accp
256  << "\nMaximum eta difference for ME1-ME3 (except ME1/1) halo tracks=" << m_maxdeta13_accp
257  << "\nMaximum eta difference for ME1/1-ME2 halo tracks=" << m_maxdeta112_accp
258  << "\nMaximum eta difference for ME1/1-ME3 halo tracks=" << m_maxdeta113_accp
259 
260  << "\nEta window for ME1-ME2 collision tracks=" << m_etawin[0]
261  << "\nEta window for ME1-ME3 collision tracks=" << m_etawin[1]
262  << "\nEta window for ME2-ME3 collision tracks=" << m_etawin[2]
263  << "\nEta window for ME2-ME4 collision tracks=" << m_etawin[3]
264  << "\nEta window for ME3-ME4 collision tracks=" << m_etawin[4]
265  << "\nEta window for ME1-ME2 collision tracks in overlap region=" << m_etawin[5]
266  << "\nEta window for ME1-ME4 collision tracks=" << m_etawin[6]
267 
268  << "\nMaximum phi difference for ME1-ME2 (except ME1/1) halo tracks=" << m_maxdphi12_accp
269  << "\nMaximum phi difference for ME1-ME3 (except ME1/1) halo tracks=" << m_maxdphi13_accp
270  << "\nMaximum phi difference for ME1/1-ME2 halo tracks=" << m_maxdphi112_accp
271  << "\nMaximum phi difference for ME1/1-ME3 halo tracks=" << m_maxdphi113_accp
272 
273  << "\nMinimum phi difference for track cancellation logic=" << m_mindphip
274  << "\nMinimum phi difference for halo track cancellation logic=" << m_mindphip_halo
275 
276  << "\nParameter for the correction of misaligned 1-2-3-4 straight tracks =" << m_straightp
277  << "\nParameter for the correction of misaligned 1-2-3-4 curved tracks=" << m_curvedp
278  << "\nPhi Offset for MB1A=" << m_mbaPhiOff
279  << "\nPhi Offset for MB1D=" << m_mbbPhiOff
280 
281  << "\nFirmware SP year+month+day:" << m_firmSP
282  << "\nFirmware FA year+month+day:" << m_firmFA
283  << "\nFirmware DD year+month+day:" << m_firmDD
284  << "\nFirmware VM year+month+day:" << m_firmVM;
285 
286 
288 
289  // set core verbosity: for debugging only purpouses
290  // in general the output is handled to Alex Madorsky
291  core_ -> SetVerbose(isCoreVerbose);
292 
293  // Set the SP firmware
294  core_ -> SetSPFirmwareVersion (m_firmSP);
295 
296  // Set the firmware for the CORE
297  int firmVersCore = firmSP_Map.find(m_firmSP)->second;
298  core_ -> SetCoreFirmwareVersion (firmVersCore);
299  edm::LogInfo( "CSCTFSectorProcessor" ) << "\nCore Firmware is set to " << core_ -> GetCoreFirmwareVersion();
300  // ---------------------------------------------------------------------------
301 
302  // Check if parameters were not initialized in both: constuctor (from .cf? file) and initialize method (from EventSetup)
303  if(m_bxa_depth<0) throw cms::Exception("CSCTFSectorProcessor")<<"BXAdepth parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
304  if(m_allowALCTonly<0) throw cms::Exception("CSCTFSectorProcessor")<<"AllowALCTonly parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
305  if(m_allowCLCTonly<0) throw cms::Exception("CSCTFSectorProcessor")<<"AllowCLCTonly parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
306  if(m_preTrigger<0) throw cms::Exception("CSCTFSectorProcessor")<<"PreTrigger parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
307  if(m_mindphip<0) throw cms::Exception("CSCTFSectorProcessor")<<"mindphip parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
308  if(m_mindetap<0) throw cms::Exception("CSCTFSectorProcessor")<<"mindeta parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
309  if(m_straightp<0) throw cms::Exception("CSCTFSectorProcessor")<<"straightp parameter left unitialized for endcap="<<m_endcap<<", sector="<<m_sector;
310  if(m_curvedp<0) throw cms::Exception("CSCTFSectorProcessor")<<"curvedp parameter left unitialized for endcap="<<m_endcap<<",sector="<<m_sector;
311  if(m_mbaPhiOff<0) throw cms::Exception("CSCTFSectorProcessor")<<"mbaPhiOff parameter left unitialized for endcap="<<m_endcap<<",sector="<<m_sector;
312  if(m_mbbPhiOff<0) throw cms::Exception("CSCTFSectorProcessor")<<"mbbPhiOff parameter left unitialized for endcap="<<m_endcap<<",sector="<<m_sector;
313  if(m_mindeta12_accp<0) throw cms::Exception("CSCTFSectorProcessor")<<"mindeta_accp12 parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
314  if(m_maxdeta12_accp<0) throw cms::Exception("CSCTFSectorProcessor")<<"maxdeta_accp12 parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
315  if(m_maxdphi12_accp<0) throw cms::Exception("CSCTFSectorProcessor")<<"maxdphi_accp12 parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
316  if(m_mindeta13_accp<0) throw cms::Exception("CSCTFSectorProcessor")<<"mindeta_accp13 parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
317  if(m_maxdeta13_accp<0) throw cms::Exception("CSCTFSectorProcessor")<<"maxdeta_accp13 parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
318  if(m_maxdphi13_accp<0) throw cms::Exception("CSCTFSectorProcessor")<<"maxdphi_accp13 parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
319  if(m_mindeta112_accp<0) throw cms::Exception("CSCTFSectorProcessor")<<"mindeta_accp112 parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
320  if(m_maxdeta112_accp<0) throw cms::Exception("CSCTFSectorProcessor")<<"maxdeta_accp112 parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
321  if(m_maxdphi112_accp<0) throw cms::Exception("CSCTFSectorProcessor")<<"maxdphi_accp112 parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
322  if(m_mindeta113_accp<0) throw cms::Exception("CSCTFSectorProcessor")<<"mindeta_accp113 parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
323  if(m_maxdeta113_accp<0) throw cms::Exception("CSCTFSectorProcessor")<<"maxdeta_accp113 parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
324  if(m_maxdphi113_accp<0) throw cms::Exception("CSCTFSectorProcessor")<<"maxdphi_accp113 parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
325  if(m_mindphip_halo<0) throw cms::Exception("CSCTFSectorProcessor")<<"mindphip_halo parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
326  if(m_mindetap_halo<0) throw cms::Exception("CSCTFSectorProcessor")<<"mindetep_halo parameter left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
327 
328  if(m_widePhi<0) throw cms::Exception("CSCTFSectorProcessor")<<"widePhi parameter left unitialized for endcap="<<m_endcap<<", sector="<<m_sector;
329 
330  for(int index=0; index<8; index++) if(m_etamax[index]<0) throw cms::Exception("CSCTFSectorProcessor")<<"Some ("<<(8-index)<<") of EtaMax parameters left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
331  for(int index=0; index<8; index++) if(m_etamin[index]<0) throw cms::Exception("CSCTFSectorProcessor")<<"Some ("<<(8-index)<<") of EtaMin parameters left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
332  for(int index=0; index<7; index++) if(m_etawin[index]<0) throw cms::Exception("CSCTFSectorProcessor")<<"Some ("<<(6-index)<<") of EtaWindows parameters left uninitialized for endcap="<<m_endcap<<", sector="<<m_sector;
333  if(kill_fiber<0) throw cms::Exception("CSCTFTrackBuilder")<<"kill_fiber parameter left uninitialized";
334  if(run_core<0) throw cms::Exception("CSCTFTrackBuilder")<<"run_core parameter left uninitialized";
335  if(trigger_on_ME1a<0) throw cms::Exception("CSCTFTrackBuilder")<<"trigger_on_ME1a parameter left uninitialized";
336  if(trigger_on_ME1b<0) throw cms::Exception("CSCTFTrackBuilder")<<"trigger_on_ME1b parameter left uninitialized";
337  if(trigger_on_ME2 <0) throw cms::Exception("CSCTFTrackBuilder")<<"trigger_on_ME2 parameter left uninitialized";
338  if(trigger_on_ME3 <0) throw cms::Exception("CSCTFTrackBuilder")<<"trigger_on_ME3 parameter left uninitialized";
339  if(trigger_on_ME4 <0) throw cms::Exception("CSCTFTrackBuilder")<<"trigger_on_ME4 parameter left uninitialized";
340  if(trigger_on_MB1a<0) throw cms::Exception("CSCTFTrackBuilder")<<"trigger_on_MB1a parameter left uninitialized";
341  if(trigger_on_MB1d<0) throw cms::Exception("CSCTFTrackBuilder")<<"trigger_on_MB1d parameter left uninitialized";
344 
345  if(singlesTrackOutput==999) throw cms::Exception("CSCTFTrackBuilder")<<"singlesTrackOutput parameter left uninitialized";
346  if(rescaleSinglesPhi<0) throw cms::Exception("CSCTFTrackBuilder")<<"rescaleSinglesPhi parameter left uninitialized";
347  }
348  if(QualityEnableME1a<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME1a parameter left uninitialized";
349  if(QualityEnableME1b<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME1b parameter left uninitialized";
350  if(QualityEnableME1c<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME1c parameter left uninitialized";
351  if(QualityEnableME1d<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME1d parameter left uninitialized";
352  if(QualityEnableME1e<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME1e parameter left uninitialized";
353  if(QualityEnableME1f<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME1f parameter left uninitialized";
354  if(QualityEnableME2a<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME2a parameter left uninitialized";
355  if(QualityEnableME2b<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME2b parameter left uninitialized";
356  if(QualityEnableME2c<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME2c parameter left uninitialized";
357  if(QualityEnableME3a<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME3a parameter left uninitialized";
358  if(QualityEnableME3b<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME3b parameter left uninitialized";
359  if(QualityEnableME3c<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME3c parameter left uninitialized";
360  if(QualityEnableME4a<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME4a parameter left uninitialized";
361  if(QualityEnableME4b<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME4b parameter left uninitialized";
362  if(QualityEnableME4c<0) throw cms::Exception("CSCTFTrackBuilder")<<"QualityEnableME4c parameter left uninitialized";
363 
364  if (m_firmSP<1) throw cms::Exception("CSCTFSectorProcessor")<< " firmwareSP parameter left uninitialized!!!\n";
365  if (m_firmFA<1) throw cms::Exception("CSCTFSectorProcessor")<< " firmwareFA parameter left uninitialized!!!\n";
366  if (m_firmDD<1) throw cms::Exception("CSCTFSectorProcessor")<< " firmwareDD parameter left uninitialized!!!\n";
367  if (m_firmVM<1) throw cms::Exception("CSCTFSectorProcessor")<< " firmwareVM parameter left uninitialized!!!\n";
368 
369  if ( (m_firmFA != m_firmDD) ||
370  (m_firmFA != m_firmVM) ||
371  (m_firmDD != m_firmVM) )
372  throw cms::Exception("CSCTFSectorProcessor")<< " firmwareFA (=" << m_firmFA << "), "
373  << " firmwareDD (=" << m_firmDD << "), "
374  << " firmwareVM (=" << m_firmVM << ") are NOT identical: it shoultd NOT happen!";
375 
376 }
#define LogDebug(id)
CSCTFSPCoreLogic * core_
void readParameters(const edm::ParameterSet &pset)
void printDisclaimer(int firmSP, int firmFA)
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
std::map< int, int > firmSP_Map
int CSCTFSectorProcessor::maxBX ( ) const
inline

Definition at line 50 of file CSCTFSectorProcessor.h.

References m_maxBX.

50 { return m_maxBX; }
int CSCTFSectorProcessor::minBX ( ) const
inline

Definition at line 49 of file CSCTFSectorProcessor.h.

References m_minBX.

49 { return m_minBX; }
CSCTFSectorProcessor& CSCTFSectorProcessor::operator= ( const CSCTFSectorProcessor rhs)
inlineprivate

Definition at line 58 of file CSCTFSectorProcessor.h.

58 { return *this; };
void CSCTFSectorProcessor::printDisclaimer ( int  firmSP,
int  firmFA 
)

Definition at line 777 of file CSCTFSectorProcessor.cc.

Referenced by initialize().

777  {
778 
779  edm::LogInfo( "CSCTFSectorProcessor" ) << "\n\n"
780  << "******************************* \n"
781  << "*** DISCLAIMER *** \n"
782  << "******************************* \n"
783  << "\n Firmware SP version (year+month+day)=" << firmSP
784  << "\n Firmware FA/VM/DD version (year+month+day)=" << firmFA;
785  if (firmSP==20100210)
786  edm::LogInfo( "CSCTFSectorProcessor" ) << " -> KNOWN BUGS IN THE FIRMWARE:\n"
787  << "\t * Wrong phi assignment for singles\n"
788  << "\t * Wrapper passes to the core only even quality DT stubs\n"
789  << "\n -> BUGS ARE GOING TO BE EMULATED BY THE SOFTWARE\n\n";
790 
791  else
792  edm::LogInfo( "CSCTFSectorProcessor" ) << "\t * Correct phi assignment for singles\n";
793 
794  if (firmSP==20100629){
795  edm::LogInfo( "CSCTFSectorProcessor" ) << "\t * Correct MB quality masking in the wrapper\n"
796  << "\t * Core is 20100122\n";
797  }
798 
799  if (firmSP==20100728)
800  edm::LogInfo( "CSCTFSectorProcessor" ) << "\t * Inverted MB clocks\n";
801 
802  if (firmSP==20100901)
803  edm::LogInfo( "CSCTFSectorProcessor" ) << "\t * Inverted charge bit\n";
804 
805  if (firmSP==20101011)
806  edm::LogInfo( "CSCTFSectorProcessor" ) << "\t **** WARNING THIS FIRMWARE IS UNDER TEST ****\n"
807  << "\t * Added CSC-DT assembling tracks ME1-MB2/1 \n";
808  if (firmSP==20101210)
809  edm::LogInfo( "CSCTFSectorProcessor" ) << "\t **** WARNING THIS FIRMWARE IS UNDER TEST ****\n"
810  << "\t * New Ghost Busting Algorithm Removing Tracks\n"
811  << "\t Sharing at Least One LCT\n";
812 
813  if (firmSP==20110118)
814  edm::LogInfo( "CSCTFSectorProcessor" ) << "\t **** WARNING THIS FIRMWARE IS UNDER TEST ****\n"
815  << "\t * New Ghost Busting Algorithm Removing Tracks\n"
816  << "\t Sharing at Least One LCT\n"
817  << "\t * Passing CLCT and PhiBend for PT LUTs\n";
818 }
void CSCTFSectorProcessor::readParameters ( const edm::ParameterSet pset)

Definition at line 378 of file CSCTFSectorProcessor.cc.

References edm::ParameterSet::getParameter(), getHLTprescales::index, kill_fiber, m_allowALCTonly, m_allowCLCTonly, m_bxa_depth, m_curvedp, m_etamax, m_etamin, m_etawin, m_firmDD, m_firmFA, m_firmSP, m_firmVM, m_maxdeta112_accp, m_maxdeta113_accp, m_maxdeta12_accp, m_maxdeta13_accp, m_maxdphi112_accp, m_maxdphi113_accp, m_maxdphi12_accp, m_maxdphi13_accp, m_mbaPhiOff, m_mbbPhiOff, m_mindeta112_accp, m_mindeta113_accp, m_mindeta12_accp, m_mindeta13_accp, m_mindetap, m_mindetap_halo, m_mindphip, m_mindphip_halo, m_preTrigger, m_straightp, m_widePhi, QualityEnableME1a, QualityEnableME1b, QualityEnableME1c, QualityEnableME1d, QualityEnableME1e, QualityEnableME1f, QualityEnableME2a, QualityEnableME2b, QualityEnableME2c, QualityEnableME3a, QualityEnableME3b, QualityEnableME3c, QualityEnableME4a, QualityEnableME4b, QualityEnableME4c, rescaleSinglesPhi, run_core, singlesTrackOutput, trigger_on_MB1a, trigger_on_MB1d, trigger_on_ME1a, trigger_on_ME1b, trigger_on_ME2, trigger_on_ME3, and trigger_on_ME4.

Referenced by CSCTFSectorProcessor(), and initialize().

378  {
379  m_bxa_depth = pset.getParameter<unsigned>("BXAdepth");
380  m_allowALCTonly = ( pset.getParameter<bool>("AllowALCTonly") ? 1 : 0 );
381  m_allowCLCTonly = ( pset.getParameter<bool>("AllowCLCTonly") ? 1 : 0 );
382  m_preTrigger = pset.getParameter<unsigned>("PreTrigger");
383 
384  std::vector<unsigned>::const_iterator iter;
385  int index=0;
386  std::vector<unsigned> etawins = pset.getParameter<std::vector<unsigned> >("EtaWindows");
387  for(iter=etawins.begin(),index=0; iter!=etawins.end()&&index<7; iter++,index++) m_etawin[index] = *iter;
388  std::vector<unsigned> etamins = pset.getParameter<std::vector<unsigned> >("EtaMin");
389  for(iter=etamins.begin(),index=0; iter!=etamins.end()&&index<8; iter++,index++) m_etamin[index] = *iter;
390  std::vector<unsigned> etamaxs = pset.getParameter<std::vector<unsigned> >("EtaMax");
391  for(iter=etamaxs.begin(),index=0; iter!=etamaxs.end()&&index<8; iter++,index++) m_etamax[index] = *iter;
392 
393  m_mindphip = pset.getParameter<unsigned>("mindphip");
394  m_mindetap = pset.getParameter<unsigned>("mindetap");
395  m_straightp = pset.getParameter<unsigned>("straightp");
396  m_curvedp = pset.getParameter<unsigned>("curvedp");
397  m_mbaPhiOff = pset.getParameter<unsigned>("mbaPhiOff");
398  m_mbbPhiOff = pset.getParameter<unsigned>("mbbPhiOff");
399  m_widePhi = pset.getParameter<unsigned>("widePhi");
400  m_mindeta12_accp = pset.getParameter<unsigned>("mindeta12_accp");
401  m_maxdeta12_accp = pset.getParameter<unsigned>("maxdeta12_accp");
402  m_maxdphi12_accp = pset.getParameter<unsigned>("maxdphi12_accp");
403  m_mindeta13_accp = pset.getParameter<unsigned>("mindeta13_accp");
404  m_maxdeta13_accp = pset.getParameter<unsigned>("maxdeta13_accp");
405  m_maxdphi13_accp = pset.getParameter<unsigned>("maxdphi13_accp");
406  m_mindeta112_accp = pset.getParameter<unsigned>("mindeta112_accp");
407  m_maxdeta112_accp = pset.getParameter<unsigned>("maxdeta112_accp");
408  m_maxdphi112_accp = pset.getParameter<unsigned>("maxdphi112_accp");
409  m_mindeta113_accp = pset.getParameter<unsigned>("mindeta113_accp");
410  m_maxdeta113_accp = pset.getParameter<unsigned>("maxdeta113_accp");
411  m_maxdphi113_accp = pset.getParameter<unsigned>("maxdphi113_accp");
412  m_mindphip_halo = pset.getParameter<unsigned>("mindphip_halo");
413  m_mindetap_halo = pset.getParameter<unsigned>("mindetap_halo");
414  kill_fiber = pset.getParameter<unsigned>("kill_fiber");
415  run_core = pset.getParameter<bool>("run_core");
416  trigger_on_ME1a = pset.getParameter<bool>("trigger_on_ME1a");
417  trigger_on_ME1b = pset.getParameter<bool>("trigger_on_ME1b");
418  trigger_on_ME2 = pset.getParameter<bool>("trigger_on_ME2");
419  trigger_on_ME3 = pset.getParameter<bool>("trigger_on_ME3");
420  trigger_on_ME4 = pset.getParameter<bool>("trigger_on_ME4");
421  trigger_on_MB1a = pset.getParameter<bool>("trigger_on_MB1a");
422  trigger_on_MB1d = pset.getParameter<bool>("trigger_on_MB1d");
423 
424  singlesTrackOutput = pset.getParameter<unsigned int>("singlesTrackOutput");
425  rescaleSinglesPhi = pset.getParameter<bool>("rescaleSinglesPhi");
426  QualityEnableME1a = pset.getParameter<unsigned int>("QualityEnableME1a");
427  QualityEnableME1b = pset.getParameter<unsigned int>("QualityEnableME1b");
428  QualityEnableME1c = pset.getParameter<unsigned int>("QualityEnableME1c");
429  QualityEnableME1d = pset.getParameter<unsigned int>("QualityEnableME1d");
430  QualityEnableME1e = pset.getParameter<unsigned int>("QualityEnableME1e");
431  QualityEnableME1f = pset.getParameter<unsigned int>("QualityEnableME1f");
432  QualityEnableME2a = pset.getParameter<unsigned int>("QualityEnableME2a");
433  QualityEnableME2b = pset.getParameter<unsigned int>("QualityEnableME2b");
434  QualityEnableME2c = pset.getParameter<unsigned int>("QualityEnableME2c");
435  QualityEnableME3a = pset.getParameter<unsigned int>("QualityEnableME3a");
436  QualityEnableME3b = pset.getParameter<unsigned int>("QualityEnableME3b");
437  QualityEnableME3c = pset.getParameter<unsigned int>("QualityEnableME3c");
438  QualityEnableME4a = pset.getParameter<unsigned int>("QualityEnableME4a");
439  QualityEnableME4b = pset.getParameter<unsigned int>("QualityEnableME4b");
440  QualityEnableME4c = pset.getParameter<unsigned int>("QualityEnableME4c");
441 
442  m_firmSP = pset.getParameter<unsigned int>("firmwareSP");
443  m_firmFA = pset.getParameter<unsigned int>("firmwareFA");
444  m_firmDD = pset.getParameter<unsigned int>("firmwareDD");
445  m_firmVM = pset.getParameter<unsigned int>("firmwareVM");
446 
447 }
T getParameter(std::string const &) const
bool CSCTFSectorProcessor::run ( const CSCTriggerContainer< csctf::TrackStub > &  stubs)

STEP ZERO Remove stubs, which were masked out by kill_fiber or QualityEnable parameters

STEP ONE We take stubs from the MPC and assign their eta and phi coordinates using the SR Lookup tables. This is independent of what BX we are on so we can process one large vector of stubs. After this we append the stubs gained from the DT system.

STEP TWO We take the stubs filled by the SR LUTs and load them for processing into the SP core logic. After loading we run and then retrieve any tracks generated.

STEP THREE Now that we have the found tracks from the core, we must assign their Pt.

Definition at line 464 of file CSCTFSectorProcessor.cc.

References CSCTriggerContainer< T >::clear(), core_, CSCDetId, dt_stubs, edm::hlt::Exception, FPGAs, CSCTriggerContainer< T >::get(), kill_fiber, l1_tracks, CSCTFSPCoreLogic::loadData(), LogDebug, m_allowALCTonly, m_allowCLCTonly, m_bxa_depth, m_curvedp, m_endcap, m_etamax, m_etamin, m_etawin, m_firmSP, m_gangedME1a, m_latency, m_maxBX, m_maxdeta112_accp, m_maxdeta113_accp, m_maxdeta12_accp, m_maxdeta13_accp, m_maxdphi112_accp, m_maxdphi113_accp, m_maxdphi12_accp, m_maxdphi13_accp, m_mbaPhiOff, m_mbbPhiOff, m_minBX, m_mindeta112_accp, m_mindeta113_accp, m_mindeta12_accp, m_mindeta13_accp, m_mindetap, m_mindetap_halo, m_mindphip, m_mindphip_halo, m_preTrigger, m_sector, m_straightp, m_widePhi, CSCTFPtLUT::Pt(), ptLUT_, csc::L1Track::ptLUTAddress(), CSCTriggerContainer< T >::push_back(), CSCTriggerContainer< T >::push_many(), QualityEnableME1a, QualityEnableME1b, QualityEnableME1c, QualityEnableME1d, QualityEnableME1e, QualityEnableME1f, QualityEnableME2a, QualityEnableME2b, QualityEnableME2c, QualityEnableME3a, QualityEnableME3b, QualityEnableME3c, QualityEnableME4a, QualityEnableME4b, QualityEnableME4c, rescaleSinglesPhi, CSCTFSPCoreLogic::run(), run_core, L1MuRegionalCand::setBx(), L1MuRegionalCand::setChargeValidPacked(), L1MuRegionalCand::setEtaPacked(), csc::L1Track::setLocalPhi(), csc::L1Track::setOutputLink(), csc::L1Track::setPtLUTAddress(), csc::L1Track::setRank(), csc::L1Track::setStationIds(), edm::shift, singlesTrackOutput, srLUTs_, relativeConstraints::station, stub_vec_filtered, tracks(), CSCTFSPCoreLogic::tracks(), trigger_on_MB1a, trigger_on_MB1d, trigger_on_ME1a, trigger_on_ME1b, trigger_on_ME2, trigger_on_ME3, trigger_on_ME4, and CSCTriggerNumbering::triggerSubSectorFromLabels().

465 {
466 
467  if( !ptLUT_ )
468  throw cms::Exception("Initialize CSC TF LUTs first (missed call to CSCTFTrackProducer::beginJob?)")<<"CSCTFSectorProcessor::run";
469 
470 
471  l1_tracks.clear();
472  dt_stubs.clear();
473  stub_vec_filtered.clear();
474 
475  std::vector<csctf::TrackStub> stub_vec = stubs.get();
476 
480  for(std::vector<csctf::TrackStub>::const_iterator itr=stub_vec.begin(); itr!=stub_vec.end(); itr++)
481  switch( itr->station() ){
482  case 5: stub_vec_filtered.push_back(*itr); break; // DT stubs get filtered by the core controll register
483  case 4:
484  switch( itr->getMPCLink() ){
485  case 3: if( (kill_fiber&0x4000)==0 && QualityEnableME4c&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
486  case 2: if( (kill_fiber&0x2000)==0 && QualityEnableME4b&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
487  case 1: if( (kill_fiber&0x1000)==0 && QualityEnableME4a&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
488  default: edm::LogWarning("CSCTFSectorProcessor::run()") << "No MPC sorting for LCT: link="<<itr->getMPCLink()<<"\n";
489  }
490  break;
491  case 3:
492  switch( itr->getMPCLink() ){
493  case 3: if( (kill_fiber&0x0800)==0 && QualityEnableME3c&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
494  case 2: if( (kill_fiber&0x0400)==0 && QualityEnableME3b&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
495  case 1: if( (kill_fiber&0x0200)==0 && QualityEnableME3a&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
496  default: edm::LogWarning("CSCTFSectorProcessor::run()") << "No MPC sorting for LCT: link="<<itr->getMPCLink()<<"\n";
497  }
498  break;
499  case 2:
500  switch( itr->getMPCLink() ){
501  case 3: if( (kill_fiber&0x0100)==0 && QualityEnableME2c&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
502  case 2: if( (kill_fiber&0x0080)==0 && QualityEnableME2b&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
503  case 1: if( (kill_fiber&0x0040)==0 && QualityEnableME2a&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
504  default: edm::LogWarning("CSCTFSectorProcessor::run()") << "No MPC sorting for LCT: link="<<itr->getMPCLink()<<"\n";
505  }
506  break;
507  case 1:
508  switch( itr->getMPCLink() + (3*(CSCTriggerNumbering::triggerSubSectorFromLabels(CSCDetId(itr->getDetId().rawId())) - 1)) ){
509  case 6: if( (kill_fiber&0x0020)==0 && QualityEnableME1f&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
510  case 5: if( (kill_fiber&0x0010)==0 && QualityEnableME1e&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
511  case 4: if( (kill_fiber&0x0008)==0 && QualityEnableME1d&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
512  case 3: if( (kill_fiber&0x0004)==0 && QualityEnableME1c&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
513  case 2: if( (kill_fiber&0x0002)==0 && QualityEnableME1b&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
514  case 1: if( (kill_fiber&0x0001)==0 && QualityEnableME1a&(1<<itr->getQuality()) ) stub_vec_filtered.push_back(*itr); break;
515  default: edm::LogWarning("CSCTFSectorProcessor::run()") << "No MPC sorting for LCT: link="<<itr->getMPCLink()<<"\n";
516  }
517  break;
518  default: edm::LogWarning("CSCTFSectorProcessor::run()") << "Invalid station # encountered: "<<itr->station()<<"\n";
519  }
520 
529  for(std::vector<csctf::TrackStub>::iterator itr=stub_vec_filtered.begin(); itr!=stub_vec_filtered.end(); itr++)
530  {
531  if(itr->station() != 5)
532  {
533  CSCDetId id(itr->getDetId().rawId());
534  unsigned fpga = (id.station() == 1) ? CSCTriggerNumbering::triggerSubSectorFromLabels(id) - 1 : id.station();
535 
536  lclphidat lclPhi;
537  try {
538  lclPhi = srLUTs_[FPGAs[fpga]]->localPhi(itr->getStrip(), itr->getPattern(), itr->getQuality(), itr->getBend());
539  } catch( cms::Exception &e ) {
540  bzero(&lclPhi,sizeof(lclPhi));
541  edm::LogWarning("CSCTFSectorProcessor:run()") << "Exception from LocalPhi LUT in " << FPGAs[fpga]
542  << "(strip="<<itr->getStrip()<<",pattern="<<itr->getPattern()<<",quality="<<itr->getQuality()<<",bend="<<itr->getBend()<<")" <<std::endl;
543  }
544 
545  gblphidat gblPhi;
546  try {
547  unsigned csc_id = itr->cscid();
548  if (!m_gangedME1a) csc_id = itr->cscidSeparateME1a();
549  gblPhi = srLUTs_[FPGAs[fpga]]->globalPhiME(lclPhi.phi_local, itr->getKeyWG(), csc_id);
550 
551  } catch( cms::Exception &e ) {
552  bzero(&gblPhi,sizeof(gblPhi));
553  edm::LogWarning("CSCTFSectorProcessor:run()") << "Exception from GlobalPhi LUT in " << FPGAs[fpga]
554  << "(phi_local="<<lclPhi.phi_local<<",KeyWG="<<itr->getKeyWG()<<",csc="<<itr->cscid()<<")"<<std::endl;
555  }
556 
557  gbletadat gblEta;
558  try {
559  gblEta = srLUTs_[FPGAs[fpga]]->globalEtaME(lclPhi.phi_bend_local, lclPhi.phi_local, itr->getKeyWG(), itr->cscid());
560  } catch( cms::Exception &e ) {
561  bzero(&gblEta,sizeof(gblEta));
562  edm::LogWarning("CSCTFSectorProcessor:run()") << "Exception from GlobalEta LUT in " << FPGAs[fpga]
563  << "(phi_bend_local="<<lclPhi.phi_bend_local<<",phi_local="<<lclPhi.phi_local<<",KeyWG="<<itr->getKeyWG()<<",csc="<<itr->cscid()<<")"<<std::endl;
564  }
565 
566  gblphidat gblPhiDT;
567  try {
568  gblPhiDT = srLUTs_[FPGAs[fpga]]->globalPhiMB(lclPhi.phi_local, itr->getKeyWG(), itr->cscid());
569  } catch( cms::Exception &e ) {
570  bzero(&gblPhiDT,sizeof(gblPhiDT));
571  edm::LogWarning("CSCTFSectorProcessor:run()") << "Exception from GlobalPhi DT LUT in " << FPGAs[fpga]
572  << "(phi_local="<<lclPhi.phi_local<<",KeyWG="<<itr->getKeyWG()<<",csc="<<itr->cscid()<<")"<<std::endl;
573  }
574 
575  itr->setEtaPacked(gblEta.global_eta);
576 
577  if(itr->station() == 1 ) {
578  //&& itr->cscId() > 6) { //only ring 3
579  itr->setPhiPacked(gblPhiDT.global_phi);// convert the DT to convert
580  dt_stubs.push_back(*itr); // send stubs to DT
581  }
582 
583  //reconvert the ME1 LCT to the CSCTF units.
584  //the same iterator is used to fill two containers,
585  //the CSCTF one (stub_vec_filtered) and LCTs sent to DTTF (dt_stubs)
586  itr->setPhiPacked(gblPhi.global_phi);
587 
588  LogDebug("CSCTFSectorProcessor:run()") << "LCT found, processed by FPGA: " << FPGAs[fpga] << std::endl
589  << " LCT now has (eta, phi) of: (" << itr->etaValue() << "," << itr->phiValue() <<")\n";
590  }
591  }
592 
594 
601  std::vector<csc::L1Track> tftks;
602 
603  if(run_core){
604  core_->loadData(processedStubs, m_endcap, m_sector, m_minBX, m_maxBX);
606  m_etamin[0], m_etamin[1], m_etamin[2], m_etamin[3],
607  m_etamin[4], m_etamin[5], m_etamin[6], m_etamin[7],
608  m_etamax[0], m_etamax[1], m_etamax[2], m_etamax[3],
609  m_etamax[4], m_etamax[5], m_etamax[6], m_etamax[7],
610  m_etawin[0], m_etawin[1], m_etawin[2],
611  m_etawin[3], m_etawin[4], m_etawin[5], m_etawin[6],
621  m_minBX, m_maxBX) )
622  {
623  l1_tracks = core_->tracks();
624  }
625 
626  tftks = l1_tracks.get();
627 
633  std::vector<csc::L1Track>::iterator titr = tftks.begin();
634 
635  for(; titr != tftks.end(); titr++)
636  {
637  ptadd thePtAddress(titr->ptLUTAddress());
638  ptdat thePtData = ptLUT_->Pt(thePtAddress);
639 
640  if(thePtAddress.track_fr)
641  {
642  titr->setRank(thePtData.front_rank);
643  titr->setChargeValidPacked(thePtData.charge_valid_front);
644  }
645  else
646  {
647  titr->setRank(thePtData.rear_rank);
648  titr->setChargeValidPacked(thePtData.charge_valid_rear);
649  }
650 
651  if( ((titr->ptLUTAddress()>>16)&0xf)==15 )
652  {
653  int unmodBx = titr->bx();
654  titr->setBx(unmodBx+2);
655  }
656  }
657  } //end of if(run_core)
658 
659  l1_tracks = tftks;
660 
661 
662  // Add-on for singles:
663  CSCTriggerContainer<csctf::TrackStub> myStubContainer[7]; //[BX]
664  // Loop over CSC LCTs if triggering on them:
666  for(std::vector<csctf::TrackStub>::iterator itr=stub_vec_filtered.begin(); itr!=stub_vec_filtered.end(); itr++){
667  int station = itr->station()-1;
668  if(station != 4){
669  int subSector = CSCTriggerNumbering::triggerSubSectorFromLabels(CSCDetId(itr->getDetId().rawId()));
670  int mpc = ( subSector ? subSector-1 : station+1 );
671  if( (mpc==0&&trigger_on_ME1a) || (mpc==1&&trigger_on_ME1b) ||
672  (mpc==2&&trigger_on_ME2) || (mpc==3&&trigger_on_ME3) ||
673  (mpc==4&&trigger_on_ME4) ||
674  (mpc==5&& ( (trigger_on_MB1a&&subSector%2==1) || (trigger_on_MB1d&&subSector%2==0) ) ) ){
675  int bx = itr->getBX() - m_minBX;
676  if( bx<0 || bx>=7 ) edm::LogWarning("CSCTFTrackBuilder::buildTracks()") << " LCT BX is out of ["<<m_minBX<<","<<m_maxBX<<") range: "<<itr->getBX();
677  else
678  if( itr->isValid() ) myStubContainer[bx].push_back(*itr);
679  }
680  }
681  }
682 
683  // Core's input was loaded in a relative time window BX=[0-7)
684  // To relate it to time window of tracks (centred at BX=0) we introduce a shift:
685  int shift = (m_maxBX + m_minBX)/2 - m_minBX;
686 
687  // Now we put tracks from singles in a certain bx
688  // if there were no tracks from the core in this endcap/sector/bx
689  CSCTriggerContainer<csc::L1Track> tracksFromSingles;
690  for(int bx=0; bx<7; bx++)
691  if( myStubContainer[bx].get().size() ){ // VP in this bx
692  bool coreTrackExists = false;
693  // tracks are not ordered to be accessible by bx => loop them all
694  std::vector<csc::L1Track> tracks = l1_tracks.get();
695  for(std::vector<csc::L1Track>::iterator trk=tracks.begin(); trk<tracks.end(); trk++)
696  if( (trk->BX() == bx-shift && trk->outputLink() == singlesTrackOutput)
697  || (((trk->ptLUTAddress()>>16)&0xf)==15 && trk->BX()-2 == bx-shift) ){
698  coreTrackExists = true;
699  break;
700  }
701  if( coreTrackExists == false ){
703  csc::L1Track track(trackId);
704  track.setBx(bx-shift);
705  track.setOutputLink(singlesTrackOutput);
706  //CSCCorrelatedLCTDigiCollection singles;
707  std::vector<csctf::TrackStub> stubs = myStubContainer[bx].get();
708  // Select best quality stub, and assign its eta/phi coordinates to the track
709  int qualityME=0, qualityMB=0, ME=100, MB=100, linkME=7;
710  std::vector<csctf::TrackStub>::const_iterator bestStub=stubs.end();
711  for(std::vector<csctf::TrackStub>::const_iterator st_iter=stubs.begin(); st_iter!=stubs.end(); st_iter++){
712  int station = st_iter->station()-1;
713  int subSector = CSCTriggerNumbering::triggerSubSectorFromLabels(CSCDetId(st_iter->getDetId().rawId()));
714  int mpc = ( subSector ? subSector-1 : station+1 );
715  // Sort MB stubs first (priority: quality OR MB1a > MB1b for the same quality)
716  if( mpc==5 && (st_iter->getQuality()>qualityMB || (st_iter->getQuality()==qualityMB&&subSector<MB)) ){
717  qualityMB = st_iter->getQuality();
718  MB = subSector;
719  if(ME>4) bestStub = st_iter; // do not select this stub if ME already had any candidate
720  }
721  // Sort ME stubs (priority: quality OR ME1a > ME1b > ME2 > ME3 > ME4 for the same quality)
722  if( mpc<5 && (st_iter->getQuality()> qualityME
723  || (st_iter->getQuality()==qualityME && mpc< ME)
724  || (st_iter->getQuality()==qualityME && mpc==ME && st_iter->getMPCLink()<linkME))) {
725  qualityME = st_iter->getQuality();
726  ME = mpc;
727  linkME = st_iter->getMPCLink();
728  bestStub = st_iter;
729  }
730  }
731  unsigned rescaled_phi = 999;
732  if (m_firmSP <= 20100210) {
733  // buggy implementation of the phi for singles in the wrapper...
734  // at the end data/emulator have to agree: e.g. wrong in the same way
735  // BUG: getting the lowest 7 bits instead the 7 most significant ones.
736  rescaled_phi = unsigned(24*(bestStub->phiPacked()&0x7f)/128.);
737  }
738  else {
739  // correct implementation :-)
740  rescaled_phi = unsigned(24*(bestStub->phiPacked()>>5)/128.);
741  }
742 
743  unsigned unscaled_phi = bestStub->phiPacked()>>7 ;
744  track.setLocalPhi(rescaleSinglesPhi?rescaled_phi:unscaled_phi);
745  track.setEtaPacked((bestStub->etaPacked()>>2)&0x1f);
746  switch( bestStub->station() ){
747  case 1: track.setStationIds(bestStub->getMPCLink(),0,0,0,0); break;
748  case 2: track.setStationIds(0,bestStub->getMPCLink(),0,0,0); break;
749  case 3: track.setStationIds(0,0,bestStub->getMPCLink(),0,0); break;
750  case 4: track.setStationIds(0,0,0,bestStub->getMPCLink(),0); break;
751  case 5: track.setStationIds(0,0,0,0,bestStub->getMPCLink()); break;
752  default: edm::LogError("CSCTFSectorProcessor::run()") << "Illegal LCT link="<<bestStub->station()<<"\n"; break;
753  }
754  // singles.insertDigi(CSCDetId(st_iter->getDetId().rawId()),*st_iter);
755  //tracksFromSingles.push_back(L1CSCTrack(track,singles));
756  track.setPtLUTAddress( (11<<16) | ((bestStub->etaPacked()<<9)&0xf000) );
757  ptadd thePtAddress( track.ptLUTAddress() );
758  ptdat thePtData = ptLUT_->Pt(thePtAddress);
759  if( thePtAddress.track_fr ){
760  track.setRank(thePtData.front_rank);
761  track.setChargeValidPacked(thePtData.charge_valid_front);
762  } else {
763  track.setRank(thePtData.rear_rank);
764  track.setChargeValidPacked(thePtData.charge_valid_rear);
765  }
766  tracksFromSingles.push_back(track);
767  }
768  }
769  std::vector<csc::L1Track> single_tracks = tracksFromSingles.get();
770  if( single_tracks.size() ) l1_tracks.push_many(single_tracks);
771  // End of add-on for singles
772 
773  return (l1_tracks.get().size() > 0);
774 }
#define LogDebug(id)
std::vector< T > get() const
ptdat Pt(const ptadd &) const
Definition: CSCTFPtLUT.cc:130
CSCTriggerContainer< csctf::TrackStub > dt_stubs
CSCTFSPCoreLogic * core_
std::vector< csctf::TrackStub > stub_vec_filtered
void push_back(const T data)
static const std::string FPGAs[5]
void push_many(const std::vector< T > data)
Definition: ME.h:11
bool run(const unsigned &endcap, const unsigned &sector, const unsigned &latency, const unsigned &etamin1, const unsigned &etamin2, const unsigned &etamin3, const unsigned &etamin4, const unsigned &etamin5, const unsigned &etamin6, const unsigned &etamin7, const unsigned &etamin8, const unsigned &etamax1, const unsigned &etamax2, const unsigned &etamax3, const unsigned &etamax4, const unsigned &etamax5, const unsigned &etamax6, const unsigned &etamax7, const unsigned &etamax8, const unsigned &etawin1, const unsigned &etawin2, const unsigned &etawin3, const unsigned &etawin4, const unsigned &etawin5, const unsigned &etawin6, const unsigned &etawin7, const unsigned &mindphip, const unsigned &mindetap, const unsigned &mindeta12_accp, const unsigned &maxdeta12_accp, const unsigned &maxdphi12_accp, const unsigned &mindeta13_accp, const unsigned &maxdeta13_accp, const unsigned &maxdphi13_accp, const unsigned &mindeta112_accp, const unsigned &maxdeta112_accp, const unsigned &maxdphi112_accp, const unsigned &mindeta113_accp, const unsigned &maxdeta113_accp, const unsigned &maxdphi113_accp, const unsigned &mindphip_halo, const unsigned &mindetap_halo, const unsigned &straightp, const unsigned &curvedp, const unsigned &mbaPhiOff, const unsigned &mbbPhiOff, const unsigned &m_extend_length, const unsigned &m_allowALCTonly, const unsigned &m_allowCLCTonly, const unsigned &m_preTrigger, const unsigned &m_widePhi, const int &minBX, const int &maxBX)
CSCTriggerContainer< csc::L1Track > l1_tracks
std::map< std::string, CSCSectorReceiverLUT * > srLUTs_
class pt_address ptadd
class pt_data ptdat
class global_phi_data gblphidat
class local_phi_data lclphidat
Data Types.
static int triggerSubSectorFromLabels(int station, int chamber)
CSCTriggerContainer< csc::L1Track > tracks() const
MonitorElement ME
static unsigned int const shift
void loadData(const CSCTriggerContainer< csctf::TrackStub > &, const unsigned &endcap, const unsigned &sector, const int &minBX, const int &maxBX)
CSCTriggerContainer< csc::L1Track > tracks()
class global_eta_data gbletadat
CSCTriggerContainer<csc::L1Track> CSCTFSectorProcessor::tracks ( void  ) const
inline

Definition at line 44 of file CSCTFSectorProcessor.h.

References l1_tracks.

Referenced by CSCTFTrackBuilder::buildTracks(), and run().

44 { return l1_tracks; }
CSCTriggerContainer< csc::L1Track > l1_tracks

Member Data Documentation

CSCTFSPCoreLogic* CSCTFSectorProcessor::core_
private
CSCTriggerContainer<csctf::TrackStub> CSCTFSectorProcessor::dt_stubs
private

Definition at line 97 of file CSCTFSectorProcessor.h.

Referenced by dtStubs(), and run().

std::map<int, int> CSCTFSectorProcessor::firmSP_Map
private

Definition at line 107 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), and initialize().

const std::string CSCTFSectorProcessor::FPGAs = {"F1","F2","F3","F4","F5"}
staticprivate

Definition at line 100 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), run(), and ~CSCTFSectorProcessor().

bool CSCTFSectorProcessor::initializeFromPSet
private

Definition at line 63 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), and initialize().

bool CSCTFSectorProcessor::isCoreVerbose
private

Definition at line 108 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), and initialize().

int CSCTFSectorProcessor::kill_fiber
private

Definition at line 86 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

CSCTriggerContainer<csc::L1Track> CSCTFSectorProcessor::l1_tracks
private

Definition at line 96 of file CSCTFSectorProcessor.h.

Referenced by run(), and tracks().

int CSCTFSectorProcessor::m_allowALCTonly
private

Definition at line 68 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_allowCLCTonly
private

Definition at line 68 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_bxa_depth
private

Definition at line 68 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_curvedp
private

Definition at line 77 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

unsigned CSCTFSectorProcessor::m_endcap
private

Definition at line 64 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), and run().

int CSCTFSectorProcessor::m_etamax[8]
private

Definition at line 70 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_etamin[8]
private

Definition at line 70 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_etawin[7]
private

Definition at line 70 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_firmDD
private

Definition at line 94 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), and readParameters().

int CSCTFSectorProcessor::m_firmFA
private

Definition at line 94 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), and readParameters().

int CSCTFSectorProcessor::m_firmSP
private

Definition at line 94 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_firmVM
private

Definition at line 94 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), and readParameters().

bool CSCTFSectorProcessor::m_gangedME1a
private

Definition at line 61 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), and run().

unsigned CSCTFSectorProcessor::m_latency
private

Definition at line 65 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), and run().

int CSCTFSectorProcessor::m_maxBX
private

Definition at line 69 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), maxBX(), and run().

int CSCTFSectorProcessor::m_maxdeta112_accp
private

Definition at line 74 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_maxdeta113_accp
private

Definition at line 75 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_maxdeta12_accp
private

Definition at line 72 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_maxdeta13_accp
private

Definition at line 73 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_maxdphi112_accp
private

Definition at line 74 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_maxdphi113_accp
private

Definition at line 75 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_maxdphi12_accp
private

Definition at line 72 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_maxdphi13_accp
private

Definition at line 73 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_mbaPhiOff
private

Definition at line 78 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_mbbPhiOff
private

Definition at line 78 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_minBX
private

Definition at line 69 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), minBX(), and run().

int CSCTFSectorProcessor::m_mindeta112_accp
private

Definition at line 74 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_mindeta113_accp
private

Definition at line 75 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_mindeta12_accp
private

Definition at line 72 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_mindeta13_accp
private

Definition at line 73 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_mindetap
private

Definition at line 71 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_mindetap_halo
private

Definition at line 76 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_mindphip
private

Definition at line 71 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_mindphip_halo
private

Definition at line 76 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_preTrigger
private

Definition at line 68 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

unsigned CSCTFSectorProcessor::m_sector
private

Definition at line 64 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), and run().

int CSCTFSectorProcessor::m_straightp
private

Definition at line 77 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::m_widePhi
private

Definition at line 79 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

CSCTFPtLUT* CSCTFSectorProcessor::ptLUT_
private
int CSCTFSectorProcessor::QualityEnableME1a
private

Definition at line 82 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME1b
private

Definition at line 82 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME1c
private

Definition at line 82 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME1d
private

Definition at line 82 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME1e
private

Definition at line 82 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME1f
private

Definition at line 82 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME2a
private

Definition at line 83 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME2b
private

Definition at line 83 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME2c
private

Definition at line 83 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME3a
private

Definition at line 84 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME3b
private

Definition at line 84 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME3c
private

Definition at line 84 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME4a
private

Definition at line 85 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME4b
private

Definition at line 85 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::QualityEnableME4c
private

Definition at line 85 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::rescaleSinglesPhi
private

Definition at line 92 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::run_core
private

Definition at line 87 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

unsigned int CSCTFSectorProcessor::singlesTrackOutput
private

Definition at line 91 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::singlesTrackPt
private

Definition at line 90 of file CSCTFSectorProcessor.h.

std::map<std::string, CSCSectorReceiverLUT*> CSCTFSectorProcessor::srLUTs_
private

Definition at line 102 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), run(), and ~CSCTFSectorProcessor().

std::vector<csctf::TrackStub> CSCTFSectorProcessor::stub_vec_filtered
private

Definition at line 98 of file CSCTFSectorProcessor.h.

Referenced by filteredStubs(), and run().

unsigned CSCTFSectorProcessor::TMB07
private

Definition at line 64 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor().

int CSCTFSectorProcessor::trigger_on_MB1a
private

Definition at line 89 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::trigger_on_MB1d
private

Definition at line 89 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::trigger_on_ME1a
private

Definition at line 88 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::trigger_on_ME1b
private

Definition at line 88 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::trigger_on_ME2
private

Definition at line 88 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::trigger_on_ME3
private

Definition at line 88 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().

int CSCTFSectorProcessor::trigger_on_ME4
private

Definition at line 88 of file CSCTFSectorProcessor.h.

Referenced by CSCTFSectorProcessor(), initialize(), readParameters(), and run().