Skip to content

Commit

Permalink
makortel 2
Browse files Browse the repository at this point in the history
  • Loading branch information
tschuh committed Jan 30, 2025
1 parent 4556ae8 commit 39416ae
Show file tree
Hide file tree
Showing 57 changed files with 347 additions and 486 deletions.
3 changes: 1 addition & 2 deletions L1Trigger/TrackFindingTracklet/interface/DataFormats.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ and in undigitized format in an std::tuple. (This saves CPU)
----------------------------------------------------------------------*/

#include "FWCore/Framework/interface/data_default_record_trait.h"
#include "L1Trigger/TrackFindingTracklet/interface/DataFormatsRcd.h"
#include "L1Trigger/TrackFindingTracklet/interface/ChannelAssignment.h"
#include "L1Trigger/TrackTrigger/interface/Setup.h"
#include "DataFormats/L1TrackTrigger/interface/TTBV.h"
Expand Down Expand Up @@ -485,6 +484,6 @@ namespace trklet {

} // namespace trklet

EVENTSETUP_DATA_DEFAULT_RECORD(trklet::DataFormats, trklet::DataFormatsRcd);
EVENTSETUP_DATA_DEFAULT_RECORD(trklet::DataFormats, trklet::ChannelAssignmentRcd);

#endif
17 changes: 0 additions & 17 deletions L1Trigger/TrackFindingTracklet/interface/DataFormatsRcd.h

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,11 @@
#include "FWCore/Framework/interface/DependentRecordImplementation.h"
#include "L1Trigger/TrackTrigger/interface/SetupRcd.h"
#include "L1Trigger/TrackerTFP/interface/DataFormatsRcd.h"
#include "L1Trigger/TrackerTFP/interface/LayerEncodingRcd.h"
#include "FWCore/Utilities/interface/mplVector.h"

