Skip to content

Commit

Permalink
rebase and reduce config customize function extended
Browse files Browse the repository at this point in the history
  • Loading branch information
tschuh committed Nov 11, 2021
1 parent c521dfa commit 09b26d3
Show file tree
Hide file tree
Showing 8 changed files with 26 additions and 149 deletions.
4 changes: 0 additions & 4 deletions L1Trigger/TrackFindingTracklet/interface/FitTrack.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@
#include "L1Trigger/TrackFindingTracklet/interface/TrackletParametersMemory.h"
#include "L1Trigger/TrackFindingTracklet/interface/FullMatchMemory.h"
#include "L1Trigger/TrackFindingTracklet/interface/TrackFitMemory.h"
<<<<<<< HEAD
#include "L1Trigger/TrackFindingTracklet/interface/ChannelAssignment.h"
=======
#include "L1Trigger/TrackFindingTracklet/interface/TrackBuilderChannel.h"
>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer

#include <vector>
#include <deque>
Expand Down
4 changes: 0 additions & 4 deletions L1Trigger/TrackFindingTracklet/interface/Sector.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,7 @@

#include "L1Trigger/TrackFindingTracklet/interface/L1TStub.h"
#include "L1Trigger/TrackFindingTracklet/interface/SLHCEvent.h"
<<<<<<< HEAD
#include "L1Trigger/TrackFindingTracklet/interface/ChannelAssignment.h"
=======
#include "L1Trigger/TrackFindingTracklet/interface/TrackBuilderChannel.h"
>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer

#include <string>
#include <map>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,7 @@
#define L1Trigger_TrackFindingTracklet_interface_TrackletEventProcessor_h

#include "L1Trigger/TrackFindingTracklet/interface/Timer.h"
<<<<<<< HEAD
#include "L1Trigger/TrackFindingTracklet/interface/ChannelAssignment.h"
=======
#include "L1Trigger/TrackFindingTracklet/interface/TrackBuilderChannel.h"
>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer

