CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes
GoodSeedProducer Class Referencefinal
Inheritance diagram for GoodSeedProducer:
edm::stream::EDProducer< edm::GlobalCache< goodseedhelpers::HeavyObjectCache > >

Public Member Functions

 GoodSeedProducer (const edm::ParameterSet &, const goodseedhelpers::HeavyObjectCache *)
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< goodseedhelpers::HeavyObjectCache > >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void globalEndJob (goodseedhelpers::HeavyObjectCache const *)
 
static std::unique_ptr< goodseedhelpers::HeavyObjectCacheinitializeGlobalCache (const edm::ParameterSet &conf)
 

Private Types

typedef TrajectoryStateOnSurface TSOS
 

Private Member Functions

void beginRun (const edm::Run &run, const edm::EventSetup &) override
 
void fillPreIdRefValueMap (edm::Handle< reco::TrackCollection > tkhandle, const edm::OrphanHandle< reco::PreIdCollection > &, edm::ValueMap< reco::PreIdRef >::Filler &filler)
 
int getBin (float, float)
 Find the bin in pt and eta. More...
 
void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

math::XYZVector B_
 B field. More...
 
float chikfred
 
float chiRatio
 
float chired
 
double clusThreshold_
 Cut on the energy of the clusters. More...
 
edm::ParameterSet conf_
 
bool disablePreId_
 switch to disable the pre-id More...
 
float dpt
 
double EcalStripSumE_deltaEta_
 
double EcalStripSumE_deltaPhiOverQ_maxValue_
 
double EcalStripSumE_deltaPhiOverQ_minValue_
 
double EcalStripSumE_minClusEnergy_
 
std::string fitterName_
 
double HcalIsolWindow_
 
TkClonerImpl hitCloner
 
double maxEp_
 
double maxEta_
 
double maxHoverP_
 
double maxPt_
 
double Min_dr_
 
double minEoverP_
 
double minEp_
 Min and MAx allowed values forEoverP. More...
 
double minPt_
 Minimum transverse momentum and maximum pseudorapidity. More...
 
float nhit
 VARIABLES NEEDED FOR TMVA. More...
 
int nHitsInSeed_
 Number of hits in the seed;. More...
 
edm::EDGetTokenT< reco::PFClusterCollectionpfCLusTagECLabel_
 
edm::EDGetTokenT< reco::PFClusterCollectionpfCLusTagHCLabel_
 
edm::EDGetTokenT< reco::PFClusterCollectionpfCLusTagPSLabel_
 
std::unique_ptr< PFTrackTransformerpfTransformer_
 PFTrackTransformer. More...
 
std::string preidckf_
 Name of the Seed(Ckf) Collection. More...
 
std::string preidgsf_
 Name of the Seed(Gsf) Collection. More...
 
std::string preidname_
 Name of the preid Collection (FB) More...
 
bool produceCkfseed_
 Produce the Seed for Ckf tracks? More...
 
bool producePreId_
 Produce the pre-id debugging collection. More...
 
std::string propagatorName_
 
double PtThresholdSavePredId_
 Threshold to save Pre Idinfo. More...
 
std::map< reco::TrackRef, unsigned > refMap_
 Map used to create the TrackRef, PreIdRef value map. More...
 
std::unique_ptr< PFResolutionMapresMapEtaECAL_
 
std::unique_ptr< PFResolutionMapresMapPhiECAL_
 
std::string smootherName_
 
float thr [150]
 vector of thresholds for different bins of eta and pt More...
 
std::string trackerRecHitBuilderName_
 
reco::TrackBase::TrackQuality trackQuality_
 
std::vector< edm::EDGetTokenT< reco::TrackCollection > > tracksContainers_
 
std::vector< edm::EDGetTokenT< std::vector< Trajectory > > > trajContainers_
 
float trk_ecalDeta
 
float trk_ecalDphi
 
bool useQuality_
 TRACK QUALITY. More...
 
bool useTmva_
 USE OF TMVA. More...
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< goodseedhelpers::HeavyObjectCache > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 68 of file GoodSeedProducer.cc.

Member Typedef Documentation

◆ TSOS

Definition at line 69 of file GoodSeedProducer.cc.

Constructor & Destructor Documentation

◆ GoodSeedProducer()

GoodSeedProducer::GoodSeedProducer ( const edm::ParameterSet iConfig,
const goodseedhelpers::HeavyObjectCache  
)
explicit

Definition at line 184 of file GoodSeedProducer.cc.

