75 ProducerKFin::ProducerKFin(
const ParameterSet& iConfig) : iConfig_(iConfig) {
76 const string& labelTTTracks = iConfig.
getParameter<
string>(
"LabelZHTout");
77 const string& labelStubs = iConfig.
getParameter<
string>(
"LabelZHT");
78 const string& branchAcceptedStubs = iConfig.
getParameter<
string>(
"BranchAcceptedStubs");
79 const string& branchAcceptedTracks = iConfig.
getParameter<
string>(
"BranchAcceptedTracks");
80 const string& branchLostStubs = iConfig.
getParameter<
string>(
"BranchLostStubs");
81 const string& branchLostTracks = iConfig.
getParameter<
string>(
"BranchLostTracks");
84 consumes<vector<TTTrack<Ref_Phase2TrackerDigi_>>>(
InputTag(labelTTTracks, branchAcceptedTracks));
130 const vector<TTTrack<Ref_Phase2TrackerDigi_>>& ttTracks = *handleTTTracks.
product();
138 return sum + (
frame.first.isNonnull() ? 1 : 0);
141 vector<StubZHT> stubsZHT;
142 stubsZHT.reserve(nStubsZHR);
146 if (
frame.first.isNonnull())
159 const int binEta = ttTrack.etaSector();
164 for (
const TTStubRef& ttStubRef : ttTrack.getStubRefs()) {
171 layerCounts[layerIdKF]++;
173 auto identical = [ttStubRef, ttTrack](
const StubZHT& stub) {
174 return (
int)ttTrack.trackSeedType() == stub.trackId() && ttStubRef == stub.ttStubRef();
176 stubZHT = &*find_if(stubsZHT.begin(), stubsZHT.end(), identical);
183 const int size = *max_element(layerCounts.begin(), layerCounts.end());
185 for (
int layerCount : layerCounts) {
187 const int nGaps =
size - layerCount;
188 stubs.insert(stubs.end(), nGaps,
FrameStub());
193 const int nGaps =
size - 1;
199 deque<FrameTrack>&
tracks = dequesTracks[channel];
202 limitTracks =
tracks.end();
209 limitStubs = stubs.end();
const DataFormats * dataFormats_
T getParameter(std::string const &) const
double dZ(const TTStubRef &ttStubRef, double cot) const
ESGetToken< Setup, SetupRcd > esGetTokenSetup_
void beginRun(const Run &, const EventSetup &) override
std::vector< StreamTrack > StreamsTrack
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
int numSectorsPhi() const
Bit vector used by Track Trigger emulators. Mainly used to convert integers into arbitrary (within ma...
std::pair< TTStubRef, Frame > FrameStub
ESGetToken< LayerEncoding, LayerEncodingRcd > esGetTokenLayerEncoding_
transforms TTTracks into KF input
Class to process and provide run-time constants used by Track Trigger emulators.
std::vector< StreamStub > StreamsStub
std::vector< FrameStub > StreamStub
ESGetToken< DataFormats, DataFormatsRcd > esGetTokenDataFormats_
T const * product() const
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
TTBV maybePattern(int binEta, int binZT, int binCot) const
std::vector< FrameTrack > StreamTrack
double dPhi(const TTStubRef &ttStubRef, double inv2R) const
EDPutTokenT< StreamsStub > edPutTokenLostStubs_
std::pair< TTTrackRef, Frame > FrameTrack
int layerId(const TTStubRef &ttStubRef) const
EDPutTokenT< StreamsTrack > edPutTokenLostTracks_
bool configurationSupported() const
#define DEFINE_FWK_MODULE(type)
ProcessHistory const & processHistory() const
void checkHistory(const edm::ProcessHistory &processHistory) const
void produce(Event &, const EventSetup &) override
EDGetTokenT< vector< TTTrack< Ref_Phase2TrackerDigi_ > > > edGetTokenTTTracks_
EDPutTokenT< StreamsTrack > edPutTokenAcceptedTracks_
Class to store the L1 Track Trigger tracks.
int zhtMaxStubsPerLayer() const
Class to encode layer ids for Kalman Filter Layers consitent with rough r-z track parameters are coun...
EDPutTokenT< StreamsStub > edPutTokenAcceptedStubs_
const int layerIdKF(int binEta, int binZT, int binCot, int layerId) const
double sectorCot(int eta) const
EDGetTokenT< StreamsStub > edGetTokenStubs_
const LayerEncoding * layerEncoding_