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 hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () 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_FULL_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, vertices_cff::ntracks, 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_FULL_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:428
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
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
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
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
vertices_cff.ntracks
ntracks
Definition: vertices_cff.py:34
GlobalVector
Global3DVector GlobalVector
Definition: GlobalVector.h:10
HLT_FULL_cff.magneticField
magneticField
Definition: HLT_FULL_cff.py:348
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:80
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:159
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:223
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
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
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
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:29
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