185  : pfTransformer_(nullptr), conf_(iConfig), resMapEtaECAL_(nullptr), resMapPhiECAL_(nullptr) {
186  LogInfo("GoodSeedProducer") << "Electron PreIdentification started ";
187 
188  //now do what ever initialization is needed
189  std::vector<edm::InputTag> tags = iConfig.getParameter<vector<InputTag>>("TkColList");
190  for (unsigned int i = 0; i < tags.size(); ++i) {
191  trajContainers_.push_back(consumes<vector<Trajectory>>(tags[i]));
192  tracksContainers_.push_back(consumes<reco::TrackCollection>(tags[i]));
193  }
194 
195  minPt_ = iConfig.getParameter<double>("MinPt");
196  maxPt_ = iConfig.getParameter<double>("MaxPt");
197  maxEta_ = iConfig.getParameter<double>("MaxEta");
198 
199  HcalIsolWindow_ = iConfig.getParameter<double>("HcalWindow");
200  EcalStripSumE_minClusEnergy_ = iConfig.getParameter<double>("EcalStripSumE_minClusEnergy");
201  EcalStripSumE_deltaEta_ = iConfig.getParameter<double>("EcalStripSumE_deltaEta");
202  EcalStripSumE_deltaPhiOverQ_minValue_ = iConfig.getParameter<double>("EcalStripSumE_deltaPhiOverQ_minValue");
203  EcalStripSumE_deltaPhiOverQ_maxValue_ = iConfig.getParameter<double>("EcalStripSumE_deltaPhiOverQ_maxValue");
204  minEoverP_ = iConfig.getParameter<double>("EOverPLead_minValue");
205  maxHoverP_ = iConfig.getParameter<double>("HOverPLead_maxValue");
206 
207  pfCLusTagECLabel_ = consumes<reco::PFClusterCollection>(iConfig.getParameter<InputTag>("PFEcalClusterLabel"));
208 
209  pfCLusTagHCLabel_ = consumes<reco::PFClusterCollection>(iConfig.getParameter<InputTag>("PFHcalClusterLabel"));
210 
211  pfCLusTagPSLabel_ = consumes<reco::PFClusterCollection>(iConfig.getParameter<InputTag>("PFPSClusterLabel"));
212 
213  preidgsf_ = iConfig.getParameter<string>("PreGsfLabel");
214  preidckf_ = iConfig.getParameter<string>("PreCkfLabel");
215  preidname_ = iConfig.getParameter<string>("PreIdLabel");
216 
217  fitterName_ = iConfig.getParameter<string>("Fitter");
218  smootherName_ = iConfig.getParameter<string>("Smoother");
219 
220  nHitsInSeed_ = iConfig.getParameter<int>("NHitsInSeed");
221 
222  clusThreshold_ = iConfig.getParameter<double>("ClusterThreshold");
223 
224  minEp_ = iConfig.getParameter<double>("MinEOverP");
225  maxEp_ = iConfig.getParameter<double>("MaxEOverP");
226 
227  //collection to produce
228  produceCkfseed_ = iConfig.getUntrackedParameter<bool>("ProduceCkfSeed", false);
229 
230  // to disable the electron part (for HI collisions for examples)
231  disablePreId_ = iConfig.getUntrackedParameter<bool>("DisablePreId", false);
232 
233  producePreId_ = iConfig.getUntrackedParameter<bool>("ProducePreId", true);
234  // if no electron, cannot produce the preid
235  if (disablePreId_)
236  producePreId_ = false;
237  PtThresholdSavePredId_ = iConfig.getUntrackedParameter<double>("PtThresholdSavePreId", 1.);
238 
239  LogDebug("GoodSeedProducer") << "Seeds for GSF will be produced ";
240 
241  // no disablePreId_ switch here. The collection will be empty if it is true
242  produces<ElectronSeedCollection>(preidgsf_);
243 
244  if (produceCkfseed_) {
245  LogDebug("GoodSeedProducer") << "Seeds for CKF will be produced ";
246  produces<TrajectorySeedCollection>(preidckf_);
247  }
248 
249  if (producePreId_) {
250  LogDebug("GoodSeedProducer") << "PreId debugging information will be produced ";
251 
252  produces<PreIdCollection>(preidname_);
253  if (tracksContainers_.size() == 1) // do not make a value map if more than one input track collection
255  }
256 
257  useQuality_ = iConfig.getParameter<bool>("UseQuality");
258  trackQuality_ = TrackBase::qualityByName(iConfig.getParameter<std::string>("TrackQuality"));
259 
260  useTmva_ = iConfig.getUntrackedParameter<bool>("UseTMVA", false);
261 
262  Min_dr_ = iConfig.getParameter<double>("Min_dr");
263 
264  trackerRecHitBuilderName_ = iConfig.getParameter<std::string>("TTRHBuilder");
265 }

References clusThreshold_, disablePreId_, EcalStripSumE_deltaEta_, EcalStripSumE_deltaPhiOverQ_maxValue_, EcalStripSumE_deltaPhiOverQ_minValue_, EcalStripSumE_minClusEnergy_, fitterName_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HcalIsolWindow_, mps_fire::i, LogDebug, maxEp_, maxEta_, maxHoverP_, maxPt_, Min_dr_, minEoverP_, minEp_, minPt_, nHitsInSeed_, pfCLusTagECLabel_, pfCLusTagHCLabel_, pfCLusTagPSLabel_, preidckf_, preidgsf_, preidname_, produceCkfseed_, producePreId_, PtThresholdSavePredId_, smootherName_, AlCaHLTBitMon_QueryRunRegistry::string, triggerMatcherToHLTDebug_cfi::tags, trackerRecHitBuilderName_, trackQuality_, tracksContainers_, trajContainers_, useQuality_, and useTmva_.

Member Function Documentation

◆ beginRun()

void GoodSeedProducer::beginRun ( const edm::Run run,
const edm::EventSetup es 
)
overrideprivate

Definition at line 604 of file GoodSeedProducer.cc.

604  {
605  //Magnetic Field
608  B_ = magneticField->inTesla(GlobalPoint(0, 0, 0));
609 
610  pfTransformer_ = std::make_unique<PFTrackTransformer>(B_);
611  pfTransformer_->OnlyProp();
612 
613  //Resolution maps
614  FileInPath ecalEtaMap(conf_.getParameter<string>("EtaMap"));
615  FileInPath ecalPhiMap(conf_.getParameter<string>("PhiMap"));
616  resMapEtaECAL_ = std::make_unique<PFResolutionMap>("ECAL_eta", ecalEtaMap.fullPath().c_str());
617  resMapPhiECAL_ = std::make_unique<PFResolutionMap>("ECAL_phi", ecalPhiMap.fullPath().c_str());
618 
619  //read threshold
620  FileInPath parFile(conf_.getParameter<string>("ThresholdFile"));
621  ifstream ifs(parFile.fullPath().c_str());
622  for (int iy = 0; iy < 81; ++iy)
623  ifs >> thr[iy];
624 }

References B_, conf_, edm::FileInPath::fullPath(), edm::EventSetup::get(), get, edm::ParameterSet::getParameter(), HLT_2018_cff::magneticField, pfTransformer_, resMapEtaECAL_, resMapPhiECAL_, and thr.

◆ fillPreIdRefValueMap()

void GoodSeedProducer::fillPreIdRefValueMap ( edm::Handle< reco::TrackCollection tkhandle,
const edm::OrphanHandle< reco::PreIdCollection > &  preidhandle,
edm::ValueMap< reco::PreIdRef >::Filler &  filler 
)
private

Definition at line 650 of file GoodSeedProducer.cc.

652  {
653  std::vector<reco::PreIdRef> values;
654 
655  unsigned ntracks = tracks->size();
656  for (unsigned itrack = 0; itrack < ntracks; ++itrack) {
657  reco::TrackRef theTrackRef(tracks, itrack);
658  std::map<reco::TrackRef, unsigned>::const_iterator itcheck = refMap_.find(theTrackRef);
659  if (itcheck == refMap_.end()) {
660  // the track has been early discarded
661  values.push_back(reco::PreIdRef());
662  } else {
663  edm::Ref<reco::PreIdCollection> preIdRef(preidhandle, itcheck->second);
664  values.push_back(preIdRef);
665  // std::cout << " Checking Refs " << (theTrackRef==preIdRef->trackRef()) << std::endl;
666  }
667  }
668  filler.insert(tracks, values.begin(), values.end());
669 }

References trigObjTnPSource_cfi::filler, refMap_, PDWG_EXOHSCP_cff::tracks, and contentValuesCheck::values.

Referenced by produce().

◆ getBin()

int GoodSeedProducer::getBin ( float  eta,
float  pt 
)
private