#include <map>
#include <memory>
Expand Down
32 changes: 0 additions & 32 deletions L1Trigger/TrackFindingTracklet/plugins/L1FPGATrackProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,6 @@ class L1FPGATrackProducer : public edm::one::EDProducer<edm::one::WatchRuns> {
edm::EDGetTokenT<std::vector<TrackingParticle>> TrackingParticleToken_;
edm::EDGetTokenT<TTDTC> tokenDTC_;

<<<<<<< HEAD
// ED output token for clock and bit accurate tracks
EDPutTokenT<Streams> edPutTokenTracks_;
// ED output token for clock and bit accurate stubs
Expand All @@ -199,14 +198,6 @@ class L1FPGATrackProducer : public edm::one::EDProducer<edm::one::WatchRuns> {
ESGetToken<ChannelAssignment, ChannelAssignmentRcd> esGetTokenChannelAssignment_;
// helper class to assign tracks to channel
ChannelAssignment* channelAssignment_;
=======
// ED output token for clock and bit accurate stubs
EDPutTokenT<StreamsStub> edPutTokenStubs_;
// TrackBuilderChannel token
ESGetToken<TrackBuilderChannel, TrackBuilderChannelRcd> esGetTokenTrackBuilderChannel_;
// helper class to assign tracks to channel
TrackBuilderChannel* trackBuilderChannel_;
>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer

// helper class to store DTC configuration
tt::Setup setup_;
Expand Down Expand Up @@ -257,7 +248,6 @@ L1FPGATrackProducer::L1FPGATrackProducer(edm::ParameterSet const& iConfig)
tableTREFile = iConfig.getParameter<edm::FileInPath>("tableTREFile");
}

<<<<<<< HEAD
// book ED output token for clock and bit accurate tracks
edPutTokenTracks_ = produces<Streams>("Level1TTTracks");
// book ED output token for clock and bit accurate stubs
Expand All @@ -267,16 +257,6 @@ L1FPGATrackProducer::L1FPGATrackProducer(edm::ParameterSet const& iConfig)
esGetToken_ = esConsumes<tt::Setup, tt::SetupRcd, edm::Transition::BeginRun>();
// initial ES products
channelAssignment_ = nullptr;
=======

// book ED output token for clock and bit accurate stubs
edPutTokenStubs_ = produces<StreamsStub>("Level1TTTracks");
// book ES product
esGetTokenTrackBuilderChannel_ = esConsumes<TrackBuilderChannel, TrackBuilderChannelRcd, Transition::BeginRun>();
esGetToken_ = esConsumes<tt::Setup, tt::SetupRcd, edm::Transition::BeginRun>();
// initial ES products
trackBuilderChannel_ = nullptr;
>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer

// --------------------------------------------------------------------------------
// set options in Settings based on inputs from configuration files
Expand Down Expand Up @@ -361,17 +341,10 @@ void L1FPGATrackProducer::beginRun(const edm::Run& run, const edm::EventSetup& i
settings.setBfield(mMagneticFieldStrength);

setup_ = iSetup.getData(esGetToken_);
<<<<<<< HEAD
channelAssignment_ = const_cast<ChannelAssignment*>(&iSetup.getData(esGetTokenChannelAssignment_));

// initialize the tracklet event processing (this sets all the processing & memory modules, wiring, etc)
eventProcessor.init(settings, channelAssignment_);
=======
trackBuilderChannel_ = const_cast<TrackBuilderChannel*>(&iSetup.getData(esGetTokenTrackBuilderChannel_));

// initialize the tracklet event processing (this sets all the processing & memory modules, wiring, etc)
eventProcessor.init(settings, trackBuilderChannel_);
>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer
}

//////////
Expand Down Expand Up @@ -706,7 +679,6 @@ void L1FPGATrackProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSe

iEvent.put(std::move(L1TkTracksForOutput), "Level1TTTracks");

<<<<<<< HEAD
// produce clock and bit output tracks and stubs
// number of track channel
const int numStreamsTrack = N_SECTOR * channelAssignment_->numChannels();
Expand All @@ -716,10 +688,6 @@ void L1FPGATrackProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSe
StreamsStub streamsStub(numStreamsStub);
eventProcessor.produce(streamsTrack, streamsStub);
iEvent.emplace(edPutTokenTracks_, move(streamsTrack));
=======
// produce clock and bit output stubs
const StreamsStub& streamsStub = eventProcessor.produce();
>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer
iEvent.emplace(edPutTokenStubs_, move(streamsStub));

} /// End of produce()
Expand Down
33 changes: 18 additions & 15 deletions L1Trigger/TrackFindingTracklet/python/Customize_cff.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,25 @@
import FWCore.ParameterSet.Config as cms

def newKFConfig(process):
process.TTTracksFromTrackletEmulation.Fakefit = True
process.TTTracksFromTrackletEmulation.Fakefit = True

def fwConfig(process):
newKFConfig(process)
process.TrackTriggerSetup.Firmware.FreqBE = 240
process.TTTracksFromTrackletEmulation.RemovalType = ""
process.TTTracksFromTrackletEmulation.DoMultipleMatches = False
process.TTTracksFromTrackletEmulation.EmulateTB = True
newKFConfig(process)
process.TrackTriggerSetup.Firmware.FreqBE = 240
process.TTTracksFromTrackletEmulation.RemovalType = ""
process.TTTracksFromTrackletEmulation.DoMultipleMatches = False
process.TTTracksFromTrackletEmulation.EmulateTB = True
process.ChannelAssignment.UseDuplicateRemoval = False

