37 l1GTReadoutRecTag_ (iConfig.getUntrackedParameter<std::
string>(
"L1GlobalReadoutRecord",
"gtDigis"))
67 LogWarning(
"EcalExclusiveTrigFilter") <<
"l1MuGMTReadoutCollection" <<
" not available";
74 bool isEcalL1 =
false;
75 const unsigned int sizeOfDecisionWord(L1GTRR->decisionWord().size());
81 else if(sizeOfDecisionWord<128)
83 LogWarning(
"EcalExclusiveTrigFilter") <<
"size of L1 decisionword is " << sizeOfDecisionWord
84 <<
"; L1 Ecal triggering bits not available";
90 for (
unsigned int i=0;
i!=sizeOfDecisionWord; ++
i) {
94 for (
unsigned int i=0;
i!=sizeOfDecisionWord; ++
i) {
95 if (L1GTRR->decisionWord()[
i])
110 bool isRPCL1 =
false;
112 bool isCSCL1 =
false;
113 bool isHCALL1 =
false;
115 std::vector<L1MuGMTReadoutRecord> gmt_records = gmtrc->
getRecords();
116 std::vector<L1MuGMTReadoutRecord>::const_iterator igmtrr;
118 for(igmtrr=gmt_records.begin(); igmtrr!=gmt_records.end(); igmtrr++) {
120 std::vector<L1MuRegionalCand>::const_iterator iter1;
121 std::vector<L1MuRegionalCand> rmc;
125 rmc = igmtrr->getDTBXCands();
126 for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
127 if ( !(*iter1).empty() ) {
134 if(igmtrr->getBxInEvent()==0 && idt>0) isDTL1 =
true;
138 rmc = igmtrr->getBrlRPCCands();
139 for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
140 if ( !(*iter1).empty() ) {
147 if(igmtrr->getBxInEvent()==0 && irpcb>0) isRPCL1 =
true;
151 rmc = igmtrr->getCSCCands();
152 for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
153 if ( !(*iter1).empty() ) {
159 if(igmtrr->getBxInEvent()==0 && icsc>0) isCSCL1 =
true;
164 for(
int ibx=-1; ibx<=1; ibx++) {
165 bool hcal_top =
false;
166 bool hcal_bot =
false;
168 std::vector<int> valid_phi;
169 if((psb.
aData(4)&0x3f) >= 1) {valid_phi.push_back( (psb.
aData(4)>>10)&0x1f ); }
170 if((psb.
bData(4)&0x3f) >= 1) {valid_phi.push_back( (psb.
bData(4)>>10)&0x1f ); }
171 if((psb.
aData(5)&0x3f) >= 1) {valid_phi.push_back( (psb.
aData(5)>>10)&0x1f ); }
172 if((psb.
bData(5)&0x3f) >= 1) {valid_phi.push_back( (psb.
bData(5)>>10)&0x1f ); }
173 std::vector<int>::const_iterator iphi;
174 for(iphi=valid_phi.begin(); iphi!=valid_phi.end(); iphi++) {
176 if(*iphi<9) hcal_top=
true;
177 if(*iphi>8) hcal_bot=
true;
179 if(ibx==0 && hcal_top && hcal_bot) isHCALL1=
true;
182 std::cout <<
"**** Trigger Source ****" << std::endl;
183 if(isDTL1)
std::cout <<
"DT" << std::endl;
184 if(isRPCL1)
std::cout <<
"RPC" << std::endl;
185 if(isCSCL1)
cout <<
"CSC" << endl;
186 if(isHCALL1)
std::cout <<
"HCAL" << std::endl;
187 if(isEcalL1)
std::cout <<
"ECAL" << std::endl;
188 std::cout <<
"************************" << std::endl;
190 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