Find the bin in pt and eta.

Definition at line 626 of file GoodSeedProducer.cc.

626  {
627  int ie = 0;
628  int ip = 0;
629  if (fabs(eta) < 0.8)
630  ie = 0;
631  else {
632  if (fabs(eta) < 1.479)
633  ie = 1;
634  else
635  ie = 2;
636  }
637  if (pt < 6)
638  ip = 0;
639  else {
640  if (pt < 12)
641  ip = 1;
642  else
643  ip = 2;
644  }
645  int iep = ie * 3 + ip;
646  LogDebug("GoodSeedProducer") << "Track pt =" << pt << " eta=" << eta << " bin=" << iep;
647  return iep;
648 }

References PVValHelper::eta, LogDebug, and DiDispStaMuonMonitor_cfi::pt.

Referenced by produce().

◆ globalEndJob()

static void GoodSeedProducer::globalEndJob ( goodseedhelpers::HeavyObjectCache const *  )
inlinestatic

Definition at line 78 of file GoodSeedProducer.cc.

78 {}

◆ initializeGlobalCache()

static std::unique_ptr<goodseedhelpers::HeavyObjectCache> GoodSeedProducer::initializeGlobalCache ( const edm::ParameterSet conf)
inlinestatic

Definition at line 74 of file GoodSeedProducer.cc.

74  {
75  return std::make_unique<goodseedhelpers::HeavyObjectCache>(conf);
76  }

◆ produce()

void GoodSeedProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 272 of file GoodSeedProducer.cc.

