19 : enableTruncation_(iConfig.getParameter<
bool>(
"EnableTruncation")),
21 dataFormats_(dataFormats),
27 auto validFrame = [](
int sum,
const FrameStub&
frame) {
return sum + (
frame.first.isNonnull() ? 1 : 0); };
31 nStubsPP += accumulate(
stream.begin(),
stream.end(), 0, validFrame);
37 if (
frame.first.isNonnull()) {
48 for (deque<StubPP*>& stubs :
input)
49 for (
auto it = stubs.end(); it != stubs.begin();)
50 it = (*--it) ? stubs.begin() : stubs.erase(it);
51 auto validStub = [](
int sum,
StubPP* stub) {
return sum + (stub ? 1 : 0); };
54 for (
const deque<StubPP*>& channel :
sector)
55 nStubsGP += accumulate(channel.begin(), channel.end(), 0, validStub);
66 auto size = [](
int sum,
const deque<StubPP*>& stubs) {
return sum + stubs.size(); };
67 const int nStubs = accumulate(
inputs.begin(),
inputs.end(), 0, size);
68 vector<StubGP*> acceptedSector;
69 vector<StubGP*> lostSector;
70 acceptedSector.reserve(nStubs);
71 lostSector.reserve(nStubs);
73 while (!all_of(
inputs.begin(),
inputs.end(), [](
const deque<StubPP*>& stubs) {
return stubs.empty(); })
or 74 !all_of(stacks.begin(), stacks.end(), [](
const deque<StubGP*>& stubs) {
return stubs.empty(); })) {
77 deque<StubGP*>&
stack = stacks[channel];
87 bool nothingToRoute(
true);
91 nothingToRoute =
false;
92 acceptedSector.push_back(stub);
97 acceptedSector.push_back(
nullptr);
102 copy_if(
limit, acceptedSector.end(), back_inserter(lostSector), [](
const StubGP* stub) {
return stub; });
103 acceptedSector.erase(
limit, acceptedSector.end());
106 for (
auto it = acceptedSector.end(); it != acceptedSector.begin();)
107 it = (*--it) ? acceptedSector.begin() : acceptedSector.erase(it);
110 auto toFrame = [](
StubGP* stub) {
return stub ? stub->frame() :
FrameStub(); };
111 stream.reserve(stubs.size());
115 put(acceptedSector, accepted[
index]);
int numSectorsPhi() const
std::pair< TTStubRef, Frame > FrameStub
Class to process and provide run-time constants used by Track Trigger emulators.
std::vector< StreamStub > StreamsStub
const DataFormats * dataFormats_
bool inSector(int sector) const
std::vector< FrameStub > StreamStub
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
static std::string const input
void put(edm::Event &evt, double value, const char *instanceName)
std::vector< std::vector< std::deque< StubPP * > > > input_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
T * pop_front(std::deque< T *> &ts) const
std::vector< StubPP > stubsPP_
std::vector< StubGP > stubsGP_
void produce(tt::StreamsStub &accepted, tt::StreamsStub &lost)
Class to store hardware like structured TTStub Collection used by Track Trigger emulators.
deadvectors [0] push_back({0.0175431, 0.538005, 6.80997, 13.29})
void consume(const TTDTC &ttDTC)
int gpDepthMemory() const
const tt::StreamStub & stream(int tfpRegion, int tfpChannel) const