def reducedConfig(process):
fwConfig(process)
process.TrackTriggerSetup.KalmanFilter.NumWorker = 1
process.TrackBuilderChannel.SummerChain = True
process.TrackBuilderChannel.MaxNumProjectionLayers = 4
process.TrackFindingTrackletProducerIRin.SummerChain = True
process.TTTracksFromTrackletEmulation.Reduced = True
process.TTTracksFromTrackletEmulation.memoryModulesFile = 'L1Trigger/TrackFindingTracklet/data/reduced_memorymodules.dat'
process.TTTracksFromTrackletEmulation.processingModulesFile = 'L1Trigger/TrackFindingTracklet/data/reduced_processingmodules.dat'
process.TTTracksFromTrackletEmulation.wiresFile = 'L1Trigger/TrackFindingTracklet/data/reduced_wires.dat'
fwConfig(process)
process.TrackTriggerSetup.KalmanFilter.NumWorker = 1
process.ChannelAssignment.SeedTypes = cms.vstring( "L1L2" )
process.ChannelAssignment.SeedTypesSeedLayers = cms.PSet( L1L2 = cms.vint32( 1, 2 ) )
process.ChannelAssignment.SeedTypesProjectionLayers = cms.PSet( L1L2 = cms.vint32( 3, 4, 5, 6 ) )
process.ChannelAssignment.MaxNumProjectionLayers = 4
process.ChannelAssignment.IRChannelsIn = cms.vint32( 0, 1, 25, 2, 26, 4, 28, 5, 29, 6, 30, 7, 31, 8, 32, 9, 33 )
process.TTTracksFromTrackletEmulation.Reduced = True
process.TTTracksFromTrackletEmulation.memoryModulesFile = 'L1Trigger/TrackFindingTracklet/data/reduced_memorymodules.dat'
process.TTTracksFromTrackletEmulation.processingModulesFile = 'L1Trigger/TrackFindingTracklet/data/reduced_processingmodules.dat'
process.TTTracksFromTrackletEmulation.wiresFile = 'L1Trigger/TrackFindingTracklet/data/reduced_wires.dat'
13 changes: 0 additions & 13 deletions L1Trigger/TrackFindingTracklet/src/TrackletEventProcessor.cc
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ TrackletEventProcessor::~TrackletEventProcessor() {
}
}

