97 : trkZMax_(iConfig.getParameter<double>(
"trk_zMax")),
98 trkPtMax_(iConfig.getParameter<double>(
"trk_ptMax")),
99 trkPtMin_(iConfig.getParameter<double>(
"trk_ptMin")),
100 trkEtaMax_(iConfig.getParameter<double>(
"trk_etaMax")),
101 nStubs4PromptChi2_(iConfig.getParameter<double>(
"nStubs4PromptChi2")),
102 nStubs5PromptChi2_(iConfig.getParameter<double>(
"nStubs5PromptChi2")),
103 nStubs4PromptBend_(iConfig.getParameter<double>(
"nStubs4PromptBend")),
104 nStubs5PromptBend_(iConfig.getParameter<double>(
"nStubs5PromptBend")),
105 trkNPSStubMin_(iConfig.getParameter<
int>(
"trk_nPSStubMin")),
106 lowpTJetMinTrackMultiplicity_(iConfig.getParameter<
int>(
"lowpTJetMinTrackMultiplicity")),
107 lowpTJetThreshold_(iConfig.getParameter<double>(
"lowpTJetThreshold")),
108 highpTJetMinTrackMultiplicity_(iConfig.getParameter<
int>(
"highpTJetMinTrackMultiplicity")),
109 highpTJetThreshold_(iConfig.getParameter<double>(
"highpTJetThreshold")),
110 zBins_(iConfig.getParameter<
int>(
"zBins")),
111 etaBins_(iConfig.getParameter<
int>(
"etaBins")),
112 phiBins_(iConfig.getParameter<
int>(
"phiBins")),
113 minTrkJetpT_(iConfig.getParameter<double>(
"minTrkJetpT")),
114 displaced_(iConfig.getParameter<
bool>(
"displaced")),
115 d0CutNStubs4_(iConfig.getParameter<double>(
"d0_cutNStubs4")),
116 d0CutNStubs5_(iConfig.getParameter<double>(
"d0_cutNStubs5")),
117 nStubs4DisplacedChi2_(iConfig.getParameter<double>(
"nStubs4DisplacedChi2")),
118 nStubs5DisplacedChi2_(iConfig.getParameter<double>(
"nStubs5DisplacedChi2")),
119 nStubs4DisplacedBend_(iConfig.getParameter<double>(
"nStubs4DisplacedBend")),
120 nStubs5DisplacedBend_(iConfig.getParameter<double>(
"nStubs5DisplacedBend")),
121 nDisplacedTracks_(iConfig.getParameter<
int>(
"nDisplacedTracks")),
122 dzPVTrk_(iConfig.getParameter<double>(
"MaxDzTrackPV")),
131 produces<TkJetCollection>(
"L1TrackJetsExtended");
133 produces<TkJetCollection>(
"L1TrackJets");
147 float PVz = (PVtx->at(0)).
z0();
153 for (
unsigned int this_l1track = 0; this_l1track < TTTrackHandle->
size(); this_l1track++) {
157 float trk_chi2dof = trkPtr->
chi2Red();
158 float trk_d0 = trkPtr->
d0();
162 for (
int istub = 0; istub < trk_nstubs; istub++) {
231 std::vector<float> zmins, zmaxs;
232 for (
int zbin = 0; zbin <
zBins_; zbin++) {
238 std::vector<std::vector<EtaPhiBin>> L1clusters;
240 std::vector<EtaPhiBin> L2clusters;
245 epbins_default[
i][
j].
pTtot = 0;
246 epbins_default[
i][
j].
used =
false;
253 for (
unsigned int zbin = 0; zbin < zmins.size(); ++zbin) {
255 float zmin = zmins[zbin];
256 float zmax = zmaxs[zbin];
271 if (zbin == 0 &&
zmin == trkZ)
283 if ((trketa <
eta_min) || (trketa >
eta_max) || (trkphi < phi_min) || (trkphi > phi_max))
298 for (
int phibin = 0; phibin <
phiBins_; ++phibin) {
299 L1clusters.push_back(L1_clustering<EtaPhiBin, float, float, float>(epbins[phibin],
etaBins_,
etaStep_));
307 for (
unsigned int k = 0;
k < L2clusters.size(); ++
k) {
313 sum_pt += L2clusters[
k].pTtot;
323 mzb.
nclust = L2clusters.size();
328 vector<Ptr<L1TTTrackType>> L1TrackAssocJet;
329 for (
unsigned int j = 0;
j < mzb.
clusters.size(); ++
j) {
337 int totalDisptrk = mzb.
clusters[
j].nxtracks;
341 L1TrackAssocJet.clear();
342 for (
unsigned int itrk = 0; itrk < mzb.
clusters[
j].trackidx.size(); itrk++)
347 L1L1TrackJetProducer->push_back(trkJet);
351 L1L1TrackJetProducer->begin(), L1L1TrackJetProducer->end(), [](
auto &
a,
auto &
b) {
return a.pt() >
b.pt(); });
362 desc.add<
double>(
"MaxDzTrackPV", 1.0);
363 desc.add<
double>(
"trk_zMax", 15.0);
364 desc.add<
double>(
"trk_ptMax", 200.0);
365 desc.add<
double>(
"trk_ptMin", 3.0);
366 desc.add<
double>(
"trk_etaMax", 2.4);
367 desc.add<
double>(
"nStubs4PromptChi2", 5.0);
368 desc.add<
double>(
"nStubs4PromptBend", 1.7);
369 desc.add<
double>(
"nStubs5PromptChi2", 2.75);
370 desc.add<
double>(
"nStubs5PromptBend", 3.5);
371 desc.add<
int>(
"trk_nPSStubMin", -1);
372 desc.add<
double>(
"minTrkJetpT", -1.0);
373 desc.add<
int>(
"etaBins", 24);
374 desc.add<
int>(
"phiBins", 27);
375 desc.add<
int>(
"zBins", 1);
376 desc.add<
double>(
"d0_cutNStubs4", -1);
377 desc.add<
double>(
"d0_cutNStubs5", -1);
378 desc.add<
int>(
"lowpTJetMinTrackMultiplicity", 2);
379 desc.add<
double>(
"lowpTJetThreshold", 50.0);
380 desc.add<
int>(
"highpTJetMinTrackMultiplicity", 3);
381 desc.add<
double>(
"highpTJetThreshold", 100.0);
382 desc.add<
bool>(
"displaced",
false);
383 desc.add<
double>(
"nStubs4DisplacedChi2", 5.0);
384 desc.add<
double>(
"nStubs4DisplacedBend", 1.7);
385 desc.add<
double>(
"nStubs5DisplacedChi2", 2.75);
386 desc.add<
double>(
"nStubs5DisplacedBend", 3.5);
387 desc.add<
int>(
"nDisplacedTracks", 2);
388 descriptions.
add(
"l1tTrackJets",
desc);
const int highpTJetMinTrackMultiplicity_
unsigned int tobLayer(const DetId &id) const
const float d0CutNStubs4_
const float lowpTJetThreshold_
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
bool TrackQualitySelection(int trk_nstub, double trk_chi2, double trk_bendchi2, double nStubs4PromptBend_, double nStubs5PromptBend_, double nStubs4PromptChi2_, double nStubs5PromptChi2_, double nStubs4DisplacedBend_, double nStubs5DisplacedBend_, double nStubs4DisplacedChi2_, double nStubs5DisplacedChi2_, bool displaced_)
Sin< T >::type sin(const T &t)
std::vector< unsigned int > trackidx
const float nStubs4DisplacedBend_
L1TrackJetProducer(const ParameterSet &)
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
const float nStubs4DisplacedChi2_
GlobalVector momentum() const
Track momentum.
const float nStubs5PromptChi2_
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
const float d0CutNStubs5_
const float nStubs4PromptChi2_
vector< L1TTTrackType > L1TTTrackCollectionType
static void fillDescriptions(ConfigurationDescriptions &descriptions)
const float highpTJetThreshold_
const float nStubs5DisplacedBend_
vector< Ptr< L1TTTrackType > > L1TrkPtrs_
std::vector< EtaPhiBin > clusters
Cos< T >::type cos(const T &t)
const float nStubs4PromptBend_
Abs< T >::type abs(const T &t)
#define DEFINE_FWK_MODULE(type)
std::vector< VertexWord > VertexWordCollection
static constexpr auto TOB
const float nStubs5PromptBend_
const float nStubs5DisplacedChi2_
std::vector< edm::Ref< edmNew::DetSetVector< TTStub< T > >, TTStub< T > > > getStubRefs() const
Track components.
const EDGetTokenT< L1TTTrackRefCollectionType > trackToken_
const EDGetTokenT< l1t::VertexWordCollection > PVtxToken_
size_type size() const
Size of the RefVector.
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void produce(Event &, const EventSetup &) override
Class to store the L1 Track Trigger tracks.
double stubPtConsistency() const
StubPtConsistency.
void add(std::string const &label, ParameterSetDescription const &psetDescription)
double d0() const
Track d0.
TTTrack< Ref_Phase2TrackerDigi_ > L1TTTrackType
const int lowpTJetMinTrackMultiplicity_
const int nDisplacedTracks_
double chi2Red() const
Chi2 reduced.
double z0() const
Track z0.
unsigned int tidRing(const DetId &id) const
std::vector< TkJet > TkJetCollection
static constexpr auto TID
edm::RefVector< L1TTTrackCollectionType > L1TTTrackRefCollectionType
const double minTrkJetpT_