@@ -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 }
0 commit comments