272  {
273  LogDebug("GoodSeedProducer") << "START event: " << iEvent.id().event() << " in run " << iEvent.id().run();
274  //Create empty output collections
275  auto output_preid = std::make_unique<ElectronSeedCollection>();
276  auto output_nopre = std::make_unique<TrajectorySeedCollection>();
277  auto output_preidinfo = std::make_unique<PreIdCollection>();
278  auto preIdMap_p = std::make_unique<edm::ValueMap<reco::PreIdRef>>();
279  edm::ValueMap<reco::PreIdRef>::Filler mapFiller(*preIdMap_p);
280 
281  std::unique_ptr<TrajectoryFitter> fitter;
282  std::unique_ptr<TrajectorySmoother> smoother;
283 
284  //Tracking Tools
285  if (!disablePreId_) {
288  iSetup.get<TrajectoryFitter::Record>().get(fitterName_, aFitter);
289  iSetup.get<TrajectoryFitter::Record>().get(smootherName_, aSmoother);
290  smoother.reset(aSmoother->clone());
291  fitter = aFitter->clone();
292  edm::ESHandle<TransientTrackingRecHitBuilder> theTrackerRecHitBuilder;
293  iSetup.get<TransientRecHitRecord>().get(trackerRecHitBuilderName_, theTrackerRecHitBuilder);
294  hitCloner = static_cast<TkTransientTrackingRecHitBuilder const*>(theTrackerRecHitBuilder.product())->cloner();
295  fitter->setHitCloner(&hitCloner);
296  smoother->setHitCloner(&hitCloner);
297  }
298 
299  // clear temporary maps
300  refMap_.clear();
301 
302  //Magnetic Field
305 
306  //Handle input collections
307  //ECAL clusters
308  Handle<PFClusterCollection> theECPfClustCollection;
309  iEvent.getByToken(pfCLusTagECLabel_, theECPfClustCollection);
310 
311  vector<PFCluster const*> basClus;
312  for (auto const& klus : *theECPfClustCollection.product()) {
313  if (klus.correctedEnergy() > clusThreshold_)
314  basClus.push_back(&klus);
315  }
316 
317  //HCAL clusters
318  Handle<PFClusterCollection> theHCPfClustCollection;
319  iEvent.getByToken(pfCLusTagHCLabel_, theHCPfClustCollection);
320 
321  //PS clusters
322  Handle<PFClusterCollection> thePSPfClustCollection;
323  iEvent.getByToken(pfCLusTagPSLabel_, thePSPfClustCollection);
324 
325  //Vector of track collections
326  for (unsigned int istr = 0; istr < tracksContainers_.size(); ++istr) {
327  //Track collection
328  Handle<TrackCollection> tkRefCollection;
329  iEvent.getByToken(tracksContainers_[istr], tkRefCollection);
330  const TrackCollection& Tk = *(tkRefCollection.product());
331 
332  LogDebug("GoodSeedProducer") << "Number of tracks in collection "
333  << "tracksContainers_[" << istr << "] to be analyzed " << Tk.size();
334 
335  //loop over the track collection
336  for (unsigned int i = 0; i < Tk.size(); ++i) {
337  if (useQuality_ && (!(Tk[i].quality(trackQuality_))))
338  continue;
339 
340  reco::PreId myPreId;
341  bool GoodPreId = false;
342 
343  TrackRef trackRef(tkRefCollection, i);
344  math::XYZVectorF tkmom(Tk[i].momentum());
345  auto tketa = tkmom.eta();
346  auto tkpt = std::sqrt(tkmom.perp2());
347  auto const& Seed = (*trackRef->seedRef());
348  if (!disablePreId_) {
349  int ipteta = getBin(Tk[i].eta(), Tk[i].pt());
350  int ibin = ipteta * 9;
351 
352  // FIXME the original code was buggy should be outerMomentum...
353  float oPTOB = 1.f / std::sqrt(Tk[i].innerMomentum().mag2());
354  // float chikfred=Tk[i].normalizedChi2();
355  float nchi = Tk[i].normalizedChi2();
356 
357  int nhitpi = Tk[i].found();
358  float EP = 0;
359 
360  // set track info
361  myPreId.setTrack(trackRef);
362  //CLUSTERS - TRACK matching
363 
364  auto pfmass = 0.0005;
365  auto pfoutenergy = sqrt((pfmass * pfmass) + Tk[i].outerMomentum().Mag2());
366 
368  Tk[i].outerMomentum().x(), Tk[i].outerMomentum().y(), Tk[i].outerMomentum().z(), pfoutenergy);
370  XYZTLorentzVector(Tk[i].outerPosition().x(), Tk[i].outerPosition().y(), Tk[i].outerPosition().z(), 0.);
371 
372  BaseParticlePropagator theOutParticle(RawParticle(mom, pos, Tk[i].charge()), 0, 0, B_.z());
373 
374  theOutParticle.propagateToEcalEntrance(false);
375 
376  float toteta = 1000.f;
377  float totphi = 1000.f;
378  float dr = 1000.f;
379  float EE = 0.f;
380  float feta = 0.f;
381  GlobalPoint ElecTrkEcalPos(0, 0, 0);
382 
383  PFClusterRef clusterRef;
384  math::XYZPoint meanShowerSaved;
385  if (theOutParticle.getSuccess() != 0) {
386  ElecTrkEcalPos = GlobalPoint(theOutParticle.particle().vertex().x(),
387  theOutParticle.particle().vertex().y(),
388  theOutParticle.particle().vertex().z());
389 
390  constexpr float psLim = 2.50746495928f; // std::sinh(1.65f);
391  bool isBelowPS = (ElecTrkEcalPos.z() * ElecTrkEcalPos.z()) > (psLim * psLim) * ElecTrkEcalPos.perp2();
392  // bool isBelowPS=(std::abs(ElecTrkEcalPos.eta())>1.65f);
393 
394  unsigned clusCounter = 0;
395  float max_ee = 0;
396  for (auto aClus : basClus) {
397  float tmp_ep = float(aClus->correctedEnergy()) * oPTOB;
398  if ((tmp_ep < minEp_) | (tmp_ep > maxEp_)) {
399  ++clusCounter;
400  continue;
401  }
402 
403  double ecalShowerDepth = PFCluster::getDepthCorrection(aClus->correctedEnergy(), isBelowPS, false);
404  auto mom = theOutParticle.particle().momentum().Vect();
405  auto meanShower = ElecTrkEcalPos + GlobalVector(mom.x(), mom.y(), mom.z()).unit() * ecalShowerDepth;
406 
407  float etarec = meanShower.eta();
408  float phirec = meanShower.phi();
409 
410  float tmp_phi = std::abs(aClus->positionREP().phi() - phirec);
411  if (tmp_phi > float(TMath::Pi()))
412  tmp_phi -= float(TMath::TwoPi());
413 
414  float tmp_dr = std::sqrt(std::pow(tmp_phi, 2.f) + std::pow(aClus->positionREP().eta() - etarec, 2.f));
415 
416  if (tmp_dr < dr) {
417  dr = tmp_dr;
418  if (dr < Min_dr_) { // find the most closest and energetic ECAL cluster
419  if (aClus->correctedEnergy() > max_ee) {
420  toteta = aClus->positionREP().eta() - etarec;
421  totphi = tmp_phi;
422  EP = tmp_ep;
423  EE = aClus->correctedEnergy();
424  feta = aClus->positionREP().eta();
425  clusterRef = PFClusterRef(theECPfClustCollection, clusCounter);
426  meanShowerSaved = meanShower;
427  }
428  }
429  }
430  ++clusCounter;
431  }
432  }
433  float trk_ecalDeta_ = fabs(toteta);
434  float trk_ecalDphi_ = fabs(totphi);
435 
436  //Resolution maps
437  auto ecaletares = resMapEtaECAL_->GetBinContent(resMapEtaECAL_->FindBin(feta, EE));
438  auto ecalphires = resMapPhiECAL_->GetBinContent(resMapPhiECAL_->FindBin(feta, EE));
439 
440  //geomatrical compatibility
441  float chieta = (toteta != 1000.f) ? toteta / ecaletares : toteta;
442  float chiphi = (totphi != 1000.f) ? totphi / ecalphires : totphi;
443  float chichi = sqrt(chieta * chieta + chiphi * chiphi);
444 
445  //Matching criteria
446  float eta_cut = thr[ibin + 0];
447  float phi_cut = thr[ibin + 1];
448  float ep_cutmin = thr[ibin + 2];
449  bool GoodMatching =
450  ((trk_ecalDeta_ < eta_cut) && (trk_ecalDphi_ < phi_cut) && (EP > ep_cutmin) && (nhitpi > 10));
451 
452  bool EcalMatching = GoodMatching;
453 
454  if (tkpt > maxPt_)
455  GoodMatching = true;
456  if (tkpt < minPt_)
457  GoodMatching = false;
458 
459  math::XYZPoint myPoint(ElecTrkEcalPos.x(), ElecTrkEcalPos.y(), ElecTrkEcalPos.z());
461  clusterRef, myPoint, meanShowerSaved, std::abs(toteta), std::abs(totphi), chieta, chiphi, chichi, EP);
462  myPreId.setECALMatching(EcalMatching);
463 
464  bool GoodRange = ((std::abs(tketa) < maxEta_) & (tkpt > minPt_));
465  //KF FILTERING FOR UNMATCHED EVENTS
466  int hit1max = int(thr[ibin + 3]);
467  float chiredmin = thr[ibin + 4];
468  bool GoodKFFiltering = ((nchi > chiredmin) | (nhitpi < hit1max));
469 
470  myPreId.setTrackFiltering(GoodKFFiltering);
471 
472  bool GoodTkId = false;
473 
474  if ((!GoodMatching) && (GoodKFFiltering) && (GoodRange)) {
475  chired = 1000;
476  chiRatio = 1000;
477  dpt = 0;
478  nhit = nhitpi;
479  chikfred = nchi;
480  trk_ecalDeta = trk_ecalDeta_;
481  trk_ecalDphi = trk_ecalDphi_;
482 
484  for (auto const& hit : Tk[i].recHits())
485  tmp.push_back(hit->cloneSH());
486  auto const& theTrack = Tk[i];
487  GlobalVector gv(theTrack.innerMomentum().x(), theTrack.innerMomentum().y(), theTrack.innerMomentum().z());
488  GlobalPoint gp(theTrack.innerPosition().x(), theTrack.innerPosition().y(), theTrack.innerPosition().z());
489  GlobalTrajectoryParameters gtps(gp, gv, theTrack.charge(), &*magneticField);
490  TrajectoryStateOnSurface tsos(gtps, theTrack.innerStateCovariance(), *tmp[0]->surface());
491  Trajectory&& FitTjs = fitter->fitOne(Seed, tmp, tsos);
492 
493  if (FitTjs.isValid()) {
494  Trajectory&& SmooTjs = smoother->trajectory(FitTjs);
495  if (SmooTjs.isValid()) {
496  //Track refitted with electron hypothesis
497 
498  float pt_out = SmooTjs.firstMeasurement().updatedState().globalMomentum().perp();
499  float pt_in = SmooTjs.lastMeasurement().updatedState().globalMomentum().perp();
500  dpt = (pt_in > 0) ? fabs(pt_out - pt_in) / pt_in : 0.;
501  // the following is simply the number of degrees of freedom
502  chiRatio = SmooTjs.chiSquared() / Tk[i].chi2();
504  }
505  }
506 
507  //TMVA Analysis
508  if (useTmva_) {
509  float vars[10] = {nhit, chikfred, dpt, EP, chiRatio, chired, trk_ecalDeta, trk_ecalDphi, tkpt, tketa};
510 
511  float Ytmva = globalCache()->gbr[ipteta]->GetClassifier(vars);
512 
513  float BDTcut = thr[ibin + 5];
514  if (Ytmva > BDTcut)
515  GoodTkId = true;
516  myPreId.setMVA(GoodTkId, Ytmva);
518  } else {
519  float chiratiocut = thr[ibin + 6];
520  float gschicut = thr[ibin + 7];
521  float gsptmin = thr[ibin + 8];
522 
523  GoodTkId = ((dpt > gsptmin) & (chired < gschicut) & (chiRatio < chiratiocut));
524  }
525  }
526 
527  GoodPreId = GoodTkId | GoodMatching;
528 
529  myPreId.setFinalDecision(GoodPreId);
530 
531 #ifdef EDM_ML_DEBUG
532  if (GoodPreId)
533  LogDebug("GoodSeedProducer") << "Track (pt= " << Tk[i].pt() << "GeV/c, eta= " << Tk[i].eta()
534  << ") preidentified for agreement between track and ECAL cluster";
535  if (GoodPreId && (!GoodMatching))
536  LogDebug("GoodSeedProducer") << "Track (pt= " << Tk[i].pt() << "GeV/c, eta= " << Tk[i].eta()
537  << ") preidentified only for track properties";
538 #endif
539 
540  } // end of !disablePreId_
541 
542  if (GoodPreId) {
543  //NEW SEED with n hits
544  ElectronSeed NewSeed(Seed);
545  NewSeed.setCtfTrack(trackRef);
546  output_preid->push_back(NewSeed);
547  } else {
548  if (produceCkfseed_) {
549  output_nopre->push_back(Seed);
550  }
551  }
552  if (producePreId_ && myPreId.pt() > PtThresholdSavePredId_) {
553  // save the index of the PreId object as to be able to create a Ref later
554  refMap_[trackRef] = output_preidinfo->size();
555  output_preidinfo->push_back(myPreId);
556  }
557  } //end loop on track collection
558  } //end loop on the vector of track collections
559 
560  // no disablePreId_ switch, it is simpler to have an empty collection rather than no collection
561  iEvent.put(std::move(output_preid), preidgsf_);
562  if (produceCkfseed_)
563  iEvent.put(std::move(output_nopre), preidckf_);
564  if (producePreId_) {
565  const edm::OrphanHandle<reco::PreIdCollection> preIdRefProd = iEvent.put(std::move(output_preidinfo), preidname_);
566  // now make the Value Map, but only if one input collection
567  if (tracksContainers_.size() == 1) {
568  Handle<TrackCollection> tkRefCollection;
569  iEvent.getByToken(tracksContainers_[0], tkRefCollection);
570  fillPreIdRefValueMap(tkRefCollection, preIdRefProd, mapFiller);
571  mapFiller.fill();
572  iEvent.put(std::move(preIdMap_p), preidname_);
573  }
574  }
575  // clear temporary maps
576  refMap_.clear();
577 }

