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));
181 LogDebug(
"CSCTFSectorProcessor") <<
"Initializing pT LUT from EventSetup";
195 LogDebug(
"CSCTFSectorProcessor") <<
"\n !!! CSCTF EMULATOR CONFIGURATION !!!"
196 <<
"\n\nCORE CONFIGURATION"
197 <<
"\n Coincidence Trigger? " <<
run_core
206 <<
"\n BX Analyzer depth: assemble coinc. track with stubs in +/-" <<
m_bxa_depth <<
" Bxs"
207 <<
"\n Is Wide Phi Extrapolation (DeltaPhi valid up to ~15 degrees, otherwise ~7.67 degrees)? " <<
m_widePhi
213 <<
"\n\nVARIOUS CONFIGURATION PARAMETERS"
217 <<
"\nQualityEnableME1a (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME1a
218 <<
"\nQualityEnableME1b (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME1b
219 <<
"\nQualityEnableME1c (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME1c
220 <<
"\nQualityEnableME1d (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME1d
221 <<
"\nQualityEnableME1e (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME1e
222 <<
"\nQualityEnableME1f (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME1f
223 <<
"\nQualityEnableME2a (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME2a
224 <<
"\nQualityEnableME2b (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME2b
225 <<
"\nQualityEnableME2c (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME2c
226 <<
"\nQualityEnableME3a (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME3a
227 <<
"\nQualityEnableME3b (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME3b
228 <<
"\nQualityEnableME3c (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME3c
229 <<
"\nQualityEnableME4a (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME4a
230 <<
"\nQualityEnableME4b (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME4b
231 <<
"\nQualityEnableME4c (in general accept all LCT qualities, i.e. 0xFFFF is expected)=" <<
QualityEnableME4c
239 <<
"\n\nDAT_ETA REGISTERS"
240 <<
"\nMinimum eta difference for track cancellation logic=" <<
m_mindetap
241 <<
"\nMinimum eta difference for halo track cancellation logic=" <<
m_mindetap_halo
243 <<
"\nMinimum eta for ME1-ME2 collision tracks=" <<
m_etamin[0]
244 <<
"\nMinimum eta for ME1-ME3 collision tracks=" <<
m_etamin[1]
245 <<
"\nMinimum eta for ME2-ME3 collision tracks=" <<
m_etamin[2]
246 <<
"\nMinimum eta for ME2-ME4 collision tracks=" <<
m_etamin[3]
247 <<
"\nMinimum eta for ME3-ME4 collision tracks=" <<
m_etamin[4]
248 <<
"\nMinimum eta for ME1-ME2 collision tracks in overlap region=" <<
m_etamin[5]
249 <<
"\nMinimum eta for ME2-MB1 collision tracks=" <<
m_etamin[6]
250 <<
"\nMinimum eta for ME1-ME4 collision tracks=" <<
m_etamin[7]
252 <<
"\nMinimum eta difference for ME1-ME2 (except ME1/1) halo tracks=" <<
m_mindeta12_accp
253 <<
"\nMinimum eta difference for ME1-ME3 (except ME1/1) halo tracks=" <<
m_mindeta13_accp
257 <<
"\nMaximum eta for ME1-ME2 collision tracks=" <<
m_etamax[0]
258 <<
"\nMaximum eta for ME1-ME3 collision tracks=" <<
m_etamax[1]
259 <<
"\nMaximum eta for ME2-ME3 collision tracks=" <<
m_etamax[2]
260 <<
"\nMaximum eta for ME2-ME4 collision tracks=" <<
m_etamax[3]
261 <<
"\nMaximum eta for ME3-ME4 collision tracks=" <<
m_etamax[4]
262 <<
"\nMaximum eta for ME1-ME2 collision tracks in overlap region=" <<
m_etamax[5]
263 <<
"\nMaximum eta for ME2-MB1 collision tracks=" <<
m_etamax[6]
264 <<
"\nMaximum eta for ME1-ME4 collision tracks=" <<
m_etamax[7]
266 <<
"\nMaximum eta difference for ME1-ME2 (except ME1/1) halo tracks=" <<
m_maxdeta12_accp
267 <<
"\nMaximum eta difference for ME1-ME3 (except ME1/1) halo tracks=" <<
m_maxdeta13_accp
271 <<
"\nEta window for ME1-ME2 collision tracks=" <<
m_etawin[0]
272 <<
"\nEta window for ME1-ME3 collision tracks=" <<
m_etawin[1]
273 <<
"\nEta window for ME2-ME3 collision tracks=" <<
m_etawin[2]
274 <<
"\nEta window for ME2-ME4 collision tracks=" <<
m_etawin[3]
275 <<
"\nEta window for ME3-ME4 collision tracks=" <<
m_etawin[4]
276 <<
"\nEta window for ME1-ME2 collision tracks in overlap region=" <<
m_etawin[5]
277 <<
"\nEta window for ME1-ME4 collision tracks=" <<
m_etawin[6]
279 <<
"\nMaximum phi difference for ME1-ME2 (except ME1/1) halo tracks=" <<
m_maxdphi12_accp
280 <<
"\nMaximum phi difference for ME1-ME3 (except ME1/1) halo tracks=" <<
m_maxdphi13_accp
284 <<
"\nMinimum phi difference for track cancellation logic=" <<
m_mindphip
285 <<
"\nMinimum phi difference for halo track cancellation logic=" <<
m_mindphip_halo
287 <<
"\nParameter for the correction of misaligned 1-2-3-4 straight tracks =" <<
m_straightp
288 <<
"\nParameter for the correction of misaligned 1-2-3-4 curved tracks=" <<
m_curvedp
292 <<
"\nFirmware SP year+month+day:" <<
m_firmSP
293 <<
"\nFirmware FA year+month+day:" <<
m_firmFA
294 <<
"\nFirmware DD year+month+day:" <<
m_firmDD
295 <<
"\nFirmware VM year+month+day:" <<
m_firmVM;
309 core_ -> SetCoreFirmwareVersion (firmVersCore);
310 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\nCore Firmware is set to " <<
core_ -> GetCoreFirmwareVersion();
462 edm::LogError(
"CSCTFTrackBuilder")<<
"kill_fiber parameter left uninitialized";
467 edm::LogError(
"CSCTFTrackBuilder")<<
"run_core parameter left uninitialized";
472 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_ME1a parameter left uninitialized";
477 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_ME1b parameter left uninitialized";
482 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_ME2 parameter left uninitialized";
487 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_ME3 parameter left uninitialized";
492 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_ME4 parameter left uninitialized";
497 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_MB1a parameter left uninitialized";
502 edm::LogError(
"CSCTFTrackBuilder")<<
"trigger_on_MB1d parameter left uninitialized";
510 edm::LogError(
"CSCTFTrackBuilder")<<
"singlesTrackOutput parameter left uninitialized";
515 edm::LogError(
"CSCTFTrackBuilder")<<
"rescaleSinglesPhi parameter left uninitialized";
521 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME1a parameter left uninitialized";
526 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME1b parameter left uninitialized";
531 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME1c parameter left uninitialized";
536 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME1d parameter left uninitialized";
541 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME1e parameter left uninitialized";
546 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME1f parameter left uninitialized";
551 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME2a parameter left uninitialized";
556 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME2b parameter left uninitialized";
561 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME2c parameter left uninitialized";
566 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME3a parameter left uninitialized";
571 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME3b parameter left uninitialized";
576 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME3c parameter left uninitialized";
581 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME4a parameter left uninitialized";
586 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME4b parameter left uninitialized";
591 edm::LogError(
"CSCTFTrackBuilder")<<
"QualityEnableME4c parameter left uninitialized";
597 edm::LogError(
"CSCTFSectorProcessor")<<
" firmwareSP parameter left uninitialized!!!\n";
602 edm::LogError(
"CSCTFSectorProcessor")<<
" firmwareFA parameter left uninitialized!!!\n";
607 edm::LogError(
"CSCTFSectorProcessor")<<
" firmwareDD parameter left uninitialized!!!\n";
612 edm::LogError(
"CSCTFSectorProcessor")<<
" firmwareVM parameter left uninitialized!!!\n";
621 <<
" firmwareDD (=" <<
m_firmDD <<
"), "
622 <<
" firmwareVM (=" << m_firmVM <<
") are NOT identical: it shoultd NOT happen!\n";
633 std::vector<unsigned>::const_iterator
iter;
635 std::vector<unsigned> etawins = pset.
getParameter<std::vector<unsigned> >(
"EtaWindows");
636 for(iter=etawins.begin(),index=0; iter!=etawins.end()&&index<7; iter++,index++)
m_etawin[index] = *iter;
637 std::vector<unsigned> etamins = pset.
getParameter<std::vector<unsigned> >(
"EtaMin");
638 for(iter=etamins.begin(),index=0; iter!=etamins.end()&&index<8; iter++,index++)
m_etamin[index] = *iter;
639 std::vector<unsigned> etamaxs = pset.
getParameter<std::vector<unsigned> >(
"EtaMax");
640 for(iter=etamaxs.begin(),index=0; iter!=etamaxs.end()&&index<8; iter++,index++)
m_etamax[index] = *iter;
700 for(
int i = 0;
i < 5; ++
i)
722 edm::LogError(
"CSCTFSectorProcessor::run()") <<
"No CSCTF PTLUTs: Initialize CSC TF LUTs first (missed call to CSCTFTrackProducer::beginJob?\n";
731 std::vector<csctf::TrackStub> stub_vec = stubs.
get();
736 for(std::vector<csctf::TrackStub>::const_iterator itr=stub_vec.begin(); itr!=stub_vec.end(); itr++)
737 switch( itr->station() ){
740 switch( itr->getMPCLink() ){
744 default:
edm::LogWarning(
"CSCTFSectorProcessor::run()") <<
"No MPC sorting for LCT: link="<<itr->getMPCLink()<<
"\n";
748 switch( itr->getMPCLink() ){
752 default:
edm::LogWarning(
"CSCTFSectorProcessor::run()") <<
"No MPC sorting for LCT: link="<<itr->getMPCLink()<<
"\n";
756 switch( itr->getMPCLink() ){
760 default:
edm::LogWarning(
"CSCTFSectorProcessor::run()") <<
"No MPC sorting for LCT: link="<<itr->getMPCLink()<<
"\n";
771 default:
edm::LogWarning(
"CSCTFSectorProcessor::run()") <<
"No MPC sorting for LCT: link="<<itr->getMPCLink()<<
"\n";
774 default:
edm::LogWarning(
"CSCTFSectorProcessor::run()") <<
"Invalid station # encountered: "<<itr->station()<<
"\n";
787 if(itr->station() != 5)
789 CSCDetId id(itr->getDetId().rawId());
794 lclPhi =
srLUTs_[
FPGAs[fpga]]->localPhi(itr->getStrip(), itr->getPattern(), itr->getQuality(), itr->getBend());
796 bzero(&lclPhi,
sizeof(lclPhi));
797 edm::LogWarning(
"CSCTFSectorProcessor:run()") <<
"Exception from LocalPhi LUT in " <<
FPGAs[fpga]
798 <<
"(strip="<<itr->getStrip()<<
",pattern="<<itr->getPattern()<<
",quality="<<itr->getQuality()<<
",bend="<<itr->getBend()<<
")" <<std::endl;
803 unsigned csc_id = itr->cscid();
805 gblPhi =
srLUTs_[
FPGAs[fpga]]->globalPhiME(lclPhi.phi_local, itr->getKeyWG(), csc_id);
808 bzero(&gblPhi,
sizeof(gblPhi));
809 edm::LogWarning(
"CSCTFSectorProcessor:run()") <<
"Exception from GlobalPhi LUT in " <<
FPGAs[fpga]
810 <<
"(phi_local="<<lclPhi.phi_local<<
",KeyWG="<<itr->getKeyWG()<<
",csc="<<itr->cscid()<<
")"<<std::endl;
815 gblEta =
srLUTs_[
FPGAs[fpga]]->globalEtaME(lclPhi.phi_bend_local, lclPhi.phi_local, itr->getKeyWG(), itr->cscid());
817 bzero(&gblEta,
sizeof(gblEta));
818 edm::LogWarning(
"CSCTFSectorProcessor:run()") <<
"Exception from GlobalEta LUT in " <<
FPGAs[fpga]
819 <<
"(phi_bend_local="<<lclPhi.phi_bend_local<<
",phi_local="<<lclPhi.phi_local<<
",KeyWG="<<itr->getKeyWG()<<
",csc="<<itr->cscid()<<
")"<<std::endl;
824 gblPhiDT =
srLUTs_[
FPGAs[fpga]]->globalPhiMB(lclPhi.phi_local, itr->getKeyWG(), itr->cscid());
826 bzero(&gblPhiDT,
sizeof(gblPhiDT));
827 edm::LogWarning(
"CSCTFSectorProcessor:run()") <<
"Exception from GlobalPhi DT LUT in " <<
FPGAs[fpga]
828 <<
"(phi_local="<<lclPhi.phi_local<<
",KeyWG="<<itr->getKeyWG()<<
",csc="<<itr->cscid()<<
")"<<std::endl;
831 itr->setEtaPacked(gblEta.global_eta);
833 if(itr->station() == 1 ) {
835 itr->setPhiPacked(gblPhiDT.global_phi);
842 itr->setPhiPacked(gblPhi.global_phi);
844 LogDebug(
"CSCTFSectorProcessor:run()") <<
"LCT found, processed by FPGA: " <<
FPGAs[fpga] << std::endl
845 <<
" LCT now has (eta, phi) of: (" << itr->etaValue() <<
"," << itr->phiValue() <<
")\n";
857 std::vector<csc::L1Track> tftks;
889 std::vector<csc::L1Track>::iterator titr = tftks.begin();
891 for(; titr != tftks.end(); titr++)
893 ptadd thePtAddress(titr->ptLUTAddress());
896 if(thePtAddress.track_fr)
898 titr->setRank(thePtData.front_rank);
899 titr->setChargeValidPacked(thePtData.charge_valid_front);
903 titr->setRank(thePtData.rear_rank);
904 titr->setChargeValidPacked(thePtData.charge_valid_rear);
907 if( ((titr->ptLUTAddress()>>16)&0xf)==15 )
909 int unmodBx = titr->bx();
910 titr->setBx(unmodBx+2);
923 int station = itr->station()-1;
926 int mpc = ( subSector ? subSector-1 : station+1 );
931 int bx = itr->getBX() -
m_minBX;
932 if( bx<0 || bx>=7 )
edm::LogWarning(
"CSCTFTrackBuilder::buildTracks()") <<
" LCT BX is out of ["<<
m_minBX<<
","<<
m_maxBX<<
") range: "<<itr->getBX();
934 if( itr->isValid() ) myStubContainer[bx].push_back(*itr);
946 for(
int bx=0; bx<7; bx++)
947 if( myStubContainer[bx].
get().size() ){
948 bool coreTrackExists =
false;
951 for(std::vector<csc::L1Track>::iterator trk=tracks.begin(); trk<tracks.end(); trk++)
953 || (((trk->ptLUTAddress()>>16)&0xf)==15 && trk->BX()-2 == bx-
shift) ){
954 coreTrackExists =
true;
957 if( coreTrackExists ==
false ){
960 track.
setBx(bx-shift);
963 std::vector<csctf::TrackStub> stubs = myStubContainer[bx].
get();
965 int qualityME=0, qualityMB=0,
ME=100, MB=100, linkME=7;
966 std::vector<csctf::TrackStub>::const_iterator bestStub=stubs.end();
967 for(std::vector<csctf::TrackStub>::const_iterator st_iter=stubs.begin(); st_iter!=stubs.end(); st_iter++){
968 int station = st_iter->station()-1;
970 int mpc = ( subSector ? subSector-1 : station+1 );
972 if( mpc==5 && (st_iter->getQuality()>qualityMB || (st_iter->getQuality()==qualityMB&&subSector<MB)) ){
973 qualityMB = st_iter->getQuality();
975 if(
ME>4) bestStub = st_iter;
978 if( mpc<5 && (st_iter->getQuality()> qualityME
979 || (st_iter->getQuality()==qualityME && mpc<
ME)
980 || (st_iter->getQuality()==qualityME && mpc==
ME && st_iter->getMPCLink()<linkME))) {
981 qualityME = st_iter->getQuality();
983 linkME = st_iter->getMPCLink();
987 unsigned rescaled_phi = 999;
992 rescaled_phi = unsigned(24*(bestStub->phiPacked()&0x7f)/128.);
996 rescaled_phi = unsigned(24*(bestStub->phiPacked()>>5)/128.);
999 unsigned unscaled_phi = bestStub->phiPacked()>>7 ;
1002 switch( bestStub->station() ){
1003 case 1: track.
setStationIds(bestStub->getMPCLink(),0,0,0,0);
break;
1004 case 2: track.
setStationIds(0,bestStub->getMPCLink(),0,0,0);
break;
1005 case 3: track.
setStationIds(0,0,bestStub->getMPCLink(),0,0);
break;
1006 case 4: track.
setStationIds(0,0,0,bestStub->getMPCLink(),0);
break;
1007 case 5: track.
setStationIds(0,0,0,0,bestStub->getMPCLink());
break;
1008 default:
edm::LogError(
"CSCTFSectorProcessor::run()") <<
"Illegal LCT link="<<bestStub->station()<<
"\n";
break;
1012 track.
setPtLUTAddress( (1<<16) | ((bestStub->etaPacked()<<9)&0xf000) );
1015 if( thePtAddress.track_fr ){
1016 track.
setRank(thePtData.front_rank);
1019 track.
setRank(thePtData.rear_rank);
1025 std::vector<csc::L1Track> single_tracks = tracksFromSingles.
get();
1036 <<
"******************************* \n"
1037 <<
"*** DISCLAIMER *** \n"
1038 <<
"******************************* \n"
1039 <<
"\n Firmware SP version (year+month+day)=" << firmSP
1040 <<
"\n Firmware FA/VM/DD version (year+month+day)=" << firmFA;
1041 if (firmSP==20100210)
1042 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
" -> KNOWN BUGS IN THE FIRMWARE:\n"
1043 <<
"\t * Wrong phi assignment for singles\n"
1044 <<
"\t * Wrapper passes to the core only even quality DT stubs\n"
1045 <<
"\n -> BUGS ARE GOING TO BE EMULATED BY THE SOFTWARE\n\n";
1048 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t * Correct phi assignment for singles\n";
1050 if (firmSP==20100629){
1051 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t * Correct MB quality masking in the wrapper\n"
1052 <<
"\t * Core is 20100122\n";
1055 if (firmSP==20100728)
1056 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t * Inverted MB clocks\n";
1058 if (firmSP==20100901)
1059 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t * Inverted charge bit\n";
1061 if (firmSP==20101011)
1062 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t **** WARNING THIS FIRMWARE IS UNDER TEST ****\n"
1063 <<
"\t * Added CSC-DT assembling tracks ME1-MB2/1 \n";
1064 if (firmSP==20101210)
1065 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t **** WARNING THIS FIRMWARE IS UNDER TEST ****\n"
1066 <<
"\t * New Ghost Busting Algorithm Removing Tracks\n"
1067 <<
"\t Sharing at Least One LCT\n";
1069 if (firmSP==20110118)
1070 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t **** WARNING THIS FIRMWARE IS UNDER TEST ****\n"
1071 <<
"\t * New Ghost Busting Algorithm Removing Tracks\n"
1072 <<
"\t Sharing at Least One LCT\n"
1073 <<
"\t * Passing CLCT and PhiBend for PT LUTs\n";
1074 if (firmSP==20120131)
1075 edm::LogInfo(
"CSCTFSectorProcessor" ) <<
"\t **** WARNING THIS FIRMWARE IS UNDER TEST ****\n"
1076 <<
"\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)
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)
void loadData(const CSCTriggerContainer< csctf::TrackStub > &, const unsigned &endcap, const unsigned §or, const int &minBX, const int &maxBX)
CSCTriggerContainer< csc::L1Track > tracks()
class global_eta_data gbletadat
std::map< int, int > firmSP_Map