<<<<<<< HEAD
void TrackletEventProcessor::init(Settings const& theSettings, ChannelAssignment* channelAssignment) {
settings_ = &theSettings;
channelAssignment_ = channelAssignment;
Expand All @@ -33,15 +32,6 @@ void TrackletEventProcessor::init(Settings const& theSettings, ChannelAssignment
// number of stub channel
const int numStreamsStub = numStreamsTrack * channelAssignment_->maxNumProjectionLayers();
streamsTrack_ = tt::Streams(numStreamsTrack);
=======
void TrackletEventProcessor::init(Settings const& theSettings, TrackBuilderChannel* trackBuilderChannel) {
settings_ = &theSettings;
trackBuilderChannel_ = trackBuilderChannel;
// number of track channel
const int numStreamsTrack = N_SECTOR * trackBuilderChannel_->numChannels();
// number of stub channel
const int numStreamsStub = numStreamsTrack * trackBuilderChannel_->maxNumProjectionLayers();
>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer
streamsStub_ = tt::StreamsStub(numStreamsStub);

globals_ = make_unique<Globals>(*settings_);
Expand Down Expand Up @@ -460,12 +450,9 @@ void TrackletEventProcessor::printSummary() {
<< "PurgeDuplicate " << setw(10) << PDTimer_.ntimes() << setw(20)
<< setprecision(3) << PDTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
<< PDTimer_.tottime();
<<<<<<< HEAD
}

void TrackletEventProcessor::produce(tt::Streams& streamsTrack, tt::StreamsStub& streamsStub) {
swap(streamsTrack, streamsTrack_);
swap(streamsStub, streamsStub_);
=======
>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer
}
11 changes: 8 additions & 3 deletions L1Trigger/TrackFindingTracklet/test/ProducerIRin.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "DataFormats/Common/interface/Handle.h"

#include "L1Trigger/TrackTrigger/interface/Setup.h"
#include "L1Trigger/TrackFindingTracklet/interface/ChannelAssignment.h"

#include <string>
#include <vector>
Expand Down Expand Up @@ -45,10 +46,14 @@ namespace trklet {
EDPutTokenT<StreamsStub> edPutTokenStubs_;
// Setup token
ESGetToken<Setup, SetupRcd> esGetTokenSetup_;
// ChannelAssignment token
ESGetToken<ChannelAssignment, ChannelAssignmentRcd> esGetTokenChannelAssignment_;
// configuration
ParameterSet iConfig_;
// helper class to store configurations
const Setup* setup_;
// helper class to assign stubs to channel
const ChannelAssignment* channelAssignment_;
// reduce l1 tracking to summer chain configuration
bool summerChain_;
// map of used tfp channels in summer chain config
Expand All @@ -63,6 +68,7 @@ namespace trklet {
edPutTokenStubs_ = produces<StreamsStub>(branchStubs);
// book ES products
esGetTokenSetup_ = esConsumes<Setup, SetupRcd, Transition::BeginRun>();
esGetTokenChannelAssignment_ = esConsumes<ChannelAssignment, ChannelAssignmentRcd, Transition::BeginRun>();
// initial ES products
setup_ = nullptr;
}
Expand All @@ -75,10 +81,9 @@ namespace trklet {
// check process history if desired
if (iConfig_.getParameter<bool>("CheckHistory"))
setup_->checkHistory(iRun.processHistory());
// reduce l1 tracking to summer chain configuration
summerChain_ = iConfig_.getParameter<bool>("SummerChain");
channelAssignment_ = const_cast<ChannelAssignment*>(&iSetup.getData(esGetTokenChannelAssignment_));
// map of used tfp channels in summer chain config
channelEncoding_ = iConfig_.getParameter<vector<int>>("SummerChainChannels");
channelEncoding_ = channelAssignment_->channelEncoding();
}

void ProducerIRin::produce(Event& iEvent, const EventSetup& iSetup) {
Expand Down
74 changes: 0 additions & 74 deletions L1Trigger/TrackFindingTracklet/test/ProducerTBout.cc
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,7 @@ namespace trklet {
const string& branchLostTracks = iConfig.getParameter<string>("BranchLostTracks");
// book in- and output ED products
edGetTokenTTTracks_ = consumes<TTTracks>(inputTag);
<<<<<<< HEAD
edGetTokenTracks_ = consumes<Streams>(inputTag);
=======
>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer
edGetTokenStubs_ = consumes<StreamsStub>(inputTag);
edPutTokenAcceptedStubs_ = produces<StreamsStub>(branchAcceptedStubs);
edPutTokenAcceptedTracks_ = produces<StreamsTrack>(branchAcceptedTracks);
Expand Down Expand Up @@ -129,7 +126,6 @@ namespace trklet {
StreamsTrack streamLostTracks(numStreamsTracks);
// read in hybrid track finding product and produce KFin product
if (setup_->configurationSupported()) {
<<<<<<< HEAD
// create and structure TTrackRefs in h/w channel
vector<deque<TTTrackRef>> ttTrackRefs(numStreamsTracks);
Handle<TTTracks> handleTTTracks;
Expand Down Expand Up @@ -161,41 +157,10 @@ namespace trklet {
};
transform(streamTrack.begin(), limit, back_inserter(accepted), toFrameTrack);
transform(limit, streamTrack.end(), back_inserter(lost), toFrameTrack);
=======
// create TTrackRefs
Handle<TTTracks> handleTTTracks;
iEvent.getByToken<TTTracks>(edGetTokenTTTracks_, handleTTTracks);
vector<TTTrackRef> ttTrackRefs;
ttTrackRefs.reserve(handleTTTracks->size());
for (int i = 0; i < (int)handleTTTracks->size(); i++)
ttTrackRefs.emplace_back(TTTrackRef(handleTTTracks, i));
// count tracks per channel and reserve output products
vector<int> nTTTracksStreams(numStreamsTracks, 0);
int channelId;
for (const TTTrackRef& ttTrackRef : ttTrackRefs)
if (trackBuilderChannel_->channelId(ttTrackRef, channelId))
nTTTracksStreams[channelId]++;
for (int channelTrack = 0; channelTrack < numStreamsTracks; channelTrack++) {
const int num = nTTTracksStreams[channelTrack];
const int lost = enableTruncation_ && num > setup_->numFrames() ? num - setup_->numFrames() : 0;
const int accepted = lost == 0 ? num : setup_->numFrames();
streamAcceptedTracks[channelTrack].reserve(accepted);
streamLostTracks[channelTrack].reserve(lost);
}
// fill output products
for (const TTTrackRef& ttTrackRef : ttTrackRefs) {
if (!trackBuilderChannel_->channelId(ttTrackRef, channelId))
continue;
const bool truncate = enableTruncation_ && (int)streamAcceptedTracks[channelId].size() > setup_->numFrames();
StreamTrack& tracks = truncate ? streamLostTracks[channelId] : streamAcceptedTracks[channelId];
// conv track word
tracks.emplace_back(ttTrackRef, conv(ttTrackRef));
>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer
}
// get and trunacte stubs
Handle<StreamsStub> handleStubs;
iEvent.getByToken<StreamsStub>(edGetTokenStubs_, handleStubs);
<<<<<<< HEAD
const StreamsStub& streamsStub = *handleStubs;
// reserve output ed products
channelId = 0;
Expand All @@ -205,15 +170,6 @@ namespace trklet {
limit = next(streamStub.begin(), setup_->numFrames());
streamAcceptedStubs[channelId] = StreamStub(streamStub.begin(), limit);
streamLostStubs[channelId++] = StreamStub(limit, streamStub.end());
=======
int channel(0);
for (const StreamStub& streamStub : *handleStubs) {
auto limit = streamStub.end();
if (enableTruncation_ && (int)streamStub.size() > setup_->numFrames())
limit = next(streamStub.begin(), setup_->numFrames());
streamAcceptedStubs[channel] = StreamStub(streamStub.begin(), limit);
streamLostStubs[channel++] = StreamStub(limit, streamStub.end());
>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer
}
}
// store products
Expand All @@ -223,36 +179,6 @@ namespace trklet {
iEvent.emplace(edPutTokenLostTracks_, move(streamLostTracks));
}

<<<<<<< HEAD
=======
// return h/w bits for given ttTrackRef
Frame ProducerTBout::conv(const TTTrackRef& ttTrackRef) const {
static constexpr int widthSeedType = 3;
static constexpr int widthInvR = 14;
static constexpr int widthPhi0 = 18;
static constexpr int widthZ0 = 10;
static constexpr int widthTanL = 14;
static const double baseInvR = settings_.kphi1() / settings_.kr() * pow(2, settings_.rinv_shift());
static const double basePhi0 = settings_.kphi1() * pow(2, settings_.phi0_shift());
static const double baseZ0 = settings_.kz() * pow(2, settings_.z0_shift());
static const double baseTanL = settings_.kz() / settings_.kr() * pow(2, settings_.t_shift());
// sub words
// phi0 w.r.t. processing region border in rad
double phi0 =
deltaPhi(ttTrackRef->phi() - ttTrackRef->phiSector() * setup_->baseRegion() + setup_->hybridRangePhi() / 2.);
if (phi0 < 0.)
phi0 += 2. * M_PI;
const TTBV hwValid(1, 1);
const TTBV hwSeedType((int)ttTrackRef->trackSeedType(), widthSeedType);
const TTBV hwInvR(ttTrackRef->rInv(), baseInvR, widthInvR, true);
const TTBV hwPhi0(phi0, basePhi0, widthPhi0, false);
const TTBV hwZ0(ttTrackRef->z0(), baseZ0, widthZ0, true);
const TTBV hwTanL(ttTrackRef->tanL(), baseTanL, widthTanL, true);
const TTBV hw(hwValid.str() + hwSeedType.str() + hwInvR.str() + hwPhi0.str() + hwZ0.str() + hwTanL.str());
return hw.bs();
}

>>>>>>> StreamsStub added as EDProduct of L1FPGATrackProducer
} // namespace trklet

DEFINE_FWK_MODULE(trklet::ProducerTBout);

0 comments on commit 09b26d3

Please sign in to comment.