Skip to content

Commit 93b1609

Browse files
committed
criteria to build track updated, TBout works now for all seed types.
1 parent 1fb0c80 commit 93b1609

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

L1Trigger/TrackFindingTracklet/src/FitTrack.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,8 +1026,7 @@ void FitTrack::execute(ChannelAssignment* channelAssignment,
10261026
// store bit and clock accurate TB output
10271027
if (settings_.emulateTB() && bestTracklet) {
10281028
// add gap if enough layer to form track
1029-
static constexpr int limit = 4;
1030-
if ((int)bestTracklet->getL1Stubs().size() < limit) {
1029+
if (!bestTracklet->fit()) {
10311030
streamTrack.emplace_back(tt::Frame());
10321031
for (auto& stream : streamsStub)
10331032
stream.emplace_back(tt::FrameStub());

L1Trigger/TrackFindingTracklet/test/ProducerTBout.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ namespace trklet {
141141
iEvent.getByToken<Streams>(edGetTokenTracks_, handleTracks);
142142
channelId = 0;
143143
for (const Stream& streamTrack : *handleTracks) {
144+
const int nTracks = accumulate(streamTrack.begin(), streamTrack.end(), 0, [](int& sum, const Frame& f){ return sum += f.any() ? 1 : 0; });
144145
StreamTrack& accepted = streamAcceptedTracks[channelId];
145146
StreamTrack& lost = streamLostTracks[channelId];
146147
auto limit = streamTrack.end();
@@ -150,6 +151,14 @@ namespace trklet {
150151
lost.reserve(distance(limit, streamTrack.end()));
151152
int nFrame(0);
152153
const deque<TTTrackRef>& ttTracks = ttTrackRefs[channelId++];
154+
if ((int)ttTracks.size() != nTracks) {
155+
cms::Exception exception("LogicError.");
156+
const int region = channelId / channelAssignment_->numChannels();
157+
const int channel = channelId % channelAssignment_->numChannels();
158+
exception << "Region " << region << " output channel " << channel << " has " << nTracks << " tracks found in f/w but created " << ttTracks.size() << " TTTracks.";
159+
exception.addContext("trklet::ProducerTBout::produce");
160+
throw exception;
161+
}
153162
auto toFrameTrack = [&nFrame, &ttTracks](const Frame& frame) {
154163
if (frame.any())
155164
return FrameTrack(ttTracks[nFrame++], frame);

0 commit comments

Comments
 (0)