|
|
◆ L1TTTrackCollectionType
◆ L1TTTrackType
◆ L1TkElectronTrackProducer()
L1TkElectronTrackProducer::L1TkElectronTrackProducer |
( |
const edm::ParameterSet & |
iConfig | ) |
|
|
explicit |
Definition at line 107 of file L1TkElectronTrackProducer.cc.
111 geomToken_(esConsumes<TrackerGeometry, TrackerDigiGeometryRecord>()) {
142 produces<TkElectronCollection>(
label);
References deltaZ_, dEtaCutoff_, dPhiCutoff_, dRCutoff_, dRMax_, dRMin_, etMin_, dqmMemoryStats::float, edm::ParameterSet::getParameter(), isoCut_, label, matchType_, maxChi2IsoTracks_, minNStubsIsoTracks_, pTMinTra_, relativeIsolation_, AlCaHLTBitMon_QueryRunRegistry::string, trkQualityChi2_, trkQualityPtMin_, useClusterET_, and useTwoStubsPT_.
◆ ~L1TkElectronTrackProducer()
L1TkElectronTrackProducer::~L1TkElectronTrackProducer |
( |
| ) |
|
|
override |
◆ fillDescriptions()
◆ getPtScaledCut()
double L1TkElectronTrackProducer::getPtScaledCut |
( |
double |
pt, |
|
|
std::vector< double > & |
parameters |
|
) |
| |
|
private |
◆ isolation()
Definition at line 298 of file L1TkElectronTrackProducer.cc.
300 L1TTTrackCollectionType::const_iterator trackIter;
308 for (trackIter = trkHandle->begin(); trackIter != trkHandle->end(); ++trackIter) {
309 if (
itr++ != match_index) {
315 float dZ =
std::abs(trackIter->POCA().z() - matchedTrkPtr->POCA().z());
317 float phi1 = trackIter->momentum().phi();
318 float phi2 = matchedTrkPtr->momentum().phi();
320 float dEta = (trackIter->momentum().eta() - matchedTrkPtr->momentum().eta());
323 if (dR2 > dRMin2 && dR2 < dRMax2 && dZ < deltaZ_ && trackIter->momentum().perp() >
pTMinTra_) {
324 sumPt += trackIter->momentum().perp();
References funct::abs(), reco::deltaPhi(), HLT_2018_cff::dEta, HLT_2018_cff::dPhi, dRMax_, dRMin_, PV3DBase< T, PVType, FrameType >::eta(), maxChi2IsoTracks_, minNStubsIsoTracks_, TTTrack< T >::momentum(), PV3DBase< T, PVType, FrameType >::phi(), TTTrack< T >::POCA(), pTMinTra_, TtFullHadEvtBuilder_cfi::sumPt, and PV3DBase< T, PVType, FrameType >::z().
Referenced by produce().
◆ produce()
Definition at line 148 of file L1TkElectronTrackProducer.cc.
164 L1TTTrackCollectionType::const_iterator trackIter;
168 <<
"\nWarning: L1EmCollection not found in the event. Exit" << std::endl;
171 if (!L1TTTrackHandle.
isValid()) {
172 throw cms::Exception(
"TkEmProducer") <<
"\nWarning: L1TTTrackCollectionType not found in the event. Exit."
178 for (egIter = eGammaCollection.
begin(0); egIter != eGammaCollection.
end(0); ++egIter) {
182 float e_ele = egIter->energy();
183 float eta_ele = egIter->eta();
185 float cosh_eta_ele = cosh(eta_ele);
186 if (cosh_eta_ele > 0.0)
187 et_ele = e_ele / cosh_eta_ele;
196 for (trackIter = L1TTTrackHandle->begin(); trackIter != L1TTTrackHandle->end(); ++trackIter) {
198 double trkPt_fit = trackIter->momentum().perp();
200 double trkPt = trkPt_fit;
223 float trkisol =
isolation(L1TTTrackHandle, itrack);
225 trkisol = trkisol / et_ele;
230 trkEm.setTrackCurvature(matchedL1TrackPtr->rInv());
References BXVector< T >::begin(), HLT_2018_cff::dEta, L1TkElectronTrackMatchAlgo::doMatch(), L1TkElectronTrackMatchAlgo::doMatchClusterET(), HLT_2018_cff::dPhi, HGC3DClusterGenMatchSelector_cfi::dR, egToken_, BXVector< T >::end(), etMin_, Exception, geomToken_, edm::EventSetup::getHandle(), iEvent, isoCut_, isolation(), edm::HandleBase::isValid(), label, eostools::move(), edm::Handle< T >::product(), edm::ESHandle< T >::product(), pTFrom2Stubs::pTFrom2(), relativeIsolation_, mps_fire::result, TTTrack< T >::rInv(), selectMatchedTrack(), l1t::TkElectron::setTrackCurvature(), trackToken_, trkQualityChi2_, trkQualityPtMin_, useClusterET_, and useTwoStubsPT_.
◆ selectMatchedTrack()
bool L1TkElectronTrackProducer::selectMatchedTrack |
( |
double & |
d_r, |
|
|
double & |
d_phi, |
|
|
double & |
d_eta, |
|
|
double & |
tk_pt, |
|
|
float & |
eg_eta |
|
) |
| |
|
private |
◆ deltaZ_
float L1TkElectronTrackProducer::deltaZ_ |
|
private |
◆ dEtaCutoff_
std::vector<double> L1TkElectronTrackProducer::dEtaCutoff_ |
|
private |
◆ dPhiCutoff_
std::vector<double> L1TkElectronTrackProducer::dPhiCutoff_ |
|
private |
◆ dRCutoff_
std::vector<double> L1TkElectronTrackProducer::dRCutoff_ |
|
private |
◆ dRMax_
float L1TkElectronTrackProducer::dRMax_ |
|
private |
◆ dRMin_
float L1TkElectronTrackProducer::dRMin_ |
|
private |
◆ egToken_
◆ etMin_
float L1TkElectronTrackProducer::etMin_ |
|
private |
◆ geomToken_
◆ isoCut_
float L1TkElectronTrackProducer::isoCut_ |
|
private |
◆ label
std::string L1TkElectronTrackProducer::label |
|
private |
◆ matchType_
std::string L1TkElectronTrackProducer::matchType_ |
|
private |
◆ maxChi2IsoTracks_
float L1TkElectronTrackProducer::maxChi2IsoTracks_ |
|
private |
◆ minNStubsIsoTracks_
unsigned int L1TkElectronTrackProducer::minNStubsIsoTracks_ |
|
private |
◆ primaryVtxConstrain_
bool L1TkElectronTrackProducer::primaryVtxConstrain_ |
|
private |
◆ pTMinTra_
float L1TkElectronTrackProducer::pTMinTra_ |
|
private |
◆ relativeIsolation_
bool L1TkElectronTrackProducer::relativeIsolation_ |
|
private |
◆ trackToken_
◆ trkQualityChi2_
float L1TkElectronTrackProducer::trkQualityChi2_ |
|
private |
◆ trkQualityPtMin_
float L1TkElectronTrackProducer::trkQualityPtMin_ |
|
private |
◆ useClusterET_
bool L1TkElectronTrackProducer::useClusterET_ |
|
private |
◆ useTwoStubsPT_
bool L1TkElectronTrackProducer::useTwoStubsPT_ |
|
private |
T const * product() const
T const * product() const
bool selectMatchedTrack(double &d_r, double &d_phi, double &d_eta, double &tk_pt, float &eg_eta)
float isolation(const edm::Handle< L1TTTrackCollectionType > &trkHandle, int match_index)
constexpr double deltaPhi(double phi1, double phi2)
std::vector< T >::const_iterator const_iterator
std::vector< double > dPhiCutoff_
Class to store the L1 Track Trigger tracks.
std::vector< double > dEtaCutoff_
double getPtScaledCut(double pt, std::vector< double > ¶meters)
const edm::EDGetTokenT< EGammaBxCollection > egToken_
edm::Ref< EGammaBxCollection > EGammaRef
void doMatchClusterET(BXVector< l1t::EGamma >::const_iterator egIter, const edm::Ptr< L1TTTrackType > &pTrk, double &dph, double &dr, double &deta)
void doMatch(BXVector< l1t::EGamma >::const_iterator egIter, const edm::Ptr< L1TTTrackType > &pTrk, double &dph, double &dr, double &deta)
const_iterator begin(int bx) const
unsigned int minNStubsIsoTracks_
const_iterator end(int bx) const
std::vector< TkElectron > TkElectronCollection
float pTFrom2(std::vector< TTTrack< Ref_Phase2TrackerDigi_ > >::const_iterator trk, const TrackerGeometry *tkGeometry)
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
std::vector< std::pair< float, float > >::iterator itr
const edm::EDGetTokenT< std::vector< TTTrack< Ref_Phase2TrackerDigi_ > > > trackToken_
T getParameter(std::string const &) const
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Abs< T >::type abs(const T &t)
void addDefault(ParameterSetDescription const &psetDescription)
static constexpr float EB_MaxEta
std::vector< double > dRCutoff_