References funct::abs(), B_, ALCARECOTkAlJpsiMuMu_cff::charge, chikfred, chiRatio, chired, Trajectory::chiSquared(), TrajectorySmoother::clone(), TrajectoryFitter::clone(), clusThreshold_, disablePreId_, dpt, flavorHistoryFilter_cfi::dr, EE, PVValHelper::eta, Basic3DVector< T >::eta(), f, JetMETHLTOfflineSource_cfi::feta, fillPreIdRefValueMap(), Trajectory::firstMeasurement(), fitterName_, dqmMemoryStats::float, edm::EventSetup::get(), get, getBin(), TrajectoryStateOnSurface::globalMomentum(), runTauDisplay::gp, hitCloner, mps_fire::i, iEvent, createfilelist::int, Trajectory::isValid(), Trajectory::lastMeasurement(), LogDebug, mag2(), HLT_2018_cff::magneticField, maxEp_, maxEta_, maxPt_, Min_dr_, minEp_, minPt_, eostools::move(), nhit, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::perp2(), pfCLusTagECLabel_, pfCLusTagHCLabel_, pfCLusTagPSLabel_, Pi, funct::pow(), preidckf_, preidgsf_, preidname_, produceCkfseed_, producePreId_, edm::Handle< T >::product(), edm::ESHandle< T >::product(), BaseParticlePropagator::propagateToEcalEntrance(), DiDispStaMuonMonitor_cfi::pt, reco::PreId::pt(), PtThresholdSavePredId_, qcdUeDQM_cfi::quality, FastTrackerRecHitMaskProducer_cfi::recHits, refMap_, resMapEtaECAL_, resMapPhiECAL_, reco::ElectronSeed::setCtfTrack(), reco::PreId::setECALMatching(), reco::PreId::setECALMatchingProperties(), reco::PreId::setFinalDecision(), reco::PreId::setMVA(), reco::PreId::setTrack(), reco::PreId::setTrackFiltering(), reco::PreId::setTrackProperties(), smootherName_, mathSSE::sqrt(), thr, createJobs::tmp, trackerRecHitBuilderName_, trackQuality_, tracksContainers_, trk_ecalDeta, trk_ecalDphi, TwoPi, unit(), TrajectoryMeasurement::updatedState(), useQuality_, useTmva_, x, PV3DBase< T, PVType, FrameType >::x(), y, PV3DBase< T, PVType, FrameType >::y(), z, and PV3DBase< T, PVType, FrameType >::z().

Member Data Documentation

◆ B_

math::XYZVector GoodSeedProducer::B_
private

B field.

Definition at line 174 of file GoodSeedProducer.cc.

Referenced by beginRun(), and produce().

◆ chikfred

float GoodSeedProducer::chikfred
private

Definition at line 167 of file GoodSeedProducer.cc.

Referenced by produce().

◆ chiRatio

float GoodSeedProducer::chiRatio
private

Definition at line 166 of file GoodSeedProducer.cc.

Referenced by produce().

◆ chired

float GoodSeedProducer::chired
private

Definition at line 166 of file GoodSeedProducer.cc.

Referenced by produce().

◆ clusThreshold_

double GoodSeedProducer::clusThreshold_
private

Cut on the energy of the clusters.

Definition at line 124 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ conf_

edm::ParameterSet GoodSeedProducer::conf_
private

Definition at line 146 of file GoodSeedProducer.cc.

Referenced by beginRun().

◆ disablePreId_

bool GoodSeedProducer::disablePreId_
private

