83 vector<int> aSectors = iConfig.
getParameter<vector<int> >(
"activeSectors");
84 vector<int>::const_iterator iSec = aSectors.begin();
85 vector<int>::const_iterator eSec = aSectors.end();
86 for (;iSec!=eSec;++iSec)
87 if ((*iSec)>0 && (*iSec<15))
activeSecs_.set((*iSec));
106 desc.
add<
bool>(
"processDCC",
true);
107 desc.
add<
bool>(
"processDDU",
true);
108 desc.
add<
bool>(
"processRPC",
true);
109 desc.
add<
bool>(
"processDigis",
true);
110 desc.
add<
bool>(
"orTPG",
true);
111 desc.
add<
bool>(
"orRPC",
true);
112 desc.
add<
bool>(
"orDigi",
false)->
113 setComment(
" # && of trig & digi info");
114 desc.
add<
int>(
"minDCCBX",-1);
115 desc.
add<
int>(
"maxDCCBX",1);
116 desc.
add<
int>(
"minDDUBX",8);
117 desc.
add<
int>(
"maxDDUBX",13);
118 desc.
add<
int>(
"minRPCBX",-1);
119 desc.
add<
int>(
"maxRPCBX",1);
120 desc.
add<
int>(
"minTPGQual",2.)->
121 setComment(
" # 0-1=L 2-3=H 4=LL 5=HL 6=HH");
122 desc.
add<
int>(
"maxStation",3.);
123 desc.
add<
int>(
"minChamberLayers",5);
124 desc.
add<
int>(
"minActiveChambs",1);
125 desc.
add<
double>(
"MaxDeltaPhi",1.0);
126 desc.
add<
double>(
"MaxDeltaEta",0.3);
127 std::vector<int>
temp;
for (
int i=1;
i<=12;
i++) temp.push_back(
i);
128 desc.
add<std::vector<int> >(
"activeSectors",
temp);
129 descriptions.
add(
"hltDTActivityFilter",desc);
148 vector<L1MuDTChambPhDigi>
const* phTrigs = l1DTTPGPh->
getContainer();
149 auto iph = phTrigs->begin();
150 auto iphe = phTrigs->end();
152 for(; iph !=iphe ; ++iph) {
154 int qual = iph->code();
155 int bx = iph->bxNum();
156 int ch = iph->stNum();
157 int sec = iph->scNum() + 1;
158 int wh = iph->whNum();
162 if (ch<=maxStation_ && bx>=
minBX_[DCC] && bx<=
maxBX_[DCC]
177 for (detUnitIt=trigsDDU->begin();detUnitIt!=trigsDDU->end();++detUnitIt){
179 int ch = (*detUnitIt).first.station();
180 if (!
activeSecs_[(*detUnitIt).first.sector()])
continue;
185 int bx = trigIt->bx();
186 int qual = trigIt->quality();
187 if ( ch<=maxStation_ && bx>=
minBX_[DDU] && bx<=
maxBX_[DDU]
189 actMap[(*detUnitIt).first.rawId()].set(DDU);
202 std::map<uint32_t,int> hitMap;
205 for (dtLayerIdIt=dtdigis->begin(); dtLayerIdIt!=dtdigis->end(); dtLayerIdIt++) {
207 DTChamberId chId = ((*dtLayerIdIt).first).chamberId();
208 if (!
activeSecs_[(*dtLayerIdIt).first.sector()])
continue;
209 uint32_t rawId = chId.
rawId();
213 if (hitMap.find(rawId)!=hitMap.end()) {
219 actMap[chId.
rawId()].set(DIGI);
234 std::vector<L1MuGMTReadoutRecord> gmtrr = gmtrc->
getRecords();
235 std::vector<L1MuGMTReadoutRecord>::const_iterator recIt = gmtrr.begin();
236 std::vector<L1MuGMTReadoutRecord>::const_iterator recEnd = gmtrr.end();
238 for(; recIt!=recEnd; ++recIt) {
240 std::vector<L1MuRegionalCand> rpcCands = (*recIt).getBrlRPCCands();
241 std::vector<L1MuRegionalCand>::const_iterator candIt = rpcCands.begin();
242 std::vector<L1MuRegionalCand>::const_iterator candEnd = rpcCands.end();
244 for(; candIt!=candEnd; ++candIt) {
246 if (candIt->empty())
continue;
247 int bx = (*candIt).bx();
250 auto actMapIt = actMap.begin();
251 auto actMapEnd = actMap.end();
252 for (; actMapIt!= actMapEnd; ++ actMapIt)
254 actMapIt->second.set(RPC);
262 activityMap::const_iterator actMapIt = actMap.begin();
263 activityMap::const_iterator actMapEnd = actMap.end();
265 for (; actMapIt!=actMapEnd; ++actMapIt)
278 bool actTrig =
orRPC_ ? actWord[
RPC] || actTPG : actWord[
RPC] && actTPG;
289 float fDeltaPhi = fabs( chPos.
phi() - rpcTrig.
phiValue() );
292 float fDeltaEta = fabs( chPos.
eta() - rpcTrig.
etaValue() );
edm::EDGetTokenT< L1MuGMTReadoutCollection > inputRPCToken_
T getParameter(std::string const &) const
float etaValue() const
get eta-value of muon candidate
const DTChamber * chamber(const DTChamberId &id) const
Return a DTChamber given its id.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< L1MuDTChambPhContainer > inputDCCToken_
edm::InputTag inputTag_[4]
Geom::Phi< T > phi() const
constexpr uint32_t rawId() const
get the raw id
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::bitset< 15 > activeSecs_
bool matchChamber(uint32_t rawId, L1MuRegionalCand const &rpcTrig, DTGeometry const *dtGeom) const
HLTDTActivityFilter(const edm::ParameterSet &)
bool hasActivity(const std::bitset< 4 > &) const
edm::EDGetTokenT< DTLocalTriggerCollection > inputDDUToken_
#define DEFINE_FWK_MODULE(type)
const Surface::PositionType & position() const
The position (origin of the R.F.)
std::map< uint32_t, std::bitset< 4 > > activityMap
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
ParameterDescriptionBase * add(U const &iLabel, T const &value)
float phiValue() const
get phi-value of muon candidate in radians (low edge of bin)
edm::EDGetTokenT< DTDigiCollection > inputDigiToken_
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
std::vector< DigiType >::const_iterator const_iterator
Phi_Container const * getContainer() const
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< L1MuGMTReadoutRecord > const & getRecords() const
std::pair< const_iterator, const_iterator > Range
int station() const
Return the station number.
T const * product() const
~HLTDTActivityFilter() override