17 const unsigned& sector,
35 if( m_maxBX-m_minBX >= 7 )
edm::LogWarning(
"CSCTFTrackBuilder::ctor")<<
" BX window width >= 7BX. Resetting m_maxBX="<<(m_maxBX=m_minBX+6);
119 for(
int i = 1;
i <= 4; ++
i)
122 for(
int j = 0;
j < 2;
j++)
133 if(initializeFromPSet){
139 LogDebug(
"CSCTFSectorProcessor") <<
"Looking for PT LUT in EventSetup for endcap="<<
m_endcap<<
", sector="<<
m_sector;
152 firmSP_Map.insert(std::pair<int,int>(20100210,20100122));
153 firmSP_Map.insert(std::pair<int,int>(20100617,20100122));
154 firmSP_Map.insert(std::pair<int,int>(20100629,20100122));
156 firmSP_Map.insert(std::pair<int,int>(20100728,20100728));
158 firmSP_Map.insert(std::pair<int,int>(20100901,20100901));
161 firmSP_Map.insert(std::pair<int,int>(20101011,20101011));
162 firmSP_Map.insert(std::pair<int,int>(20101210,20101210));
163 firmSP_Map.insert(std::pair<int,int>(20110204,20110118));
164 firmSP_Map.insert(std::pair<int,int>(20110322,20110118));
166 firmSP_Map.insert(std::pair<int,int>(20120131,20120131));
167 firmSP_Map.insert(std::pair<int,int>(20120227,20120131));
169 firmSP_Map.insert(std::pair<int,int>(20120313,20120313));
170 firmSP_Map.insert(std::pair<int,int>(20120319,20120313));
172 firmSP_Map.insert(std::pair<int,int>(20120730,20120730));
174 firmSP_Map.insert(std::pair<int,int>(20140424,20140424));
176 firmSP_Map.insert(std::pair<int,int>(20140515,20140515));
185 LogDebug(
"CSCTFSectorProcessor") <<
"Initializing pT LUT from EventSetup";
199 LogDebug(
"CSCTFSectorProcessor") <<
"\n !!! CSCTF EMULATOR CONFIGURATION !!!"
200 <<
"\n\nCORE CONFIGURATION"
201 <<
"\n Coincidence Trigger? " <<
run_core
210 <<
"\n BX Analyzer depth: assemble coinc. track with stubs in +/-" <<
m_bxa_depth <<
" Bxs"
211 <<
"\n Is Wide Phi Extrapolation (DeltaPhi valid up to ~15 degrees, otherwise ~7.67 degrees)? " <<
m_widePhi
217 <<
"\n\nVARIOUS CONFIGURATION PARAMETERS"
221 <<
"\nQualityEnableME1a (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME1a
222 <<
"\nQualityEnableME1b (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME1b
223 <<
"\nQualityEnableME1c (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME1c
224 <<
"\nQualityEnableME1d (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME1d
225 <<
"\nQualityEnableME1e (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME1e
226 <<
"\nQualityEnableME1f (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME1f
227 <<
"\nQualityEnableME2a (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME2a
228 <<
"\nQualityEnableME2b (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME2b
229 <<
"\nQualityEnableME2c (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME2c
230 <<
"\nQualityEnableME3a (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME3a
231 <<
"\nQualityEnableME3b (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME3b
232 <<
"\nQualityEnableME3c (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME3c
233 <<
"\nQualityEnableME4a (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME4a
234 <<
"\nQualityEnableME4b (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME4b
235 <<
"\nQualityEnableME4c (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME4c
243 <<
"\n\nDAT_ETA REGISTERS"
244 <<
"\nMinimum eta difference for track cancellation logic=" <<
m_mindetap
245 <<
"\nMinimum eta difference for halo track cancellation logic=" <<
m_mindetap_halo
247 <<
"\nMinimum eta for ME1-ME2 collision tracks=" <<
m_etamin[0]
248 <<
"\nMinimum eta for ME1-ME3 collision tracks=" <<
m_etamin[1]
249 <<
"\nMinimum eta for ME2-ME3 collision tracks=" <<
m_etamin[2]
250 <<
"\nMinimum eta for ME2-ME4 collision tracks=" <<
m_etamin[3]
251 <<
"\nMinimum eta for ME3-ME4 collision tracks=" <<
m_etamin[4]
252 <<
"\nMinimum eta for ME1-ME2 collision tracks in overlap region=" <<
m_etamin[5]
253 <<
"\nMinimum eta for ME2-MB1 collision tracks=" <<
m_etamin[6]
254 <<
"\nMinimum eta for ME1-ME4 collision tracks=" <<
m_etamin[7]
256 <<
"\nMinimum eta difference for ME1-ME2 (except ME1/1) halo tracks=" <<
m_mindeta12_accp
257 <<
"\nMinimum eta difference for ME1-ME3 (except ME1/1) halo tracks=" <<
m_mindeta13_accp
261 <<
"\nMaximum eta for ME1-ME2 collision tracks=" <<
m_etamax[0]
262 <<
"\nMaximum eta for ME1-ME3 collision tracks=" <<
m_etamax[1]
263 <<
"\nMaximum eta for ME2-ME3 collision tracks=" <<
m_etamax[2]
264 <<
"\nMaximum eta for ME2-ME4 collision tracks=" <<
m_etamax[3]
265 <<
"\nMaximum eta for ME3-ME4 collision tracks=" <<
m_etamax[4]
266 <<
"\nMaximum eta for ME1-ME2 collision tracks in overlap region=" <<
m_etamax[5]
267 <<
"\nMaximum eta for ME2-MB1 collision tracks=" <<
m_etamax[6]
268 <<
"\nMaximum eta for ME1-ME4 collision tracks=" <<
m_etamax[7]
270 <<
"\nMaximum eta difference for ME1-ME2 (except ME1/1) halo tracks=" <<
m_maxdeta12_accp
271 <<
"\nMaximum eta difference for ME1-ME3 (except ME1/1) halo tracks=" <<
m_maxdeta13_accp
275 <<
"\nEta window for ME1-ME2 collision tracks=" <<
m_etawin[0]
276 <<
"\nEta window for ME1-ME3 collision tracks=" <<
m_etawin[1]
277 <<
"\nEta window for ME2-ME3 collision tracks=" <<
m_etawin[2]
278 <<
"\nEta window for ME2-ME4 collision tracks=" <<
m_etawin[3]
279 <<
"\nEta window for ME3-ME4 collision tracks=" <<
m_etawin[4]
280 <<
"\nEta window for ME1-ME2 collision tracks in overlap region=" <<
m_etawin[5]
281 <<
"\nEta window for ME1-ME4 collision tracks=" <<
m_etawin[6]
283 <<
"\nMaximum phi difference for ME1-ME2 (except ME1/1) halo tracks=" <<
m_maxdphi12_accp
284 <<
"\nMaximum phi difference for ME1-ME3 (except ME1/1) halo tracks=" <<
m_maxdphi13_accp
288 <<
"\nMinimum phi difference for track cancellation logic=" <<
m_mindphip
289 <<
"\nMinimum phi difference for halo track cancellation logic=" <<
m_mindphip_halo
291 <<
"\nParameter for the correction of misaligned 1-2-3-4 straight tracks =" <<
m_straightp
292 <<
"\nParameter for the correction of misaligned 1-2-3-4 curved tracks=" <<
m_curvedp
296 <<
"\nFirmware SP year+month+day:" <<
m_firmSP
297 <<
"\nFirmware FA year+month+day:" <<
m_firmFA
298 <<
"\nFirmware DD year+month+day:" <<
m_firmDD
299 <<
"\nFirmware VM year+month+day:" <<
m_firmVM;
313 core_ -> SetCoreFirmwareVersion (firmVersCore);
314 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\nCore Firmware is set to " <<
core_ -> GetCoreFirmwareVersion();
466 edm::LogError(
"CSCTFTrackBuilder")<<
"kill_fiber parameter left uninitialized";
471 edm::LogError(
"CSCTFTrackBuilder")<<
"run_core parameter left uninitialized";
476 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_ME1a parameter left uninitialized";
481 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_ME1b parameter left uninitialized";
486 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_ME2 parameter left uninitialized";
491 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_ME3 parameter left uninitialized";
496 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_ME4 parameter left uninitialized";
501 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_MB1a parameter left uninitialized";
506 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_MB1d parameter left uninitialized";
514 edm::LogError(
"CSCTFTrackBuilder")<<
"singlesTrackOutput parameter left uninitialized";
519 edm::LogError(
"CSCTFTrackBuilder")<<
"rescaleSinglesPhi parameter left uninitialized";
525 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME1a parameter left uninitialized";
530 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME1b parameter left uninitialized";
535 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME1c parameter left uninitialized";
540 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME1d parameter left uninitialized";
545 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME1e parameter left uninitialized";
550 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME1f parameter left uninitialized";
555 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME2a parameter left uninitialized";
560 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME2b parameter left uninitialized";
565 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME2c parameter left uninitialized";
570 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME3a parameter left uninitialized";
575 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME3b parameter left uninitialized";
580 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME3c parameter left uninitialized";
585 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME4a parameter left uninitialized";
590 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME4b parameter left uninitialized";
595 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME4c parameter left uninitialized";
601 edm::LogError(
"CSCTFSectorProcessor")<<
" firmwareSP parameter left uninitialized!!!\n";
606 edm::LogError(
"CSCTFSectorProcessor")<<
" firmwareFA parameter left uninitialized!!!\n";
611 edm::LogError(
"CSCTFSectorProcessor")<<
" firmwareDD parameter left uninitialized!!!\n";
616 edm::LogError(
"CSCTFSectorProcessor")<<
" firmwareVM parameter left uninitialized!!!\n";
625 <<
" firmwareDD (=" <<
m_firmDD <<
"), "
626 <<
" firmwareVM (=" << m_firmVM <<
") are NOT identical: it shoultd NOT happen!\n";
637 std::vector<unsigned>::const_iterator iter;
639 std::vector<unsigned> etawins = pset.
getParameter<std::vector<unsigned> >(
"EtaWindows");
640 for(iter=etawins.begin(),index=0; iter!=etawins.end()&&index<7; iter++,index++)
m_etawin[index] = *iter;
641 std::vector<unsigned> etamins = pset.
getParameter<std::vector<unsigned> >(
"EtaMin");
642 for(iter=etamins.begin(),index=0; iter!=etamins.end()&&index<8; iter++,index++)
m_etamin[index] = *iter;
643 std::vector<unsigned> etamaxs = pset.
getParameter<std::vector<unsigned> >(
"EtaMax");
644 for(iter=etamaxs.begin(),index=0; iter!=etamaxs.end()&&index<8; iter++,index++)
m_etamax[index] = *iter;
704 for(
int i = 0;
i < 5; ++
i)
726 edm::LogError(
"CSCTFSectorProcessor::run()") <<
"No CSCTF PTLUTs: Initialize CSC TF LUTs first (missed call to CSCTFTrackProducer::beginJob?\n";
735 std::vector<csctf::TrackStub> stub_vec = stubs.
get();
740 for(std::vector<csctf::TrackStub>::const_iterator itr=stub_vec.begin(); itr!=stub_vec.end(); itr++)
741 switch( itr->station() ){
744 switch( itr->getMPCLink() ){
748 default:
edm::LogWarning(
"CSCTFSectorProcessor::run()") <<
"No MPC sorting for LCT: link="<<itr->getMPCLink()<<
"\n";
752 switch( itr->getMPCLink() ){
756 default:
edm::LogWarning(
"CSCTFSectorProcessor::run()") <<
"No MPC sorting for LCT: link="<<itr->getMPCLink()<<
"\n";
760 switch( itr->getMPCLink() ){
764 default:
edm::LogWarning(
"CSCTFSectorProcessor::run()") <<
"No MPC sorting for LCT: link="<<itr->getMPCLink()<<
"\n";
775 default:
edm::LogWarning(
"CSCTFSectorProcessor::run()") <<
"No MPC sorting for LCT: link="<<itr->getMPCLink()<<
"\n";
778 default:
edm::LogWarning(
"CSCTFSectorProcessor::run()") <<
"Invalid station # encountered: "<<itr->station()<<
"\n";
791 if(itr->station() != 5)
793 CSCDetId id(itr->getDetId().rawId());
798 lclPhi =
srLUTs_[
FPGAs[fpga]]->localPhi(itr->getStrip(), itr->getPattern(), itr->getQuality(), itr->getBend(),
m_gangedME1a);
800 bzero(&lclPhi,
sizeof(lclPhi));
801 edm::LogWarning(
"CSCTFSectorProcessor:run()") <<
"Exception from LocalPhi LUT in " <<
FPGAs[fpga]
802 <<
"(strip="<<itr->getStrip()<<
",pattern="<<itr->getPattern()<<
",quality="<<itr->getQuality()<<
",bend="<<itr->getBend()<<
")" <<std::endl;
807 unsigned csc_id = itr->cscid();
814 bzero(&gblPhi,
sizeof(gblPhi));
815 edm::LogWarning(
"CSCTFSectorProcessor:run()") <<
"Exception from GlobalPhi LUT in " <<
FPGAs[fpga]
816 <<
"(phi_local="<<lclPhi.phi_local<<
",KeyWG="<<itr->getKeyWG()<<
",csc="<<itr->cscid()<<
")"<<std::endl;
821 unsigned csc_id = itr->cscid();
823 gblEta =
srLUTs_[
FPGAs[fpga]]->globalEtaME(lclPhi.phi_bend_local, lclPhi.phi_local, itr->getKeyWG(), csc_id,
m_gangedME1a);
826 bzero(&gblEta,
sizeof(gblEta));
827 edm::LogWarning(
"CSCTFSectorProcessor:run()") <<
"Exception from GlobalEta LUT in " <<
FPGAs[fpga]
828 <<
"(phi_bend_local="<<lclPhi.phi_bend_local<<
",phi_local="<<lclPhi.phi_local<<
",KeyWG="<<itr->getKeyWG()<<
",csc="<<itr->cscid()<<
")"<<std::endl;
835 bzero(&gblPhiDT,
sizeof(gblPhiDT));
836 edm::LogWarning(
"CSCTFSectorProcessor:run()") <<
"Exception from GlobalPhi DT LUT in " <<
FPGAs[fpga]
837 <<
"(phi_local="<<lclPhi.phi_local<<
",KeyWG="<<itr->getKeyWG()<<
",csc="<<itr->cscid()<<
")"<<std::endl;
840 itr->setEtaPacked(gblEta.global_eta);
842 if(itr->station() == 1 ) {
844 itr->setPhiPacked(gblPhiDT.global_phi);
851 itr->setPhiPacked(gblPhi.global_phi);
853 LogDebug(
"CSCTFSectorProcessor:run()") <<
"LCT found, processed by FPGA: " <<
FPGAs[fpga] << std::endl
854 <<
" LCT now has (eta, phi) of: (" << itr->etaValue() <<
"," << itr->phiValue() <<
")\n";
866 std::vector<csc::L1Track> tftks;
899 std::vector<csc::L1Track>::iterator titr = tftks.begin();
901 for(; titr != tftks.end(); titr++)
903 ptadd thePtAddress(titr->ptLUTAddress());
905 if(thePtAddress.track_fr)
907 titr->setRank(thePtData.front_rank);
908 titr->setChargeValidPacked(thePtData.charge_valid_front);
912 titr->setRank(thePtData.rear_rank);
913 titr->setChargeValidPacked(thePtData.charge_valid_rear);
916 if( ((titr->ptLUTAddress()>>16)&0xf)==15 )
918 int unmodBx = titr->bx();
919 titr->setBx(unmodBx+2);
932 int station = itr->station()-1;
935 int mpc = ( subSector ? subSector-1 : station+1 );
940 int bx = itr->getBX() -
m_minBX;
941 if( bx<0 || bx>=7 )
edm::LogWarning(
"CSCTFTrackBuilder::buildTracks()") <<
" LCT BX is out of ["<<
m_minBX<<
","<<
m_maxBX<<
") range: "<<itr->getBX();
943 if( itr->isValid() ) myStubContainer[bx].push_back(*itr);
955 for(
int bx=0; bx<7; bx++)
956 if( myStubContainer[bx].
get().size() ){
957 bool coreTrackExists =
false;
960 for(std::vector<csc::L1Track>::iterator trk=tracks.begin(); trk<tracks.end(); trk++)
962 || (((trk->ptLUTAddress()>>16)&0xf)==15 && trk->BX()-2 == bx-
shift) ){
963 coreTrackExists =
true;
966 if( coreTrackExists ==
false ){
969 track.
setBx(bx-shift);
972 std::vector<csctf::TrackStub> stubs = myStubContainer[bx].
get();
974 int qualityME=0, qualityMB=0,
ME=100, MB=100, linkME=7;
975 std::vector<csctf::TrackStub>::const_iterator bestStub=stubs.end();
976 for(std::vector<csctf::TrackStub>::const_iterator st_iter=stubs.begin(); st_iter!=stubs.end(); st_iter++){
977 int station = st_iter->station()-1;
979 int mpc = ( subSector ? subSector-1 : station+1 );
981 if( mpc==5 && (st_iter->getQuality()>qualityMB || (st_iter->getQuality()==qualityMB&&subSector<MB)) ){
982 qualityMB = st_iter->getQuality();
984 if(
ME>4) bestStub = st_iter;
987 if( mpc<5 && (st_iter->getQuality()> qualityME
988 || (st_iter->getQuality()==qualityME && mpc<
ME)
989 || (st_iter->getQuality()==qualityME && mpc==
ME && st_iter->getMPCLink()<linkME))) {
990 qualityME = st_iter->getQuality();
992 linkME = st_iter->getMPCLink();
996 unsigned rescaled_phi = 999;
1001 rescaled_phi = unsigned(24*(bestStub->phiPacked()&0x7f)/128.);
1005 rescaled_phi = unsigned(24*(bestStub->phiPacked()>>5)/128.);
1008 unsigned unscaled_phi = bestStub->phiPacked()>>7 ;
1011 switch( bestStub->station() ){
1012 case 1: track.
setStationIds(bestStub->getMPCLink(),0,0,0,0);
break;
1013 case 2: track.
setStationIds(0,bestStub->getMPCLink(),0,0,0);
break;
1014 case 3: track.
setStationIds(0,0,bestStub->getMPCLink(),0,0);
break;
1015 case 4: track.
setStationIds(0,0,0,bestStub->getMPCLink(),0);
break;
1016 case 5: track.
setStationIds(0,0,0,0,bestStub->getMPCLink());
break;
1017 default:
edm::LogError(
"CSCTFSectorProcessor::run()") <<
"Illegal LCT link="<<bestStub->station()<<
"\n";
break;
1021 track.
setPtLUTAddress( (1<<16) | ((bestStub->etaPacked()<<9)&0xf000) );
1024 if( thePtAddress.track_fr ){
1025 track.
setRank(thePtData.front_rank);
1028 track.
setRank(thePtData.rear_rank);
1034 std::vector<csc::L1Track> single_tracks = tracksFromSingles.
get();
1045 <<
"******************************* \n"
1046 <<
"*** DISCLAIMER *** \n"
1047 <<
"******************************* \n"
1048 <<
"\n Firmware SP version (year+month+day)=" << firmSP
1049 <<
"\n Firmware FA/VM/DD version (year+month+day)=" << firmFA;
1050 if (firmSP==20100210)
1051 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
" -> KNOWN BUGS IN THE FIRMWARE:\n"
1052 <<
"\t * Wrong phi assignment for singles\n"
1053 <<
"\t * Wrapper passes to the core only even quality DT stubs\n"
1054 <<
"\n -> BUGS ARE GOING TO BE EMULATED BY THE SOFTWARE\n\n";
1057 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t * Correct phi assignment for singles\n";
1059 if (firmSP==20100629){
1060 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t * Correct MB quality masking in the wrapper\n"
1061 <<
"\t * Core is 20100122\n";
1064 if (firmSP==20100728)
1065 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t * Inverted MB clocks\n";
1067 if (firmSP==20100901)
1068 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t * Inverted charge bit\n";
1070 if (firmSP==20101011)
1071 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t **** WARNING THIS FIRMWARE IS UNDER TEST ****\n"
1072 <<
"\t * Added CSC-DT assembling tracks ME1-MB2/1 \n";
1073 if (firmSP==20101210)
1074 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t **** WARNING THIS FIRMWARE IS UNDER TEST ****\n"
1075 <<
"\t * New Ghost Busting Algorithm Removing Tracks\n"
1076 <<
"\t Sharing at Least One LCT\n";
1078 if (firmSP==20110118)
1079 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t **** WARNING THIS FIRMWARE IS UNDER TEST ****\n"
1080 <<
"\t * New Ghost Busting Algorithm Removing Tracks\n"
1081 <<
"\t Sharing at Least One LCT\n"
1082 <<
"\t * Passing CLCT and PhiBend for PT LUTs\n";
1083 if (firmSP==20120131)
1084 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t **** WARNING THIS FIRMWARE IS UNDER TEST ****\n"
1085 <<
"\t * non-linear dphi12 dphi23, use deta for PTLUTs \n";
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
void setLocalPhi(const unsigned &lphi)
void loadData(const CSCTriggerContainer< csctf::TrackStub > &, const unsigned &endcap, const unsigned §or, const int &minBX, const int &maxBX, const bool gangedME1a)
std::vector< T > get() const
ptdat Pt(const ptadd &) const
CSCTriggerContainer< csctf::TrackStub > dt_stubs
void readParameters(const edm::ParameterSet &pset)
std::vector< csctf::TrackStub > stub_vec_filtered
void initialize(const edm::EventSetup &c)
KK.
void setPtLUTAddress(const unsigned &adr)
void printDisclaimer(int firmSP, int firmFA)
static const std::string FPGAs[5]
void setChargeValidPacked(unsigned valid)
Set Charge Valid.
unsigned int singlesTrackOutput
void push_back(const T &data)
int run(const CSCTriggerContainer< csctf::TrackStub > &)
void setRank(const unsigned &rank)
void setBx(int bx)
Set Bunch Crossing.
bool run(const unsigned &endcap, const unsigned §or, 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)
unsigned ptLUTAddress() const
CSCTriggerContainer< csc::L1Track > l1_tracks
void push_many(const std::vector< T > &data)
std::map< std::string, CSCSectorReceiverLUT * > srLUTs_
CSCTFSectorProcessor(const unsigned &endcap, const unsigned §or, const edm::ParameterSet &pset, bool tmb07, const L1MuTriggerScales *scales, const L1MuTriggerPtScale *ptScale)
class global_phi_data gblphidat
void setOutputLink(unsigned oPL)
T const * product() const
class local_phi_data lclphidat
Data Types.
static int triggerSubSectorFromLabels(int station, int chamber)
CSCTriggerContainer< csc::L1Track > tracks() const
void setEtaPacked(unsigned eta)
Set Eta: 6-bit code.
static unsigned int const shift
void setStationIds(const unsigned &me1, const unsigned &me2, const unsigned &me3, const unsigned &me4, const unsigned &mb1)
CSCTriggerContainer< csc::L1Track > tracks()
class global_eta_data gbletadat
std::map< int, int > firmSP_Map