switch to disable the pre-id

Definition at line 134 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ dpt

float GoodSeedProducer::dpt
private

Definition at line 166 of file GoodSeedProducer.cc.

Referenced by produce().

◆ EcalStripSumE_deltaEta_

double GoodSeedProducer::EcalStripSumE_deltaEta_
private

Definition at line 117 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ EcalStripSumE_deltaPhiOverQ_maxValue_

double GoodSeedProducer::EcalStripSumE_deltaPhiOverQ_maxValue_
private

Definition at line 119 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ EcalStripSumE_deltaPhiOverQ_minValue_

double GoodSeedProducer::EcalStripSumE_deltaPhiOverQ_minValue_
private

Definition at line 118 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ EcalStripSumE_minClusEnergy_

double GoodSeedProducer::EcalStripSumE_minClusEnergy_
private

Definition at line 116 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ fitterName_

std::string GoodSeedProducer::fitterName_
private

Definition at line 153 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ HcalIsolWindow_

double GoodSeedProducer::HcalIsolWindow_
private

Definition at line 115 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ hitCloner

TkClonerImpl GoodSeedProducer::hitCloner
private

Definition at line 102 of file GoodSeedProducer.cc.

Referenced by produce().

◆ maxEp_

double GoodSeedProducer::maxEp_
private

Definition at line 128 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ maxEta_

double GoodSeedProducer::maxEta_
private

Definition at line 113 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ maxHoverP_

double GoodSeedProducer::maxHoverP_
private

Definition at line 121 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ maxPt_

double GoodSeedProducer::maxPt_
private

Definition at line 112 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ Min_dr_

double GoodSeedProducer::Min_dr_
private

Definition at line 168 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ minEoverP_

double GoodSeedProducer::minEoverP_
private

Definition at line 120 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ minEp_

double GoodSeedProducer::minEp_
private

Min and MAx allowed values forEoverP.

Definition at line 127 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ minPt_

double GoodSeedProducer::minPt_
private

Minimum transverse momentum and maximum pseudorapidity.

Definition at line 111 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ nhit

float GoodSeedProducer::nhit
private

VARIABLES NEEDED FOR TMVA.

Definition at line 166 of file GoodSeedProducer.cc.

Referenced by produce().

◆ nHitsInSeed_

int GoodSeedProducer::nHitsInSeed_
private

Number of hits in the seed;.

Definition at line 108 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ pfCLusTagECLabel_

edm::EDGetTokenT<reco::PFClusterCollection> GoodSeedProducer::pfCLusTagECLabel_
private

Definition at line 148 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ pfCLusTagHCLabel_

edm::EDGetTokenT<reco::PFClusterCollection> GoodSeedProducer::pfCLusTagHCLabel_
private

Definition at line 149 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ pfCLusTagPSLabel_

edm::EDGetTokenT<reco::PFClusterCollection> GoodSeedProducer::pfCLusTagPSLabel_
private

Definition at line 147 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ pfTransformer_

std::unique_ptr<PFTrackTransformer> GoodSeedProducer::pfTransformer_
private

PFTrackTransformer.

Definition at line 105 of file GoodSeedProducer.cc.

Referenced by beginRun().

◆ preidckf_

std::string GoodSeedProducer::preidckf_
private

Name of the Seed(Ckf) Collection.

Definition at line 93 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ preidgsf_

std::string GoodSeedProducer::preidgsf_
private

Name of the Seed(Gsf) Collection.

Definition at line 96 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ preidname_

std::string GoodSeedProducer::preidname_
private

Name of the preid Collection (FB)

Definition at line 99 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ produceCkfseed_

bool GoodSeedProducer::produceCkfseed_
private

Produce the Seed for Ckf tracks?

Definition at line 131 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ producePreId_

bool GoodSeedProducer::producePreId_
private

Produce the pre-id debugging collection.

Definition at line 137 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ propagatorName_

std::string GoodSeedProducer::propagatorName_
private

Definition at line 155 of file GoodSeedProducer.cc.

◆ PtThresholdSavePredId_

double GoodSeedProducer::PtThresholdSavePredId_
private

Threshold to save Pre Idinfo.

Definition at line 140 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ refMap_

std::map<reco::TrackRef, unsigned> GoodSeedProducer::refMap_
private

Map used to create the TrackRef, PreIdRef value map.

Definition at line 177 of file GoodSeedProducer.cc.

Referenced by fillPreIdRefValueMap(), and produce().

◆ resMapEtaECAL_

std::unique_ptr<PFResolutionMap> GoodSeedProducer::resMapEtaECAL_
private

Definition at line 158 of file GoodSeedProducer.cc.

Referenced by beginRun(), and produce().

◆ resMapPhiECAL_

std::unique_ptr<PFResolutionMap> GoodSeedProducer::resMapPhiECAL_
private

Definition at line 159 of file GoodSeedProducer.cc.

Referenced by beginRun(), and produce().

◆ smootherName_

std::string GoodSeedProducer::smootherName_
private

Definition at line 154 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ thr

float GoodSeedProducer::thr[150]
private

vector of thresholds for different bins of eta and pt

Definition at line 143 of file GoodSeedProducer.cc.

Referenced by beginRun(), and produce().

◆ trackerRecHitBuilderName_

std::string GoodSeedProducer::trackerRecHitBuilderName_
private

Definition at line 156 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ trackQuality_

reco::TrackBase::TrackQuality GoodSeedProducer::trackQuality_
private

Definition at line 163 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ tracksContainers_

std::vector<edm::EDGetTokenT<reco::TrackCollection> > GoodSeedProducer::tracksContainers_
private

Definition at line 151 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ trajContainers_

std::vector<edm::EDGetTokenT<std::vector<Trajectory> > > GoodSeedProducer::trajContainers_
private

Definition at line 150 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ trk_ecalDeta

float GoodSeedProducer::trk_ecalDeta
private

Definition at line 167 of file GoodSeedProducer.cc.

Referenced by produce().

◆ trk_ecalDphi

float GoodSeedProducer::trk_ecalDphi
private

Definition at line 167 of file GoodSeedProducer.cc.

Referenced by produce().

◆ useQuality_

bool GoodSeedProducer::useQuality_
private

TRACK QUALITY.

Definition at line 162 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

◆ useTmva_

bool GoodSeedProducer::useTmva_
private

USE OF TMVA.

Definition at line 171 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer(), and produce().

