38 l1GTReadoutRecTag_ (iConfig.getUntrackedParameter<std::string>(
"L1GlobalReadoutRecord",
"gtDigis"))
68 LogWarning(
"EcalExclusiveTrigFilter") <<
"l1MuGMTReadoutCollection" <<
" not available";
75 bool isEcalL1 =
false;
76 const unsigned int sizeOfDecisionWord(L1GTRR->decisionWord().size());
82 else if(sizeOfDecisionWord<128)
84 LogWarning(
"EcalExclusiveTrigFilter") <<
"size of L1 decisionword is " << sizeOfDecisionWord
85 <<
"; L1 Ecal triggering bits not available";
91 for (
unsigned int i=0;
i!=sizeOfDecisionWord; ++
i) {
95 for (
unsigned int i=0;
i!=sizeOfDecisionWord; ++
i) {
96 if (L1GTRR->decisionWord()[
i])
111 bool isRPCL1 =
false;
113 bool isCSCL1 =
false;
114 bool isHCALL1 =
false;
116 std::vector<L1MuGMTReadoutRecord> gmt_records = gmtrc->
getRecords();
117 std::vector<L1MuGMTReadoutRecord>::const_iterator igmtrr;
119 for(igmtrr=gmt_records.begin(); igmtrr!=gmt_records.end(); igmtrr++) {
121 std::vector<L1MuRegionalCand>::const_iterator iter1;
122 std::vector<L1MuRegionalCand> rmc;
126 rmc = igmtrr->getDTBXCands();
127 for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
128 if ( !(*iter1).empty() ) {
135 if(igmtrr->getBxInEvent()==0 && idt>0) isDTL1 =
true;
139 rmc = igmtrr->getBrlRPCCands();
140 for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
141 if ( !(*iter1).empty() ) {
148 if(igmtrr->getBxInEvent()==0 && irpcb>0) isRPCL1 =
true;
152 rmc = igmtrr->getCSCCands();
153 for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
154 if ( !(*iter1).empty() ) {
160 if(igmtrr->getBxInEvent()==0 && icsc>0) isCSCL1 =
true;
165 for(
int ibx=-1; ibx<=1; ibx++) {
166 bool hcal_top =
false;
167 bool hcal_bot =
false;
169 std::vector<int> valid_phi;
170 if((psb.
aData(4)&0x3f) >= 1) {valid_phi.push_back( (psb.
aData(4)>>10)&0x1f ); }
171 if((psb.
bData(4)&0x3f) >= 1) {valid_phi.push_back( (psb.
bData(4)>>10)&0x1f ); }
172 if((psb.
aData(5)&0x3f) >= 1) {valid_phi.push_back( (psb.
aData(5)>>10)&0x1f ); }
173 if((psb.
bData(5)&0x3f) >= 1) {valid_phi.push_back( (psb.
bData(5)>>10)&0x1f ); }
174 std::vector<int>::const_iterator iphi;
175 for(iphi=valid_phi.begin(); iphi!=valid_phi.end(); iphi++) {
177 if(*iphi<9) hcal_top=
true;
178 if(*iphi>8) hcal_bot=
true;
180 if(ibx==0 && hcal_top && hcal_bot) isHCALL1=
true;
183 std::cout <<
"**** Trigger Source ****" << std::endl;
184 if(isDTL1)
std::cout <<
"DT" << std::endl;
185 if(isRPCL1)
std::cout <<
"RPC" << std::endl;
186 if(isCSCL1)
cout <<
"CSC" << endl;
187 if(isHCALL1)
std::cout <<
"HCAL" << std::endl;
188 if(isEcalL1)
std::cout <<
"ECAL" << std::endl;
189 std::cout <<
"************************" << std::endl;
191 return(isEcalL1 && !isDTL1 && !isRPCL1 && !isCSCL1 && !isHCALL1);
const cms_uint16_t bData(int iB) const
get/set B_DATA_CH_IB
~EcalExclusiveTrigFilter()
virtual bool filter(edm::Event &, const edm::EventSetup &)
const cms_uint16_t aData(int iA) const
get/set A_DATA_CH_IA
edm::InputTag l1GTReadoutRecTag_
const L1GtPsbWord gtPsbWord(cms_uint16_t boardIdValue, int bxInEventValue) const
get / set PSB word (record) in the GT readout record
EcalExclusiveTrigFilter(const edm::ParameterSet &)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
std::vector< int > l1Accepts_
T const * product() const
std::vector< std::string > l1Names_
std::vector< L1MuGMTReadoutRecord > const & getRecords() const