47 virtual void endJob();
76 :
maxZ0_((
float)iConfig.getParameter<double>(
"maxZ0")),
77 deltaZ_((
float)iConfig.getParameter<double>(
"deltaZ")),
78 Chi2RphidofMax_((
float)iConfig.getParameter<double>(
"chi2rphidofMax")),
79 Chi2RzdofMax_((
float)iConfig.getParameter<double>(
"chi2rzdofMax")),
80 bendChi2Max_((
float)iConfig.getParameter<double>(
"bendChi2Max")),
81 minPt_((
float)iConfig.getParameter<double>(
"minPt")),
82 nStubsmin_(iConfig.getParameter<
int>(
"nStubsmin")),
83 nPSStubsMin_(iConfig.getParameter<
int>(
"nPSStubsMin")),
84 maxPt_((
float)iConfig.getParameter<double>(
"maxPt")),
85 maxEta_((
float)iConfig.getParameter<double>(
"maxEta")),
86 highPtTracks_(iConfig.getParameter<
int>(
"highPtTracks")),
87 displaced_(iConfig.getParameter<
bool>(
"displaced")),
88 z0Thresholds_(iConfig.getParameter<
std::
vector<double>>(
"z0Thresholds")),
89 etaRegions_(iConfig.getParameter<
std::
vector<double>>(
"etaRegions")),
90 debug_(iConfig.getParameter<
bool>(
"debug")),
118 L1TTTrackCollectionType::const_iterator trackIter;
120 if (!L1VertexHandle.
isValid()) {
121 LogError(
"L1TrackerEtMissProducer") <<
"\nWarning: VertexCollection not found in the event. Exit\n";
125 if (!L1TTTrackHandle.
isValid()) {
126 LogError(
"L1TrackerEtMissProducer") <<
"\nWarning: L1TTTrackCollection not found in the event. Exit\n";
136 float zVTX = L1VertexHandle->begin()->z0();
139 int numqualitytracks = 0;
140 int numassoctracks = 0;
142 for (trackIter = L1TTTrackHandle->begin(); trackIter != L1TTTrackHandle->end(); ++trackIter) {
144 float pt = trackIter->momentum().perp();
145 float phi = trackIter->momentum().phi();
146 float eta = trackIter->momentum().eta();
147 float chi2rphidof = trackIter->chi2XYRed();
148 float chi2rzdof = trackIter->chi2ZRed();
149 float bendChi2 = trackIter->stubPtConsistency();
150 float z0 = trackIter->z0();
153 theStubs = trackIter->getStubRefs();
154 int nstubs = (
int)theStubs.size();
178 for (
unsigned int istub = 0; istub < (
unsigned int)theStubs.size(); istub++) {
179 DetId detId(theStubs.at(istub)->getDetId());
196 for (
unsigned int reg = 0; reg <
etaRegions_.size() - 1; reg++) {
220 float et =
sqrt(sumPx * sumPx + sumPy * sumPy);
221 double etphi = atan2(sumPy, sumPx);
228 <<
"Px: " << sumPx <<
"| Py: " << sumPy <<
"\n" 231 <<
"MET: " <<
et <<
"| Phi: " << etphi <<
"\n" 233 <<
"# Intial Tracks: " << numtracks <<
"\n" 234 <<
"# Tracks after Quality Cuts: " << numqualitytracks <<
"\n" 235 <<
"# Tracks Associated to Vertex: " << numassoctracks <<
"\n" 236 <<
"========================================================" std::vector< TkEtMiss > TkEtMissCollection
Log< level::Info, true > LogVerbatim
T getParameter(std::string const &) const
unsigned int tobLayer(const DetId &id) const
std::vector< L1TTTrackType > L1TTTrackCollectionType
#define DEFINE_FWK_MODULE(type)
Sin< T >::type sin(const T &t)
std::string L1MetCollectionName
VertexCollection L1VertexCollectionType
const float Chi2RzdofMax_
Log< level::Error, false > LogError
std::vector< Vertex > VertexCollection
std::vector< reco::MET > METCollection
collection of MET objects
const float Chi2RphidofMax_
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
TTTrack< Ref_Phase2TrackerDigi_ > L1TTTrackType
std::string L1ExtendedMetCollectionName
vector< double > etaRegions_
vector< double > z0Thresholds_
Cos< T >::type cos(const T &t)
Abs< T >::type abs(const T &t)
bool getData(T &iHolder) const
static constexpr auto TOB
Class to store the L1 Track Trigger stubs.
Class to store the L1 Track Trigger tracks.
const edm::EDGetTokenT< VertexCollection > pvToken_
void produce(edm::Event &, const edm::EventSetup &) override
const edm::EDGetTokenT< L1TTTrackCollectionType > trackToken_
unsigned int tidRing(const DetId &id) const
L1TrackerEtMissProducer(const edm::ParameterSet &)
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
static constexpr auto TID
~L1TrackerEtMissProducer() override