Skip to content

Commit 1fe5509

Browse files
committed
Removing track selection producer changes and removing displaced track quality
1 parent d245a34 commit 1fe5509

File tree

12 files changed

+28
-302
lines changed

12 files changed

+28
-302
lines changed

L1Trigger/L1TTrackMatch/plugins/L1TrackSelectionProducer.cc

Lines changed: 11 additions & 162 deletions
Original file line numberDiff line numberDiff line change
@@ -180,39 +180,6 @@ class L1TrackSelectionProducer : public edm::global::EDProducer<> {
180180
private:
181181
double nStubsMin_;
182182
};
183-
struct TTTrackNStubsMinEtaOverlapSelector {
184-
TTTrackNStubsMinEtaOverlapSelector(double nStubsMinEtaOverlap) : nStubsMinEtaOverlap_(nStubsMinEtaOverlap) {}
185-
TTTrackNStubsMinEtaOverlapSelector(const edm::ParameterSet& cfg)
186-
: nStubsMinEtaOverlap_(cfg.template getParameter<double>("nStubsMinEtaOverlap")) {}
187-
bool operator()(const L1Track& t) const {
188-
if ((std::abs(t.momentum().eta()) < 1.7) && (std::abs(t.momentum().eta()) > 1.1)) {
189-
return (t.getStubRefs().size() >= nStubsMinEtaOverlap_);
190-
} else {
191-
return true;
192-
}
193-
}
194-
195-
private:
196-
double nStubsMinEtaOverlap_;
197-
};
198-
struct TTTrackWordNStubsMinEtaOverlapSelector {
199-
TTTrackWordNStubsMinEtaOverlapSelector(double nStubsMinEtaOverlap) : nStubsMinEtaOverlap_(nStubsMinEtaOverlap) {}
200-
TTTrackWordNStubsMinEtaOverlapSelector(const edm::ParameterSet& cfg)
201-
: nStubsMinEtaOverlap_(cfg.template getParameter<double>("nStubsMinEtaOverlap")) {}
202-
bool operator()(const L1Track& t) const {
203-
TTTrack_TrackWord::tanl_t etaEmulationBits = t.getTanlWord();
204-
ap_fixed<TrackBitWidths::kEtaSize, TrackBitWidths::kEtaMagSize> etaEmulation;
205-
etaEmulation.V = etaEmulationBits.range();
206-
if ((std::abs(etaEmulation.to_double()) < 1.7) && (std::abs(etaEmulation.to_double()) > 1.1)) {
207-
return (t.getNStubs() >= nStubsMinEtaOverlap_);
208-
} else {
209-
return true;
210-
}
211-
}
212-
213-
private:
214-
double nStubsMinEtaOverlap_;
215-
};
216183
struct TTTrackNPSStubsMinSelector {
217184
TTTrackNPSStubsMinSelector(double nStubsMin, const TrackerTopology& tTopo)
218185
: nPSStubsMin_(nStubsMin), tTopo_(tTopo) {}
@@ -255,58 +222,6 @@ class L1TrackSelectionProducer : public edm::global::EDProducer<> {
255222
private:
256223
double promptMVAMin_;
257224
};
258-
struct TTTrackPromptMVAMinD0Min1Selector {
259-
TTTrackPromptMVAMinD0Min1Selector(double promptMVAMinD0Min1) : promptMVAMinD0Min1_(promptMVAMinD0Min1) {}
260-
TTTrackPromptMVAMinD0Min1Selector(const edm::ParameterSet& cfg)
261-
: promptMVAMinD0Min1_(cfg.template getParameter<double>("promptMVAMinD0Min1")) {}
262-
bool operator()(const L1Track& t) const {
263-
if (std::abs(t.d0()) > 1.0) {
264-
return (t.trkMVA1() > promptMVAMinD0Min1_);
265-
} else {
266-
return true;
267-
}
268-
}
269-
270-
private:
271-
double promptMVAMinD0Min1_;
272-
};
273-
struct TTTrackWordPromptMVAMinD0Min1Selector {
274-
TTTrackWordPromptMVAMinD0Min1Selector(double promptMVAMinD0Min1) : promptMVAMinD0Min1_(promptMVAMinD0Min1) {}
275-
TTTrackWordPromptMVAMinD0Min1Selector(const edm::ParameterSet& cfg)
276-
: promptMVAMinD0Min1_(cfg.template getParameter<double>("promptMVAMinD0Min1")) {}
277-
bool operator()(const L1Track& t) const {
278-
double floatD0 = t.undigitizeSignedValue(
279-
t.getD0Bits(), TTTrack_TrackWord::TrackBitWidths::kD0Size, TTTrack_TrackWord::stepD0, 0.0);
280-
if (std::abs(floatD0) > 1.0) {
281-
return t.trkMVA1() >= promptMVAMinD0Min1_;
282-
} else {
283-
return true;
284-
}
285-
} //change when mva bins in word are set
286-
287-
private:
288-
double promptMVAMinD0Min1_;
289-
};
290-
struct TTTrackDisplacedMVAMinSelector {
291-
TTTrackDisplacedMVAMinSelector(double displacedMVAMin) : displacedMVAMin_(displacedMVAMin) {}
292-
TTTrackDisplacedMVAMinSelector(const edm::ParameterSet& cfg)
293-
: displacedMVAMin_(cfg.template getParameter<double>("displacedMVAMin")) {}
294-
bool operator()(const L1Track& t) const { return t.trkMVA2() >= displacedMVAMin_; }
295-
296-
private:
297-
double displacedMVAMin_;
298-
};
299-
struct TTTrackWordDisplacedMVAMinSelector {
300-
TTTrackWordDisplacedMVAMinSelector(double displacedMVAMin) : displacedMVAMin_(displacedMVAMin) {}
301-
TTTrackWordDisplacedMVAMinSelector(const edm::ParameterSet& cfg)
302-
: displacedMVAMin_(cfg.template getParameter<double>("displacedMVAMin")) {}
303-
bool operator()(const L1Track& t) const {
304-
return t.trkMVA2() >= displacedMVAMin_;
305-
} //change when mva bins in word are set
306-
307-
private:
308-
double displacedMVAMin_;
309-
};
310225
struct TTTrackBendChi2MaxSelector {
311226
TTTrackBendChi2MaxSelector(double bendChi2Max) : bendChi2Max_(bendChi2Max) {}
312227
TTTrackBendChi2MaxSelector(const edm::ParameterSet& cfg)
@@ -452,53 +367,12 @@ class L1TrackSelectionProducer : public edm::global::EDProducer<> {
452367
double reducedBendChi2MaxNstub5_;
453368
};
454369

455-
struct TTTrackAbsD0MinEtaSelector {
456-
TTTrackAbsD0MinEtaSelector(double absD0MinEtaMin0p95, double absD0MinEtaMax0p95)
457-
: absD0MinEtaMin0p95_(absD0MinEtaMin0p95), absD0MinEtaMax0p95_(absD0MinEtaMax0p95) {}
458-
TTTrackAbsD0MinEtaSelector(const edm::ParameterSet& cfg)
459-
: absD0MinEtaMin0p95_(cfg.template getParameter<double>("absD0MinEtaMin0p95")),
460-
absD0MinEtaMax0p95_(cfg.template getParameter<double>("absD0MinEtaMax0p95")) {}
461-
bool operator()(const L1Track& t) const {
462-
return (((std::abs(t.d0()) > absD0MinEtaMin0p95_) && (std::abs(t.momentum().eta()) > 0.95)) ||
463-
((std::abs(t.d0()) > absD0MinEtaMax0p95_) && (std::abs(t.momentum().eta()) <= 0.95)));
464-
}
465-
466-
private:
467-
double absD0MinEtaMin0p95_;
468-
double absD0MinEtaMax0p95_;
469-
};
470-
struct TTTrackWordAbsD0MinEtaSelector {
471-
TTTrackWordAbsD0MinEtaSelector(double absD0MinEtaMin0p95, double absD0MinEtaMax0p95)
472-
: absD0MinEtaMin0p95_(absD0MinEtaMin0p95), absD0MinEtaMax0p95_(absD0MinEtaMax0p95) {}
473-
TTTrackWordAbsD0MinEtaSelector(const edm::ParameterSet& cfg)
474-
: absD0MinEtaMin0p95_(cfg.template getParameter<double>("absD0MinEtaMin0p95")),
475-
absD0MinEtaMax0p95_(cfg.template getParameter<double>("absD0MinEtaMax0p95")) {}
476-
bool operator()(const L1Track& t) const {
477-
double floatD0 = t.undigitizeSignedValue(
478-
t.getD0Bits(), TTTrack_TrackWord::TrackBitWidths::kD0Size, TTTrack_TrackWord::stepD0, 0.0);
479-
TTTrack_TrackWord::tanl_t etaEmulationBits = t.getTanlWord();
480-
ap_fixed<TrackBitWidths::kEtaSize, TrackBitWidths::kEtaMagSize> etaEmulation;
481-
etaEmulation.V = etaEmulationBits.range();
482-
return (((std::abs(floatD0) > absD0MinEtaMin0p95_) && (std::abs(etaEmulation.to_double()) > 0.95)) ||
483-
((std::abs(floatD0) > absD0MinEtaMax0p95_) && (std::abs(etaEmulation.to_double()) <= 0.95)));
484-
}
485-
486-
private:
487-
double absD0MinEtaMin0p95_;
488-
double absD0MinEtaMax0p95_;
489-
};
490-
491-
typedef AndSelector<TTTrackPtMinSelector,
492-
TTTrackAbsEtaMaxSelector,
493-
TTTrackAbsZ0MaxSelector,
494-
TTTrackNStubsMinSelector,
495-
TTTrackNStubsMinEtaOverlapSelector>
370+
typedef AndSelector<TTTrackPtMinSelector, TTTrackAbsEtaMaxSelector, TTTrackAbsZ0MaxSelector, TTTrackNStubsMinSelector>
496371
TTTrackPtMinEtaMaxZ0MaxNStubsMinSelector;
497372
typedef AndSelector<TTTrackWordPtMinSelector,
498373
TTTrackWordAbsEtaMaxSelector,
499374
TTTrackWordAbsZ0MaxSelector,
500-
TTTrackWordNStubsMinSelector,
501-
TTTrackWordNStubsMinEtaOverlapSelector>
375+
TTTrackWordNStubsMinSelector>
502376
TTTrackWordPtMinEtaMaxZ0MaxNStubsMinSelector;
503377
typedef AndSelector<TTTrackBendChi2MaxSelector, TTTrackChi2RZMaxSelector, TTTrackChi2RPhiMaxSelector>
504378
TTTrackBendChi2Chi2RZChi2RPhiMaxSelector;
@@ -510,23 +384,16 @@ class L1TrackSelectionProducer : public edm::global::EDProducer<> {
510384
TTTrackWordChi2RPhiMaxNstubSelector,
511385
TTTrackWordBendChi2MaxNstubSelector>
512386
TTTrackWordChi2MaxNstubSelector;
513-
typedef AndSelector<TTTrackPromptMVAMinSelector, TTTrackPromptMVAMinD0Min1Selector, TTTrackDisplacedMVAMinSelector>
514-
TTTrackMVAMinSelector;
515-
typedef AndSelector<TTTrackWordPromptMVAMinSelector,
516-
TTTrackWordPromptMVAMinD0Min1Selector,
517-
TTTrackWordDisplacedMVAMinSelector>
518-
TTTrackWordMVAMinSelector;
519387

520388
// ----------member data ---------------------------
521389
const edm::EDGetTokenT<TTTrackCollection> l1TracksToken_;
522390
edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> tTopoToken_;
523391
const std::string outputCollectionName_;
524392
const edm::ParameterSet cutSet_;
525-
const double ptMin_, absEtaMax_, absZ0Max_, promptMVAMin_, promptMVAMinD0Min1_, displacedMVAMin_, bendChi2Max_,
526-
reducedChi2RZMax_, reducedChi2RPhiMax_;
393+
const double ptMin_, absEtaMax_, absZ0Max_, promptMVAMin_, bendChi2Max_, reducedChi2RZMax_, reducedChi2RPhiMax_;
527394
const double reducedChi2RZMaxNstub4_, reducedChi2RZMaxNstub5_, reducedChi2RPhiMaxNstub4_, reducedChi2RPhiMaxNstub5_,
528-
reducedBendChi2MaxNstub4_, reducedBendChi2MaxNstub5_, absD0MinEtaMin0p95_, absD0MinEtaMax0p95_;
529-
const int nStubsMin_, nStubsMinEtaOverlap_, nPSStubsMin_;
395+
reducedBendChi2MaxNstub4_, reducedBendChi2MaxNstub5_;
396+
const int nStubsMin_, nPSStubsMin_;
530397
bool processSimulatedTracks_, processEmulatedTracks_;
531398
int debug_;
532399
};
@@ -544,8 +411,6 @@ L1TrackSelectionProducer::L1TrackSelectionProducer(const edm::ParameterSet& iCon
544411
absEtaMax_(cutSet_.getParameter<double>("absEtaMax")),
545412
absZ0Max_(cutSet_.getParameter<double>("absZ0Max")),
546413
promptMVAMin_(cutSet_.getParameter<double>("promptMVAMin")),
547-
promptMVAMinD0Min1_(cutSet_.getParameter<double>("promptMVAMinD0Min1")),
548-
displacedMVAMin_(cutSet_.getParameter<double>("displacedMVAMin")),
549414
bendChi2Max_(cutSet_.getParameter<double>("reducedBendChi2Max")),
550415
reducedChi2RZMax_(cutSet_.getParameter<double>("reducedChi2RZMax")),
551416
reducedChi2RPhiMax_(cutSet_.getParameter<double>("reducedChi2RPhiMax")),
@@ -555,10 +420,7 @@ L1TrackSelectionProducer::L1TrackSelectionProducer(const edm::ParameterSet& iCon
555420
reducedChi2RPhiMaxNstub5_(cutSet_.getParameter<double>("reducedChi2RPhiMaxNstub5")),
556421
reducedBendChi2MaxNstub4_(cutSet_.getParameter<double>("reducedBendChi2MaxNstub4")),
557422
reducedBendChi2MaxNstub5_(cutSet_.getParameter<double>("reducedBendChi2MaxNstub5")),
558-
absD0MinEtaMin0p95_(cutSet_.getParameter<double>("absD0MinEtaMin0p95")),
559-
absD0MinEtaMax0p95_(cutSet_.getParameter<double>("absD0MinEtaMax0p95")),
560423
nStubsMin_(cutSet_.getParameter<int>("nStubsMin")),
561-
nStubsMinEtaOverlap_(cutSet_.getParameter<int>("nStubsMinEtaOverlap")),
562424
nPSStubsMin_(cutSet_.getParameter<int>("nPSStubsMin")),
563425
processSimulatedTracks_(iConfig.getParameter<bool>("processSimulatedTracks")),
564426
processEmulatedTracks_(iConfig.getParameter<bool>("processEmulatedTracks")),
@@ -676,35 +538,31 @@ void L1TrackSelectionProducer::produce(edm::StreamID, edm::Event& iEvent, const
676538
vTTTrackEmulationOutput->reserve(nOutputApproximate);
677539
}
678540

679-
TTTrackPtMinEtaMaxZ0MaxNStubsMinSelector kinSel(ptMin_, absEtaMax_, absZ0Max_, nStubsMin_, nStubsMinEtaOverlap_);
680-
TTTrackWordPtMinEtaMaxZ0MaxNStubsMinSelector kinSelEmu(
681-
ptMin_, absEtaMax_, absZ0Max_, nStubsMin_, nStubsMinEtaOverlap_);
541+
TTTrackPtMinEtaMaxZ0MaxNStubsMinSelector kinSel(ptMin_, absEtaMax_, absZ0Max_, nStubsMin_);
542+
TTTrackWordPtMinEtaMaxZ0MaxNStubsMinSelector kinSelEmu(ptMin_, absEtaMax_, absZ0Max_, nStubsMin_);
682543
TTTrackBendChi2Chi2RZChi2RPhiMaxSelector chi2Sel(bendChi2Max_, reducedChi2RZMax_, reducedChi2RPhiMax_);
683544
TTTrackWordBendChi2Chi2RZChi2RPhiMaxSelector chi2SelEmu(bendChi2Max_, reducedChi2RZMax_, reducedChi2RPhiMax_);
684545
TTTrackNPSStubsMinSelector nPSStubsSel(nPSStubsMin_, tTopo);
685-
TTTrackMVAMinSelector mvaSel(promptMVAMin_, promptMVAMinD0Min1_, displacedMVAMin_);
686-
TTTrackWordMVAMinSelector mvaSelEmu(promptMVAMin_, promptMVAMinD0Min1_, displacedMVAMin_);
546+
TTTrackPromptMVAMinSelector mvaSel(promptMVAMin_);
547+
TTTrackWordPromptMVAMinSelector mvaSelEmu(promptMVAMin_);
687548
TTTrackChi2MaxNstubSelector chi2NstubSel({reducedChi2RZMaxNstub4_, reducedChi2RZMaxNstub5_},
688549
{reducedChi2RPhiMaxNstub4_, reducedChi2RPhiMaxNstub5_},
689550
{reducedBendChi2MaxNstub4_, reducedBendChi2MaxNstub5_});
690551
TTTrackWordChi2MaxNstubSelector chi2NstubSelEmu({reducedChi2RZMaxNstub4_, reducedChi2RZMaxNstub5_},
691552
{reducedChi2RPhiMaxNstub4_, reducedChi2RPhiMaxNstub5_},
692553
{reducedBendChi2MaxNstub4_, reducedBendChi2MaxNstub5_});
693-
TTTrackAbsD0MinEtaSelector d0Sel(absD0MinEtaMin0p95_, absD0MinEtaMax0p95_);
694-
TTTrackWordAbsD0MinEtaSelector d0SelEmu(absD0MinEtaMin0p95_, absD0MinEtaMax0p95_);
695554

696555
for (size_t i = 0; i < nOutputApproximate; i++) {
697556
const auto& track = l1TracksHandle->at(i);
698557

699558
// Select tracks based on the floating point TTTrack
700559
if (processSimulatedTracks_ && kinSel(track) && nPSStubsSel(track) && chi2Sel(track) && mvaSel(track) &&
701-
d0Sel(track) && chi2NstubSel(track)) {
560+
chi2NstubSel(track)) {
702561
vTTTrackOutput->push_back(TTTrackRef(l1TracksHandle, i));
703562
}
704563

705564
// Select tracks based on the bitwise accurate TTTrack_TrackWord
706-
if (processEmulatedTracks_ && kinSelEmu(track) && chi2SelEmu(track) && mvaSelEmu(track) && d0SelEmu(track) &&
707-
chi2NstubSelEmu(track)) {
565+
if (processEmulatedTracks_ && kinSelEmu(track) && chi2SelEmu(track) && mvaSelEmu(track) && chi2NstubSelEmu(track)) {
708566
vTTTrackEmulationOutput->push_back(TTTrackRef(l1TracksHandle, i));
709567
}
710568
}
@@ -734,15 +592,10 @@ void L1TrackSelectionProducer::fillDescriptions(edm::ConfigurationDescriptions&
734592
descCutSet.add<double>("absEtaMax", 2.4)->setComment("absolute value of eta must be less than this value");
735593
descCutSet.add<double>("absZ0Max", 15.0)->setComment("z0 must be less than this value, [cm]");
736594
descCutSet.add<int>("nStubsMin", 4)->setComment("number of stubs must be greater than or equal to this value");
737-
descCutSet.add<int>("nStubsMinEtaOverlap", 4)
738-
->setComment("number of stubs must be greater than or equal to this value for tracks with 1.1<|eta|<1.7");
739595
descCutSet.add<int>("nPSStubsMin", 0)
740596
->setComment("number of stubs in the PS Modules must be greater than or equal to this value");
741597

742598
descCutSet.add<double>("promptMVAMin", -1.0)->setComment("MVA must be greater than this value");
743-
descCutSet.add<double>("promptMVAMinD0Min1", -1.0)
744-
->setComment("MVA for tracks with |d0|>1cm must be greater than this value");
745-
descCutSet.add<double>("displacedMVAMin", -1.0)->setComment("Displaced MVA must be greater than this value");
746599
descCutSet.add<double>("reducedBendChi2Max", 2.25)->setComment("bend chi2 must be less than this value");
747600
descCutSet.add<double>("reducedChi2RZMax", 5.0)->setComment("chi2rz/dof must be less than this value");
748601
descCutSet.add<double>("reducedChi2RPhiMax", 20.0)->setComment("chi2rphi/dof must be less than this value");
@@ -758,10 +611,6 @@ void L1TrackSelectionProducer::fillDescriptions(edm::ConfigurationDescriptions&
758611
->setComment("bend chi2 must be less than this value in nstub==4");
759612
descCutSet.add<double>("reducedBendChi2MaxNstub5", 999.9)
760613
->setComment("bend chi2 must be less than this value in nstub>4");
761-
descCutSet.add<double>("absD0MinEtaMin0p95", -1.0)
762-
->setComment("absolute value of d0 must be greater than this value for tracks with |eta|>0.95");
763-
descCutSet.add<double>("absD0MinEtaMax0p95", -1.0)
764-
->setComment("absolute value of d0 must be greater than this value for tracks with |eta|<=0.95");
765614

766615
desc.add<edm::ParameterSetDescription>("cutSet", descCutSet);
767616
}

L1Trigger/L1TTrackMatch/plugins/L1TrackUnpacker.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,11 @@ namespace l1trackunpacker {
1616
const unsigned int ETA_INTPART_BITS{3};
1717
const unsigned int kExtraGlobalPhiBit{4};
1818

19-
typedef ap_ufixed<TTTrack_TrackWord::TrackBitWidths::kRinvSize - 1, PT_INTPART_BITS, AP_RND_CONV, AP_SAT> pt_intern;
19+
typedef ap_ufixed<TTTrack_TrackWord::TrackBitWidths::kRinvSize - 1, PT_INTPART_BITS, AP_TRN, AP_SAT> pt_intern;
2020
typedef ap_fixed<TTTrack_TrackWord::TrackBitWidths::kTanlSize, ETA_INTPART_BITS, AP_TRN, AP_SAT> glbeta_intern;
2121
typedef ap_int<TTTrack_TrackWord::TrackBitWidths::kPhiSize + kExtraGlobalPhiBit> glbphi_intern;
2222
typedef ap_int<TTTrack_TrackWord::TrackBitWidths::kZ0Size> z0_intern; // 40cm / 0.1
2323
typedef ap_int<TTTrack_TrackWord::TrackBitWidths::kD0Size> d0_intern;
24-
typedef ap_int<TTTrack_TrackWord::TrackBitWidths::kRinvSize> rinv_intern;
2524

2625
inline const unsigned int DoubleToBit(double value, unsigned int maxBits, double step) {
2726
unsigned int digitized_value = std::floor(std::abs(value) / step);

0 commit comments

Comments
 (0)