namespace hph {

typedef edm::mpl::Vector<tt::SetupRcd, trackerTFP::DataFormatsRcd, trackerTFP::LayerEncodingRcd> Rcds;
typedef edm::mpl::Vector<tt::SetupRcd, trackerTFP::DataFormatsRcd> Rcds;

// record of hph::SetupRcd
class SetupRcd : public edm::eventsetup::DependentRecordImplementation<SetupRcd, Rcds> {};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ namespace trklet {
const trackerTFP::TrackQuality* trackQuality_;
// storage of tracks
std::vector<Track> tracks_;
// b field
double bfield_;
};

} // namespace trklet
Expand Down
4 changes: 2 additions & 2 deletions L1Trigger/TrackFindingTracklet/plugins/L1FPGATrackProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ class L1FPGATrackProducer : public edm::one::EDProducer<edm::one::WatchRuns> {
const ESGetToken<TrackerTopology, TrackerTopologyRcd> esGetTokenTTopo_;
const ESGetToken<Setup, SetupRcd> esGetTokenSetup_;
const ESGetToken<ChannelAssignment, ChannelAssignmentRcd> esGetTokenChannelAssignment_;
const ESGetToken<TrackQuality, TrackQualityRcd> esGetTokenTrackQuality_;
const ESGetToken<TrackQuality, DataFormatsRcd> esGetTokenTrackQuality_;
const ESGetToken<hph::Setup, hph::SetupRcd> esGetTokenHPH_;

/// ///////////////// ///
Expand Down Expand Up @@ -247,7 +247,7 @@ L1FPGATrackProducer::L1FPGATrackProducer(edm::ParameterSet const& iConfig)
esGetTokenTTopo_(esConsumes()),
esGetTokenSetup_(esConsumes<Setup, SetupRcd, Transition::BeginRun>()),
esGetTokenChannelAssignment_(esConsumes<ChannelAssignment, ChannelAssignmentRcd, Transition::BeginRun>()),
esGetTokenTrackQuality_(esConsumes<TrackQuality, TrackQualityRcd, Transition::BeginRun>()),
esGetTokenTrackQuality_(esConsumes<TrackQuality, DataFormatsRcd, Transition::BeginRun>()),
esGetTokenHPH_(esConsumes<hph::Setup, hph::SetupRcd, edm::Transition::BeginRun>()) {
if (readMoreMcTruth_) {
getTokenTTClusterMCTruth_ = consumes<TTClusterAssociationMap<Ref_Phase2TrackerDigi_>>(MCTruthClusterInputTag);
Expand Down
38 changes: 13 additions & 25 deletions L1Trigger/TrackFindingTracklet/plugins/ProducerDR.cc
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ namespace trklet {
~ProducerDR() override {}

private:
void beginRun(const Run&, const EventSetup&) override;
void produce(Event&, const EventSetup&) override;
// ED input token of Tracks
EDGetTokenT<StreamsTrack> edGetTokenTracks_;
Expand All @@ -56,19 +55,11 @@ namespace trklet {
// Setup token
ESGetToken<Setup, SetupRcd> esGetTokenSetup_;
// LayerEncoding token
ESGetToken<LayerEncoding, LayerEncodingRcd> esGetTokenLayerEncoding_;
ESGetToken<LayerEncoding, ChannelAssignmentRcd> esGetTokenLayerEncoding_;
// DataFormats token
ESGetToken<DataFormats, DataFormatsRcd> esGetTokenDataFormats_;
ESGetToken<DataFormats, ChannelAssignmentRcd> esGetTokenDataFormats_;
// ChannelAssignment token
ESGetToken<ChannelAssignment, ChannelAssignmentRcd> esGetTokenChannelAssignment_;
// helper class to store configurations
const Setup* setup_ = nullptr;
// helper class to encode layer
const LayerEncoding* layerEncoding_ = nullptr;
// helper class to extract structured data from tt::Frames
const DataFormats* dataFormats_ = nullptr;
// helper class to assign tracks to channel
const ChannelAssignment* channelAssignment_ = nullptr;
};

ProducerDR::ProducerDR(const ParameterSet& iConfig) {
Expand All @@ -82,32 +73,29 @@ namespace trklet {
edPutTokenStubs_ = produces<StreamsStub>(branchStubs);
// book ES products
esGetTokenSetup_ = esConsumes<Setup, SetupRcd, Transition::BeginRun>();
esGetTokenLayerEncoding_ = esConsumes<LayerEncoding, LayerEncodingRcd, Transition::BeginRun>();
esGetTokenDataFormats_ = esConsumes<DataFormats, DataFormatsRcd, Transition::BeginRun>();
esGetTokenLayerEncoding_ = esConsumes<LayerEncoding, ChannelAssignmentRcd, Transition::BeginRun>();
esGetTokenDataFormats_ = esConsumes<DataFormats, ChannelAssignmentRcd, Transition::BeginRun>();
esGetTokenChannelAssignment_ = esConsumes<ChannelAssignment, ChannelAssignmentRcd, Transition::BeginRun>();
}

void ProducerDR::beginRun(const Run& iRun, const EventSetup& iSetup) {
void ProducerDR::produce(Event& iEvent, const EventSetup& iSetup) {
// helper class to store configurations
setup_ = &iSetup.getData(esGetTokenSetup_);
const Setup* setup = &iSetup.getData(esGetTokenSetup_);
// helper class to encode layer
layerEncoding_ = &iSetup.getData(esGetTokenLayerEncoding_);
const LayerEncoding* layerEncoding = &iSetup.getData(esGetTokenLayerEncoding_);
// helper class to extract structured data from tt::Frames
dataFormats_ = &iSetup.getData(esGetTokenDataFormats_);
const DataFormats* dataFormats = &iSetup.getData(esGetTokenDataFormats_);
// helper class to assign tracks to channel
channelAssignment_ = &iSetup.getData(esGetTokenChannelAssignment_);
}

void ProducerDR::produce(Event& iEvent, const EventSetup& iSetup) {
const ChannelAssignment* channelAssignment = &iSetup.getData(esGetTokenChannelAssignment_);
// empty DR products
StreamsStub streamsStub(setup_->numRegions() * setup_->numLayers());
StreamsTrack streamsTrack(setup_->numRegions());
StreamsStub streamsStub(setup->numRegions() * setup->numLayers());
StreamsTrack streamsTrack(setup->numRegions());
// read in TBout Product and produce KFin product
const StreamsStub& stubs = iEvent.get(edGetTokenStubs_);
const StreamsTrack& tracks = iEvent.get(edGetTokenTracks_);
for (int region = 0; region < setup_->numRegions(); region++) {
for (int region = 0; region < setup->numRegions(); region++) {
// object to remove duplicated tracks in a processing region
DuplicateRemoval dr(setup_, layerEncoding_, dataFormats_, channelAssignment_, region);
DuplicateRemoval dr(setup, layerEncoding, dataFormats, channelAssignment, region);
// read in and organize input tracks and stubs
dr.consume(tracks, stubs);
// fill output products
Expand Down
4 changes: 2 additions & 2 deletions L1Trigger/TrackFindingTracklet/plugins/ProducerDataFormats.cc
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace trklet {
public:
ProducerDataFormats(const ParameterSet& iConfig);
~ProducerDataFormats() override {}
unique_ptr<DataFormats> produce(const DataFormatsRcd& rcd);
unique_ptr<DataFormats> produce(const ChannelAssignmentRcd& rcd);

private:
ESGetToken<ChannelAssignment, ChannelAssignmentRcd> esGetToken_;
Expand All @@ -35,7 +35,7 @@ namespace trklet {
esGetToken_ = cc.consumes();
}

unique_ptr<DataFormats> ProducerDataFormats::produce(const DataFormatsRcd& rcd) {
unique_ptr<DataFormats> ProducerDataFormats::produce(const ChannelAssignmentRcd& rcd) {
const ChannelAssignment* ca = &rcd.get(esGetToken_);
return make_unique<DataFormats>(ca);
}
Expand Down
2 changes: 1 addition & 1 deletion L1Trigger/TrackFindingTracklet/plugins/ProducerHPH.cc
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ namespace hph {
Setup::Config iConfig_;
ESGetToken<tt::Setup, tt::SetupRcd> esGetTokenSetup_;
ESGetToken<trackerTFP::DataFormats, trackerTFP::DataFormatsRcd> esGetTokenDataFormats_;
ESGetToken<trackerTFP::LayerEncoding, trackerTFP::LayerEncodingRcd> esGetTokenLayerEncoding_;
ESGetToken<trackerTFP::LayerEncoding, trackerTFP::DataFormatsRcd> esGetTokenLayerEncoding_;
};

ProducerHPH::ProducerHPH(const ParameterSet& iConfig) {
Expand Down
28 changes: 14 additions & 14 deletions L1Trigger/TrackFindingTracklet/plugins/ProducerKF.cc
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,7 @@ namespace trklet {
// Setup token
ESGetToken<Setup, SetupRcd> esGetTokenSetup_;
// DataFormats token
ESGetToken<DataFormats, DataFormatsRcd> esGetTokenDataFormats_;
// helper class to store configurations
const Setup* setup_ = nullptr;
// helper class to extract structured data from tt::Frames
const DataFormats* dataFormats_ = nullptr;
ESGetToken<DataFormats, ChannelAssignmentRcd> esGetTokenDataFormats_;
// provides dataformats of Kalman filter internals
KalmanFilterFormats kalmanFilterFormats_;
//
Expand Down Expand Up @@ -102,24 +98,28 @@ namespace trklet {
edPutTokenNumStatesTruncated_ = produces<int>(branchTruncated);
// book ES products
esGetTokenSetup_ = esConsumes<Setup, SetupRcd, Transition::BeginRun>();
esGetTokenDataFormats_ = esConsumes<DataFormats, DataFormatsRcd, Transition::BeginRun>();
esGetTokenDataFormats_ = esConsumes<DataFormats, ChannelAssignmentRcd, Transition::BeginRun>();
}

void ProducerKF::beginRun(const Run& iRun, const EventSetup& iSetup) {
// helper class to store configurations
setup_ = &iSetup.getData(esGetTokenSetup_);
const Setup* setup = &iSetup.getData(esGetTokenSetup_);
settings_.setMagneticField(setup->bField());
// helper class to extract structured data from tt::Frames
dataFormats_ = &iSetup.getData(esGetTokenDataFormats_);
const DataFormats* dataFormats = &iSetup.getData(esGetTokenDataFormats_);
// provides dataformats of Kalman filter internals
kalmanFilterFormats_.consume(dataFormats_);
settings_.setMagneticField(setup_->bField());
kalmanFilterFormats_.consume(dataFormats);
}

void ProducerKF::produce(Event& iEvent, const EventSetup& iSetup) {
// helper class to store configurations
const Setup* setup = &iSetup.getData(esGetTokenSetup_);
// helper class to extract structured data from tt::Frames
const DataFormats* dataFormats = &iSetup.getData(esGetTokenDataFormats_);
auto valid = [](int sum, const FrameTrack& f) { return sum += (f.first.isNull() ? 0 : 1); };
// empty KF products
StreamsStub streamsStub(setup_->numRegions() * setup_->numLayers());
StreamsTrack streamsTrack(setup_->numRegions());
StreamsStub streamsStub(setup->numRegions() * setup->numLayers());
StreamsTrack streamsTrack(setup->numRegions());
int numStatesAccepted(0);
int numStatesTruncated(0);
// read in DR Product and produce KF product
Expand All @@ -139,9 +139,9 @@ namespace trklet {
if (frame.first.isNonnull())
ttTrackRefs.push_back(frame.first);
}
for (int region = 0; region < setup_->numRegions(); region++) {
for (int region = 0; region < setup->numRegions(); region++) {
// object to fit tracks in a processing region
KalmanFilter kf(setup_, dataFormats_, &kalmanFilterFormats_, &settings_, tmtt_, region, ttTracks);
KalmanFilter kf(setup, dataFormats, &kalmanFilterFormats_, &settings_, tmtt_, region, ttTracks);
// read in and organize input tracks and stubs
kf.consume(tracks, stubs);
// fill output products
Expand Down
30 changes: 10 additions & 20 deletions L1Trigger/TrackFindingTracklet/plugins/ProducerTFP.cc
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ namespace trklet {
~ProducerTFP() override {}

private:
void beginRun(const Run&, const EventSetup&) override;
void produce(Event&, const EventSetup&) override;
// ED input token of stubs and tracks
EDGetTokenT<StreamsTrack> edGetTokenTracks_;
Expand All @@ -52,15 +51,9 @@ namespace trklet {
// Setup token
ESGetToken<Setup, SetupRcd> esGetTokenSetup_;
// DataFormats token
ESGetToken<DataFormats, DataFormatsRcd> esGetTokenDataFormats_;
ESGetToken<DataFormats, ChannelAssignmentRcd> esGetTokenDataFormats_;
// TrackQuality token
ESGetToken<TrackQuality, TrackQualityRcd> esGetTokenTrackQuality_;
// helper class to store configurations
const Setup* setup_ = nullptr;
// helper class to extract structured data from tt::Frames
const DataFormats* dataFormats_ = nullptr;
// helper class to determine track quality
const TrackQuality* trackQuality_ = nullptr;
ESGetToken<TrackQuality, DataFormatsRcd> esGetTokenTrackQuality_;
};

ProducerTFP::ProducerTFP(const ParameterSet& iConfig) {
Expand All @@ -77,29 +70,26 @@ namespace trklet {
edPutTokenTracks_ = produces<StreamsTrack>(branchTracks);
// book ES products
esGetTokenSetup_ = esConsumes<Setup, SetupRcd, Transition::BeginRun>();
esGetTokenDataFormats_ = esConsumes<DataFormats, DataFormatsRcd, Transition::BeginRun>();
esGetTokenTrackQuality_ = esConsumes<TrackQuality, TrackQualityRcd, Transition::BeginRun>();
esGetTokenDataFormats_ = esConsumes<DataFormats, ChannelAssignmentRcd, Transition::BeginRun>();
esGetTokenTrackQuality_ = esConsumes<TrackQuality, DataFormatsRcd, Transition::BeginRun>();
}

void ProducerTFP::beginRun(const Run& iRun, const EventSetup& iSetup) {
void ProducerTFP::produce(Event& iEvent, const EventSetup& iSetup) {
// helper class to store configurations
setup_ = &iSetup.getData(esGetTokenSetup_);
const Setup* setup = &iSetup.getData(esGetTokenSetup_);
// helper class to extract structured data from tt::Frames
dataFormats_ = &iSetup.getData(esGetTokenDataFormats_);
const DataFormats* dataFormats = &iSetup.getData(esGetTokenDataFormats_);
// helper class to determine track quality
trackQuality_ = &iSetup.getData(esGetTokenTrackQuality_);
}

void ProducerTFP::produce(Event& iEvent, const EventSetup& iSetup) {
const TrackQuality* trackQuality = &iSetup.getData(esGetTokenTrackQuality_);
// empty TFP products
TTTracks ttTracks;
StreamsTrack streamsTrack(setup_->numRegions() * setup_->tfpNumChannel());
StreamsTrack streamsTrack(setup->numRegions() * setup->tfpNumChannel());
// read in TQ Products
const StreamsTrack& tracks = iEvent.get(edGetTokenTracks_);
const Streams& tracksAdd = iEvent.get(edGetTokenTracksAdd_);
const StreamsStub& stubs = iEvent.get(edGetTokenStubs_);
// produce TTTracks
TrackFindingProcessor tfp(setup_, dataFormats_, trackQuality_);
TrackFindingProcessor tfp(setup, dataFormats, trackQuality);
tfp.produce(tracks, tracksAdd, stubs, ttTracks, streamsTrack);
// put TTTRacks and produce TTTRackRefs
const int nTrks = ttTracks.size();
Expand Down
30 changes: 10 additions & 20 deletions L1Trigger/TrackFindingTracklet/plugins/ProducerTM.cc
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ namespace trklet {
~ProducerTM() override {}

private:
void beginRun(const Run&, const EventSetup&) override;
void produce(Event&, const EventSetup&) override;

// ED input token of Tracks
Expand All @@ -56,15 +55,9 @@ namespace trklet {
// Setup token
ESGetToken<Setup, SetupRcd> esGetTokenSetup_;
// DataFormats token
ESGetToken<DataFormats, DataFormatsRcd> esGetTokenDataFormats_;
ESGetToken<DataFormats, ChannelAssignmentRcd> esGetTokenDataFormats_;
// ChannelAssignment token
ESGetToken<ChannelAssignment, ChannelAssignmentRcd> esGetTokenChannelAssignment_;
// helper class to store configurations
const Setup* setup_ = nullptr;
// helper class to extract structured data from tt::Frames
const DataFormats* dataFormats_ = nullptr;
// helper class to assign tracks to channel
const ChannelAssignment* channelAssignment_ = nullptr;
// helper class to store tracklet configurations
Settings settings_;
};
Expand All @@ -80,29 +73,26 @@ namespace trklet {
edPutTokenTracks_ = produces<StreamsTrack>(branchTracks);
// book ES products
esGetTokenSetup_ = esConsumes<Setup, SetupRcd, Transition::BeginRun>();
esGetTokenDataFormats_ = esConsumes<DataFormats, DataFormatsRcd, Transition::BeginRun>();
esGetTokenDataFormats_ = esConsumes<DataFormats, ChannelAssignmentRcd, Transition::BeginRun>();
esGetTokenChannelAssignment_ = esConsumes<ChannelAssignment, ChannelAssignmentRcd, Transition::BeginRun>();
}

void ProducerTM::beginRun(const Run& iRun, const EventSetup& iSetup) {
void ProducerTM::produce(Event& iEvent, const EventSetup& iSetup) {
// helper class to store configurations
setup_ = &iSetup.getData(esGetTokenSetup_);
const Setup* setup = &iSetup.getData(esGetTokenSetup_);
// helper class to extract structured data from tt::Frames
dataFormats_ = &iSetup.getData(esGetTokenDataFormats_);
const DataFormats* dataFormats = &iSetup.getData(esGetTokenDataFormats_);
// helper class to assign tracks to channel
channelAssignment_ = &iSetup.getData(esGetTokenChannelAssignment_);
}

void ProducerTM::produce(Event& iEvent, const EventSetup& iSetup) {
const ChannelAssignment* channelAssignment = &iSetup.getData(esGetTokenChannelAssignment_);
// empty TM products
StreamsStub streamsStub(setup_->numRegions() * channelAssignment_->tmNumLayers());
StreamsTrack streamsTrack(setup_->numRegions());
StreamsStub streamsStub(setup->numRegions() * channelAssignment->tmNumLayers());
StreamsTrack streamsTrack(setup->numRegions());
// read in TBout Product and produce TM product
const StreamsStub& stubs = iEvent.get(edGetTokenStubs_);
const StreamsTrack& tracks = iEvent.get(edGetTokenTracks_);
for (int region = 0; region < setup_->numRegions(); region++) {
for (int region = 0; region < setup->numRegions(); region++) {
// object to reformat tracks from tracklet fromat to TMTT format in a processing region
TrackMultiplexer tm(setup_, dataFormats_, channelAssignment_, &settings_, region);
TrackMultiplexer tm(setup, dataFormats, channelAssignment, &settings_, region);
// read in and organize input tracks and stubs
tm.consume(tracks, stubs);
// fill output products
Expand Down
4 changes: 1 addition & 3 deletions L1Trigger/TrackFindingTracklet/src/ES_DataFormats.cc
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
#include "FWCore/Utilities/interface/typelookup.h"
#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h"
#include "L1Trigger/TrackFindingTracklet/interface/DataFormats.h"

TYPELOOKUP_DATA_REG(trklet::DataFormats);
EVENTSETUP_RECORD_REG(trklet::DataFormatsRcd);
TYPELOOKUP_DATA_REG(trklet::DataFormats);
Loading

0 comments on commit 39416ae

Please sign in to comment.