19 : enableTruncation_(iConfig.getParameter<
bool>(
"EnableTruncation")),
21 dataFormats_(dataFormats),
22 channelAssignment_(channelAssignment),
24 input_(channelAssignment_->numNodesDR()) {}
29 auto nonNullTrack = [](
int sum,
const FrameTrack&
frame) {
return sum + (
frame.first.isNonnull() ? 1 : 0); };
30 auto nonNullStub = [](
int sum,
const FrameStub&
frame) {
return sum + (
frame.first.isNonnull() ? 1 : 0); };
35 const int streamTrackId = offsetTrack + channel;
37 const StreamTrack& streamTrack = streamsTrack[streamTrackId];
38 input_[channel].reserve(streamTrack.size());
39 sizeTracks += accumulate(streamTrack.begin(), streamTrack.end(), 0, nonNullTrack);
41 const StreamStub& streamStub = streamsStub[offsetStub + layer];
42 sizeStubs += accumulate(streamStub.begin(), streamStub.end(), 0, nonNullStub);
50 const int streamTrackId = offsetTrack + channel;
52 const StreamTrack& streamTrack = streamsTrack[streamTrackId];
55 if (frameTrack.first.isNull()) {
56 input.push_back(
nullptr);
62 const FrameStub& frameStub = streamsStub[offsetStub + layer][
frame];
63 if (frameStub.first.isNull())
65 TTBV ttBV = frameStub.second;
78 Frame(
"1" + tilt.str() + layerId.str() + r.str() + phi.str() + z.str()));
98 const int channelTrack = offsetTrack + node;
124 StreamTrack& streamTrack = acceptedTracks[channelTrack];
125 streamTrack.reserve(
tracks.size());
127 accpetedStubs[offsetStub + layer].reserve(
tracks.size());
132 accpetedStubs[offsetStub + layer].emplace_back(
FrameStub());
135 streamTrack.push_back(
track->frame_);
139 accpetedStubs[offsetStub + stub->
channel_].push_back(stub->
frame_);
142 accpetedStubs[offsetStub + layer].emplace_back(
FrameStub());
151 auto onLayer = [layer](
Stub* stub) {
return stub->channel_ == layer; };
152 const auto s0 = find_if(
t0->stubs_.begin(),
t0->stubs_.end(), onLayer);
153 const auto s1 = find_if(
t1->stubs_.begin(),
t1->stubs_.end(), onLayer);
154 if (s0 !=
t0->stubs_.end() && s1 !=
t1->stubs_.end() && **s0 == **s1)
std::vector< std::vector< Track * > > input_
std::bitset< TTBV::S_ > Frame
std::vector< StreamTrack > StreamsTrack
Bit vector used by Track Trigger emulators. Mainly used to convert integers into arbitrary (within ma...
std::pair< TTStubRef, Frame > FrameStub
Class to process and provide run-time constants used by Track Trigger emulators.
std::vector< StreamStub > StreamsStub
void consume(const tt::StreamsTrack &streamsTrack, const tt::StreamsStub &streamsStub)
std::vector< FrameStub > StreamStub
Class to assign tracklet tracks and stubs to output channel based on their Pt or seed type as well as...
std::vector< FrameTrack > StreamTrack
static std::string const input
std::pair< TTTrackRef, Frame > FrameTrack
void produce(tt::StreamsStub &accpetedStubs, tt::StreamsTrack &acceptedTracks, tt::StreamsStub &lostStubs, tt::StreamsTrack &lostTracks)
bool equalEnough(Track *t0, Track *t1) const
Namespace of DDCMS conversion namespace.
const ChannelAssignment * channelAssignment_
std::vector< Track > tracks_
int minIdenticalStubs() const
int numComparisonModules() const
std::vector< Stub > stubs_
const trackerTFP::DataFormats * dataFormats_
int widthSeedStubId() const