 |
ATLAS Offline Software
|
#include <MuonSectorProcessor.h>
Definition at line 36 of file MuonSectorProcessor.h.
◆ MuonSectorProcessor() [1/3]
| LVL1MUCTPIPHASE1::MuonSectorProcessor::MuonSectorProcessor |
( |
bool |
side | ) |
|
◆ ~MuonSectorProcessor()
| LVL1MUCTPIPHASE1::MuonSectorProcessor::~MuonSectorProcessor |
( |
| ) |
|
◆ MuonSectorProcessor() [2/3]
◆ MuonSectorProcessor() [3/3]
◆ configureOverlapRemoval()
| void LVL1MUCTPIPHASE1::MuonSectorProcessor::configureOverlapRemoval |
( |
const std::string & |
lutFile | ) |
|
◆ configurePtEncoding()
| bool LVL1MUCTPIPHASE1::MuonSectorProcessor::configurePtEncoding |
( |
| ) |
|
Definition at line 212 of file MuonSectorProcessor.cxx.
228 auto tgcPtValues = exMU->knownTgcPtValues();
229 for (
unsigned i=0;
i<rpcPtValues.size();
i++){
232 for (
unsigned i=0;
i<tgcPtValues.size();
i++){
◆ getSide()
| bool LVL1MUCTPIPHASE1::MuonSectorProcessor::getSide |
( |
| ) |
const |
|
inline |
◆ makeL1TopoData()
Definition at line 310 of file MuonSectorProcessor.cxx.
321 for (
unsigned short isub=0;isub<2;isub++)
323 if (isub != (
unsigned short)(
m_side))
continue;
324 std::shared_ptr<LVL1MUONIF::Lvl1MuSectorLogicDataPhase1> sectorData =
inputs->getSectorLogicDataPtr(isys, isub, isec,
bcid);
325 if (!sectorData)
continue;
336 int sectorNumber=isec;
350 for (
unsigned int icand=0;icand<LVL1MUONIF::NCAND[isys];icand++)
353 int roiID = sectorData->
roi(icand);
354 if (roiID < 0)
continue;
355 int ptword = sectorData->
pt(icand);
356 if (ptword < 0)
continue;
363 if (
coord == L1TopoCoordinates())
365 std::stringstream
err;
366 err <<
"Couldn't decode L1Topo coordinates: Side = " << isub <<
", subsystem = " << isys <<
", sector = " << isec <<
", roi = " << roiID;
381 std::stringstream
err;
382 err <<
"Pt threshold not found in L1Topo encoding. Thr: " << ptword <<
", subsys: " << isys;
386 else ptValue=enc->second;
390 std::stringstream
err;
391 err <<
"Default value returned for pt encoding. Thr: " << ptword <<
", isys: " << isys;
399 unsigned int mioctID = 0;
400 unsigned int ptCode=0;
406 (
unsigned int)ptword,
408 (
unsigned int)ptValue,
422 sectorData->
ovl(icand));
425 sectorData->
goodmf(icand),
426 sectorData->
charge(icand));
◆ runOverlapRemoval()
Definition at line 241 of file MuonSectorProcessor.cxx.
243 std::map<std::string,std::vector<std::pair<std::shared_ptr<LVL1MUONIF::Lvl1MuSectorLogicDataPhase1>,
unsigned> > > buckets;
252 for (
size_t isub=0;isub<2;isub++)
254 if (isub !=
size_t(
m_side))
continue;
257 std::shared_ptr<LVL1MUONIF::Lvl1MuSectorLogicDataPhase1> sectorData =
inputs->getSectorLogicDataPtr(isys, isub, isec,
bcid);
258 if (!sectorData)
continue;
260 for (
unsigned int icand=0;icand<LVL1MUONIF::NCAND[isys];icand++)
268 int roiID = sectorData->
roi(icand);
269 if (roiID < 0)
continue;
270 int ptword = sectorData->
pt(icand);
271 if (ptword < 0)
continue;
274 sectorData->
veto(icand,0);
279 if(
std::count(
rr.begin(),
rr.end(),
'B') == 2 && isys == 0 && sectorData->
ovl(icand) == 0 )
continue;
280 buckets[
rr].push_back(std::make_pair(sectorData, icand));
287 for(
auto candidate_vector : buckets){
290 unsigned i_notRemove = 0;
292 for (
unsigned i=0;
i<candidate_vector.second.size();
i++){
293 if( candidate_vector.second[
i].first->veto(candidate_vector.second[
i].second)==1 )
continue;
294 int pt = candidate_vector.second[
i].first->pt(candidate_vector.second[
i].second);
302 for (
unsigned i=0;
i<candidate_vector.second.size();
i++)
304 if( candidate_vector.second[
i].first->veto(candidate_vector.second[
i].second)==1 )
continue;
305 candidate_vector.second[
i].first->veto(candidate_vector.second[
i].second, (
i==i_notRemove)?0:1 );
◆ setL1TopoLUT()
| void LVL1MUCTPIPHASE1::MuonSectorProcessor::setL1TopoLUT |
( |
const L1TopoLUT * |
l1topoLUT | ) |
|
|
inline |
◆ setMenu()
◆ m_l1menu
◆ m_l1topoLUT
| const L1TopoLUT* LVL1MUCTPIPHASE1::MuonSectorProcessor::m_l1topoLUT = nullptr |
|
private |
◆ m_overlapHelper
| std::unique_ptr<OverlapHelper> LVL1MUCTPIPHASE1::MuonSectorProcessor::m_overlapHelper |
|
private |
◆ m_ptEncoding
| std::vector<std::map<int, int> > LVL1MUCTPIPHASE1::MuonSectorProcessor::m_ptEncoding |
|
private |
◆ m_side
| bool LVL1MUCTPIPHASE1::MuonSectorProcessor::m_side = false |
|
private |
The documentation for this class was generated from the following files:
void setRPCFlags(bool is2cand, bool phiOvl)
void setCandidateData(const std::string §orName, unsigned int roiID, unsigned int bcid, unsigned int ptThresholdID, unsigned int ptL1TopoCode, unsigned int ptValue, float eta, float phi, unsigned int etacode, unsigned int phicode, float etamin, float etamax, float phimin, float phimax, unsigned int mioctID, int ieta, int iphi)
int innercoin(size_t id) const
void setTGCFlags(bool bw2or3, bool innerCoin, bool goodMF, int charge)
std::unique_ptr< OverlapHelper > m_overlapHelper
int bw2or3(size_t id) const
auto rend() const noexcept
L1TopoCoordinates getCoordinates(const unsigned short &side, const unsigned short &subsystem, const unsigned short §orID, const unsigned short &roi) const
const TrigConf::L1Menu * m_l1menu
int charge(size_t id) const
int veto(size_t id) const
std::vector< std::map< int, int > > m_ptEncoding
MuCTPI input class to the L1Topo simulation.
setEventNumber setTimeStamp bcid
int goodmf(size_t id) const
void addCandidate(const MuCTPIL1TopoCandidate &candidate)
const L1TopoLUT * m_l1topoLUT
bool is2candidates(size_t id) const
const boost::regex rr(r_r)
std::string sectorName(const std::string &wheel, const uint32_t sec)