Class to bit- and clock-accurate emulate duplicate removal DR identifies duplicates based on pairs of tracks that share stubs in at least 3 layers. It keeps the first such track in each pair.
- Author
- Thomas Schuh
- Date
- 2023, Feb
Definition at line 19 of file DR.h.
Definition at line 27 of file DR.cc.
References channelAssignment_, dataFormats_, trackerTFP::DataFormats::format(), amptDefault_cfi::frame, input, input_, createfilelist::int, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, tt::Setup::numLayers(), trklet::ChannelAssignment::numNodesDR(), PVValHelper::phi, alignCSCRings::r, region_, setup_, stubs_, tracks_, trackerTFP::DataFormat::width(), trklet::ChannelAssignment::widthLayerId(), trklet::ChannelAssignment::widthPSTilt(), trklet::ChannelAssignment::widthSeedStubId(), and detailsBasic3DVector::z.
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);
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);
63 if (frameStub.first.isNull())
65 TTBV ttBV = frameStub.second;
78 Frame(
"1" + tilt.str() + layerId.str() +
r.str() +
phi.str() +
z.str()));
80 stubs.push_back(&
stubs_.back());
82 tracks_.emplace_back(frameTrack, stubs);
std::vector< std::vector< Track * > > input_
std::bitset< TTBV::S_ > Frame
Bit vector used by Track Trigger emulators. Mainly used to convert integers into arbitrary (within ma...
std::pair< TTStubRef, Frame > FrameStub
std::vector< FrameStub > StreamStub
std::vector< FrameTrack > StreamTrack
static std::string const input
std::pair< TTTrackRef, Frame > FrameTrack
const ChannelAssignment * channelAssignment_
std::vector< Track > tracks_
std::vector< Stub > stubs_
const trackerTFP::DataFormats * dataFormats_
int widthSeedStubId() const