Vector3DBase
Definition: Vector3DBase.h:8
TrajectorySmoother::clone
virtual TrajectorySmoother * clone() const =0
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
DDAxes::y
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
GoodSeedProducer::resMapEtaECAL_
std::unique_ptr< PFResolutionMap > resMapEtaECAL_
Definition: GoodSeedProducer.cc:158
RawParticle
Definition: RawParticle.h:37
mps_fire.i
i
Definition: mps_fire.py:355
BaseParticlePropagator::propagateToEcalEntrance
bool propagateToEcalEntrance(bool first=true)
Definition: BaseParticlePropagator.cc:450
TwoPi
const double TwoPi
Definition: CosmicMuonParameters.h:19
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
reco::PreId::pt
float pt() const
Definition: PreId.h:80
edm::Handle::product
T const * product() const
Definition: Handle.h:70
reco::PreId::setMVA
void setMVA(bool accepted, float mva, unsigned n=0)
Definition: PreId.h:63
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
Trajectory::chiSquared
float chiSquared() const
Definition: Trajectory.h:241
GoodSeedProducer::maxPt_
double maxPt_
Definition: GoodSeedProducer.cc:112
HLT_2018_cff.magneticField
magneticField
Definition: HLT_2018_cff.py:348
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
GoodSeedProducer::pfCLusTagPSLabel_
edm::EDGetTokenT< reco::PFClusterCollection > pfCLusTagPSLabel_
Definition: GoodSeedProducer.cc:147
GoodSeedProducer::clusThreshold_
double clusThreshold_
Cut on the energy of the clusters.
Definition: GoodSeedProducer.cc:124
pos
Definition: PixelAliasList.h:18
edm::LogInfo
Definition: MessageLogger.h:254
GoodSeedProducer::producePreId_
bool producePreId_
Produce the pre-id debugging collection.
Definition: GoodSeedProducer.cc:137
TransientRecHitRecord
Definition: TransientRecHitRecord.h:14
GoodSeedProducer::thr
float thr[150]
vector of thresholds for different bins of eta and pt
Definition: GoodSeedProducer.cc:143
GoodSeedProducer::conf_
edm::ParameterSet conf_
Definition: GoodSeedProducer.cc:146
GoodSeedProducer::tracksContainers_
std::vector< edm::EDGetTokenT< reco::TrackCollection > > tracksContainers_
Definition: GoodSeedProducer.cc:151
GoodSeedProducer::smootherName_
std::string smootherName_
Definition: GoodSeedProducer.cc:154
GoodSeedProducer::minEoverP_
double minEoverP_
Definition: GoodSeedProducer.cc:120
GoodSeedProducer::EcalStripSumE_deltaPhiOverQ_minValue_
double EcalStripSumE_deltaPhiOverQ_minValue_
Definition: GoodSeedProducer.cc:118
GoodSeedProducer::EcalStripSumE_deltaPhiOverQ_maxValue_
double EcalStripSumE_deltaPhiOverQ_maxValue_
Definition: GoodSeedProducer.cc:119
GoodSeedProducer::maxEta_
double maxEta_
Definition: GoodSeedProducer.cc:113
TrajectoryMeasurement::updatedState
TrajectoryStateOnSurface const & updatedState() const
Definition: TrajectoryMeasurement.h:184
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
GoodSeedProducer::maxEp_
double maxEp_
Definition: GoodSeedProducer.cc:128
DDAxes::x
XYZTLorentzVector
math::XYZTLorentzVector XYZTLorentzVector
Definition: RawParticle.h:25
GlobalVector
Global3DVector GlobalVector
Definition: GlobalVector.h:10
Basic3DVector::eta
T eta() const
Definition: extBasic3DVector.h:146
reco::PreId
Definition: PreId.h:13
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
edm::Handle
Definition: AssociativeIterator.h:50
GoodSeedProducer::preidgsf_
std::string preidgsf_
Name of the Seed(Gsf) Collection.
Definition: GoodSeedProducer.cc:96
GoodSeedProducer::chired
float chired
Definition: GoodSeedProducer.cc:166
BaseParticlePropagator
Definition: BaseParticlePropagator.h:82
GoodSeedProducer::useQuality_
bool useQuality_
TRACK QUALITY.
Definition: GoodSeedProducer.cc:162
edm::Ref< TrackCollection >
GoodSeedProducer::HcalIsolWindow_
double HcalIsolWindow_
Definition: GoodSeedProducer.cc:115
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
edm::FileInPath
Definition: FileInPath.h:64
TrajectoryFitter::clone
virtual std::unique_ptr< TrajectoryFitter > clone() const =0
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
reco::ElectronSeed
Definition: ElectronSeed.h:51
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
GoodSeedProducer::getBin
int getBin(float, float)
Find the bin in pt and eta.
Definition: GoodSeedProducer.cc:626
GoodSeedProducer::nhit
float nhit
VARIABLES NEEDED FOR TMVA.
Definition: GoodSeedProducer.cc:166
vars
vars
Definition: DeepTauId.cc:163
PVValHelper::eta
Definition: PVValidationHelpers.h:69
GoodSeedProducer::produceCkfseed_
bool produceCkfseed_
Produce the Seed for Ckf tracks?
Definition: GoodSeedProducer.cc:131
contentValuesCheck.values
values
Definition: contentValuesCheck.py:38
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
DDAxes::z
GoodSeedProducer::useTmva_
bool useTmva_
USE OF TMVA.
Definition: GoodSeedProducer.cc:171
edm::ESHandle< MagneticField >
GoodSeedProducer::resMapPhiECAL_
std::unique_ptr< PFResolutionMap > resMapPhiECAL_
Definition: GoodSeedProducer.cc:159
TrajectoryFitterRecord
Definition: TrajectoryFitterRecord.h:12
GoodSeedProducer::maxHoverP_
double maxHoverP_
Definition: GoodSeedProducer.cc:121
GlobalTrajectoryParameters
Definition: GlobalTrajectoryParameters.h:15
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Point3DBase< float, GlobalTag >
reco::PreId::setECALMatching
void setECALMatching(bool accepted, unsigned n=0)
Definition: PreId.h:60
l1t::PFClusterRef
edm::Ref< l1t::PFClusterCollection > PFClusterRef
Definition: PFCluster.h:74
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Trajectory::ConstRecHitContainer
TrackingRecHit::ConstRecHitContainer ConstRecHitContainer
Definition: Trajectory.h:41
GoodSeedProducer::B_
math::XYZVector B_
B field.
Definition: GoodSeedProducer.cc:174
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition: FastTrackerRecHitMaskProducer_cfi.py:8
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
runTauDisplay.gp
gp
Definition: runTauDisplay.py:431
GoodSeedProducer::disablePreId_
bool disablePreId_
switch to disable the pre-id
Definition: GoodSeedProducer.cc:134
JetMETHLTOfflineSource_cfi.feta
feta
Definition: JetMETHLTOfflineSource_cfi.py:30
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
GoodSeedProducer::nHitsInSeed_
int nHitsInSeed_
Number of hits in the seed;.
Definition: GoodSeedProducer.cc:108
Trajectory::lastMeasurement
TrajectoryMeasurement const & lastMeasurement() const
Definition: Trajectory.h:150
trigObjTnPSource_cfi.filler
filler
Definition: trigObjTnPSource_cfi.py:21
GoodSeedProducer::fitterName_
std::string fitterName_
Definition: GoodSeedProducer.cc:153
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
mag2
T mag2() const
The vector magnitude squared. Equivalent to vec.dot(vec)
Definition: Basic3DVectorLD.h:124
GoodSeedProducer::pfTransformer_
std::unique_ptr< PFTrackTransformer > pfTransformer_
PFTrackTransformer.
Definition: GoodSeedProducer.cc:105
get
#define get
reco::PreId::setTrack
void setTrack(reco::TrackRef trackref)
Definition: PreId.h:31
GoodSeedProducer::EcalStripSumE_minClusEnergy_
double EcalStripSumE_minClusEnergy_
Definition: GoodSeedProducer.cc:116
unit
Basic3DVector unit() const
Definition: Basic3DVectorLD.h:162
GoodSeedProducer::pfCLusTagHCLabel_
edm::EDGetTokenT< reco::PFClusterCollection > pfCLusTagHCLabel_
Definition: GoodSeedProducer.cc:149
GoodSeedProducer::chikfred
float chikfred
Definition: GoodSeedProducer.cc:167
GoodSeedProducer::minEp_
double minEp_
Min and MAx allowed values forEoverP.
Definition: GoodSeedProducer.cc:127
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
TrajectoryStateOnSurface::globalMomentum
GlobalVector globalMomentum() const
Definition: TrajectoryStateOnSurface.h:66
EE
Definition: GlobalHaloAlgo.cc:15
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::OrphanHandle
Definition: EDProductfwd.h:39
GoodSeedProducer::preidckf_
std::string preidckf_
Name of the Seed(Ckf) Collection.
Definition: GoodSeedProducer.cc:93
Trajectory::firstMeasurement
TrajectoryMeasurement const & firstMeasurement() const
Definition: Trajectory.h:166
GoodSeedProducer::pfCLusTagECLabel_
edm::EDGetTokenT< reco::PFClusterCollection > pfCLusTagECLabel_
Definition: GoodSeedProducer.cc:148
qcdUeDQM_cfi.quality
quality
Definition: qcdUeDQM_cfi.py:31
GoodSeedProducer::dpt
float dpt
Definition: GoodSeedProducer.cc:166
Trajectory
Definition: Trajectory.h:38
GoodSeedProducer::trajContainers_
std::vector< edm::EDGetTokenT< std::vector< Trajectory > > > trajContainers_
Definition: GoodSeedProducer.cc:150
edm::ValueMap
Definition: ValueMap.h:107
flavorHistoryFilter_cfi.dr
dr
Definition: flavorHistoryFilter_cfi.py:37
GoodSeedProducer::hitCloner
TkClonerImpl hitCloner
Definition: GoodSeedProducer.cc:102
GoodSeedProducer::trackQuality_
reco::TrackBase::TrackQuality trackQuality_
Definition: GoodSeedProducer.cc:163
GoodSeedProducer::trackerRecHitBuilderName_
std::string trackerRecHitBuilderName_
Definition: GoodSeedProducer.cc:156
math::XYZVectorF
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float > > XYZVectorF
spatial vector with cartesian internal representation
Definition: Vector3D.h:16
GoodSeedProducer::trk_ecalDphi
float trk_ecalDphi
Definition: GoodSeedProducer.cc:167
reco::PreId::setFinalDecision
void setFinalDecision(bool accepted, unsigned n=0)
Definition: PreId.h:59
GoodSeedProducer::refMap_
std::map< reco::TrackRef, unsigned > refMap_
Map used to create the TrackRef, PreIdRef value map.
Definition: GoodSeedProducer.cc:177
triggerMatcherToHLTDebug_cfi.tags
tags
Definition: triggerMatcherToHLTDebug_cfi.py:9
Pi
const double Pi
Definition: CosmicMuonParameters.h:18
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
GoodSeedProducer::chiRatio
float chiRatio
Definition: GoodSeedProducer.cc:166
GoodSeedProducer::trk_ecalDeta
float trk_ecalDeta
Definition: GoodSeedProducer.cc:167
edm::helper::Filler
Definition: ValueMap.h:22
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
GoodSeedProducer::fillPreIdRefValueMap
void fillPreIdRefValueMap(edm::Handle< reco::TrackCollection > tkhandle, const edm::OrphanHandle< reco::PreIdCollection > &, edm::ValueMap< reco::PreIdRef >::Filler &filler)
Definition: GoodSeedProducer.cc:650
GoodSeedProducer::minPt_
double minPt_
Minimum transverse momentum and maximum pseudorapidity.
Definition: GoodSeedProducer.cc:111
reco::PreId::setTrackProperties
void setTrackProperties(float newchi2, float chi2ratio, float dpt)
Definition: PreId.h:53
GoodSeedProducer::preidname_
std::string preidname_
Name of the preid Collection (FB)
Definition: GoodSeedProducer.cc:99
reco::PreId::setECALMatchingProperties
void setECALMatchingProperties(PFClusterRef clusterRef, const math::XYZPoint &ecalpos, const math::XYZPoint &meanShower, float deta, float dphi, float chieta, float chiphi, float chi2, float eop)
Definition: PreId.h:33
GoodSeedProducer::Min_dr_
double Min_dr_
Definition: GoodSeedProducer.cc:168
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
edm::InputTag
Definition: InputTag.h:15
reco::PreId::setTrackFiltering
void setTrackFiltering(bool accepted, unsigned n=0)
Definition: PreId.h:62
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
PV3DBase::perp2
T perp2() const
Definition: PV3DBase.h:68
Trajectory::isValid
bool isValid() const
Definition: Trajectory.h:257
hit
Definition: SiStripHitEffFromCalibTree.cc:88
GoodSeedProducer::EcalStripSumE_deltaEta_
double EcalStripSumE_deltaEta_
Definition: GoodSeedProducer.cc:117
GoodSeedProducer::PtThresholdSavePredId_
double PtThresholdSavePredId_
Threshold to save Pre Idinfo.
Definition: GoodSeedProducer.cc:140