#include <CSCMuonPortCard.h>
Public Types | |
typedef CSCTriggerContainer < csctf::TrackStub > | TrackStubList |
Public Member Functions | |
void | clear () |
CSCMuonPortCard () | |
void | loadDigis (const CSCCorrelatedLCTDigiCollection &thedigis) |
std::vector< csctf::TrackStub > | sort (const unsigned endcap, const unsigned station, const unsigned sector, const unsigned subsector, const int bx) |
Private Attributes | |
CSCTriggerContainer < csctf::TrackStub > | _stubs |
Simulates the functionality of the Muon Port Card (MPC). Each MPC is responsible for 9 Trigger Mother Boards (TMBs). It takes the up to 18 LCTs (2/TMB) in each (sub)sector every bunch crossing, sorts them, selects up to three best, and puts them into an output collection.
A port/reworking of the muon port card from ORCA.
Definition at line 24 of file CSCMuonPortCard.h.
Definition at line 27 of file CSCMuonPortCard.h.
CSCMuonPortCard::CSCMuonPortCard | ( | ) | [inline] |
Definition at line 27 of file CSCMuonPortCard.h.
{};
void CSCMuonPortCard::clear | ( | void | ) | [inline] |
Definition at line 42 of file CSCMuonPortCard.h.
References _stubs, and CSCTriggerContainer< T >::clear().
Referenced by loadDigis().
void CSCMuonPortCard::loadDigis | ( | const CSCCorrelatedLCTDigiCollection & | thedigis | ) |
Definition at line 27 of file CSCMuonPortCard.cc.
References _stubs, clear(), and CSCTriggerContainer< T >::push_back().
Referenced by CSCTriggerPrimitivesBuilder::build().
{ // Put everything from the digi container into a trigger container. // This allows us to sort per BX more easily. clear(); CSCCorrelatedLCTDigiCollection::DigiRangeIterator Citer; for (Citer = thedigis.begin(); Citer != thedigis.end(); Citer++) { CSCCorrelatedLCTDigiCollection::const_iterator Diter = (*Citer).second.first; CSCCorrelatedLCTDigiCollection::const_iterator Dend = (*Citer).second.second; for (; Diter != Dend; Diter++) { csctf::TrackStub theStub((*Diter), (*Citer).first); _stubs.push_back(theStub); } } }
std::vector< csctf::TrackStub > CSCMuonPortCard::sort | ( | const unsigned | endcap, |
const unsigned | station, | ||
const unsigned | sector, | ||
const unsigned | subsector, | ||
const int | bx | ||
) |
Definition at line 46 of file CSCMuonPortCard.cc.
References _stubs, CSCTriggerContainer< T >::get(), i, CSCConstants::maxStubs, and query::result.
Referenced by CSCTriggerPrimitivesBuilder::build().
{ std::vector<csctf::TrackStub> result; std::vector<csctf::TrackStub>::iterator LCT; result = _stubs.get(endcap, station, sector, subsector, bx); // Make sure no Quality 0 or non-valid LCTs come through the portcard. for (LCT = result.begin(); LCT != result.end(); LCT++) { if ( !(LCT->getQuality() && LCT->isValid()) ) result.erase(LCT, LCT); } if (result.size()) { std::sort(result.begin(), result.end(), std::greater<csctf::TrackStub>()); // Can only return maxStubs or less LCTs per bunch crossing. if (result.size() > CSCConstants::maxStubs) result.erase(result.begin() + CSCConstants::maxStubs, result.end()); // Go through the sorted list and label the LCTs with a sorting number. unsigned i = 0; for (LCT = result.begin(); LCT != result.end(); LCT++) LCT->setMPCLink(++i); } return result; }
Definition at line 45 of file CSCMuonPortCard.h.
Referenced by clear(), loadDigis(), and sort().