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
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
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_
 
const edm::ESGetToken< TrajectoryFitter, TrajectoryFitter::RecordfitterToken_
 
double HcalIsolWindow_
 
TkClonerImpl hitCloner
 
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecordmagneticFieldToken_
 
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecordmagneticFieldTokenBeginRun_
 
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_
 
const edm::ESGetToken< TrajectorySmoother, TrajectoryFitter::RecordsmootherToken_
 
float thr [150]
 vector of thresholds for different bins of eta and pt More...
 
std::string trackerRecHitBuilderName_
 
const edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecordtrackerRecHitBuilderToken_
 
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 > >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::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 242 of file GoodSeedProducer.cc.

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_, pixelTrack::qualityByName(), smootherName_, AlCaHLTBitMon_QueryRunRegistry::string, triggerMatcherToHLTDebug_cfi::tags, trackerRecHitBuilderName_, trackQuality_, tracksContainers_, trajContainers_, useQuality_, and useTmva_.

243  : pfTransformer_(nullptr),
244  conf_(iConfig),
245  resMapEtaECAL_(nullptr),
246  resMapPhiECAL_(nullptr),
247  fitterToken_(esConsumes(edm::ESInputTag("", iConfig.getParameter<string>("Fitter")))),
248  smootherToken_(esConsumes(edm::ESInputTag("", iConfig.getParameter<string>("Smoother")))),
251  magneticFieldTokenBeginRun_(esConsumes<edm::Transition::BeginRun>()) {
252  LogInfo("GoodSeedProducer") << "Electron PreIdentification started ";
253 
254  //now do what ever initialization is needed
255  std::vector<edm::InputTag> tags = iConfig.getParameter<vector<InputTag>>("TkColList");
256  for (unsigned int i = 0; i < tags.size(); ++i) {
257  trajContainers_.push_back(consumes<vector<Trajectory>>(tags[i]));
258  tracksContainers_.push_back(consumes<reco::TrackCollection>(tags[i]));
259  }
260 
261  minPt_ = iConfig.getParameter<double>("MinPt");
262  maxPt_ = iConfig.getParameter<double>("MaxPt");
263  maxEta_ = iConfig.getParameter<double>("MaxEta");
264 
265  HcalIsolWindow_ = iConfig.getParameter<double>("HcalWindow");
266  EcalStripSumE_minClusEnergy_ = iConfig.getParameter<double>("EcalStripSumE_minClusEnergy");
267  EcalStripSumE_deltaEta_ = iConfig.getParameter<double>("EcalStripSumE_deltaEta");
268  EcalStripSumE_deltaPhiOverQ_minValue_ = iConfig.getParameter<double>("EcalStripSumE_deltaPhiOverQ_minValue");
269  EcalStripSumE_deltaPhiOverQ_maxValue_ = iConfig.getParameter<double>("EcalStripSumE_deltaPhiOverQ_maxValue");
270  minEoverP_ = iConfig.getParameter<double>("EOverPLead_minValue");
271  maxHoverP_ = iConfig.getParameter<double>("HOverPLead_maxValue");
272 
273  pfCLusTagECLabel_ = consumes<reco::PFClusterCollection>(iConfig.getParameter<InputTag>("PFEcalClusterLabel"));
274 
275  pfCLusTagHCLabel_ = consumes<reco::PFClusterCollection>(iConfig.getParameter<InputTag>("PFHcalClusterLabel"));
276 
277  pfCLusTagPSLabel_ = consumes<reco::PFClusterCollection>(iConfig.getParameter<InputTag>("PFPSClusterLabel"));
278 
279  preidgsf_ = iConfig.getParameter<string>("PreGsfLabel");
280  preidckf_ = iConfig.getParameter<string>("PreCkfLabel");
281  preidname_ = iConfig.getParameter<string>("PreIdLabel");
282 
283  fitterName_ = iConfig.getParameter<string>("Fitter");
284  smootherName_ = iConfig.getParameter<string>("Smoother");
285 
286  nHitsInSeed_ = iConfig.getParameter<int>("NHitsInSeed");
287 
288  clusThreshold_ = iConfig.getParameter<double>("ClusterThreshold");
289 
290  minEp_ = iConfig.getParameter<double>("MinEOverP");
291  maxEp_ = iConfig.getParameter<double>("MaxEOverP");
292 
293  //collection to produce
294  produceCkfseed_ = iConfig.getUntrackedParameter<bool>("ProduceCkfSeed", false);
295 
296  // to disable the electron part (for HI collisions for examples)
297  disablePreId_ = iConfig.getUntrackedParameter<bool>("DisablePreId", false);
298 
299  producePreId_ = iConfig.getUntrackedParameter<bool>("ProducePreId", true);
300  // if no electron, cannot produce the preid
301  if (disablePreId_)
302  producePreId_ = false;
303  PtThresholdSavePredId_ = iConfig.getUntrackedParameter<double>("PtThresholdSavePreId", 1.);
304 
305  LogDebug("GoodSeedProducer") << "Seeds for GSF will be produced ";
306 
307  // no disablePreId_ switch here. The collection will be empty if it is true
308  produces<ElectronSeedCollection>(preidgsf_);
309 
310  if (produceCkfseed_) {
311  LogDebug("GoodSeedProducer") << "Seeds for CKF will be produced ";
312  produces<TrajectorySeedCollection>(preidckf_);
313  }
314 
315  if (producePreId_) {
316  LogDebug("GoodSeedProducer") << "PreId debugging information will be produced ";
317 
318  produces<PreIdCollection>(preidname_);
319  if (tracksContainers_.size() == 1) // do not make a value map if more than one input track collection
321  }
322 
323  useQuality_ = iConfig.getParameter<bool>("UseQuality");
325 
326  useTmva_ = iConfig.getUntrackedParameter<bool>("UseTMVA", false);
327 
328  Min_dr_ = iConfig.getParameter<double>("Min_dr");
329 
330  trackerRecHitBuilderName_ = iConfig.getParameter<std::string>("TTRHBuilder");
331 }
int nHitsInSeed_
Number of hits in the seed;.
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldToken_
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
std::string preidckf_
Name of the Seed(Ckf) Collection.
Quality qualityByName(std::string const &name)
edm::EDGetTokenT< reco::PFClusterCollection > pfCLusTagPSLabel_
std::unique_ptr< PFResolutionMap > resMapEtaECAL_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldTokenBeginRun_
double EcalStripSumE_minClusEnergy_
T getUntrackedParameter(std::string const &, T const &) const
edm::ParameterSet conf_
double EcalStripSumE_deltaPhiOverQ_minValue_
double EcalStripSumE_deltaPhiOverQ_maxValue_
std::string preidname_
Name of the preid Collection (FB)
bool useQuality_
TRACK QUALITY.
std::vector< edm::EDGetTokenT< reco::TrackCollection > > tracksContainers_
double minPt_
Minimum transverse momentum and maximum pseudorapidity.
std::string fitterName_
bool disablePreId_
switch to disable the pre-id
reco::TrackBase::TrackQuality trackQuality_
double clusThreshold_
Cut on the energy of the clusters.
Log< level::Info, false > LogInfo
bool produceCkfseed_
Produce the Seed for Ckf tracks?
const edm::ESGetToken< TrajectorySmoother, TrajectoryFitter::Record > smootherToken_
bool useTmva_
USE OF TMVA.
std::unique_ptr< PFResolutionMap > resMapPhiECAL_
const edm::ESGetToken< TrajectoryFitter, TrajectoryFitter::Record > fitterToken_
bool producePreId_
Produce the pre-id debugging collection.
std::unique_ptr< PFTrackTransformer > pfTransformer_
PFTrackTransformer.
std::string trackerRecHitBuilderName_
std::string smootherName_
edm::EDGetTokenT< reco::PFClusterCollection > pfCLusTagHCLabel_
const edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > trackerRecHitBuilderToken_
std::string preidgsf_
Name of the Seed(Gsf) Collection.
edm::EDGetTokenT< reco::PFClusterCollection > pfCLusTagECLabel_
double minEp_
Min and MAx allowed values forEoverP.
std::vector< edm::EDGetTokenT< std::vector< Trajectory > > > trajContainers_
double PtThresholdSavePredId_
Threshold to save Pre Idinfo.
#define LogDebug(id)

Member Function Documentation

◆ beginRun()

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

Definition at line 668 of file GoodSeedProducer.cc.

References edm::FileInPath::fullPath(), edm::EventSetup::getData(), ALPAKA_ACCELERATOR_NAMESPACE::ecal::reconstruction::internal::endcap::iy(), and HLT_2024v14_cff::magneticField.

668  {
669  //Magnetic Field
671  B_ = magneticField->inTesla(GlobalPoint(0, 0, 0));
672 
673  pfTransformer_ = std::make_unique<PFTrackTransformer>(B_);
674  pfTransformer_->OnlyProp();
675 
676  //Resolution maps
677  FileInPath ecalEtaMap(conf_.getParameter<string>("EtaMap"));
678  FileInPath ecalPhiMap(conf_.getParameter<string>("PhiMap"));
679  resMapEtaECAL_ = std::make_unique<PFResolutionMap>("ECAL_eta", ecalEtaMap.fullPath().c_str());
680  resMapPhiECAL_ = std::make_unique<PFResolutionMap>("ECAL_phi", ecalPhiMap.fullPath().c_str());
681 
682  //read threshold
683  FileInPath parFile(conf_.getParameter<string>("ThresholdFile"));
684  ifstream ifs(parFile.fullPath().c_str());
685  for (int iy = 0; iy < 81; ++iy)
686  ifs >> thr[iy];
687 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
std::unique_ptr< PFResolutionMap > resMapEtaECAL_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldTokenBeginRun_
float thr[150]
vector of thresholds for different bins of eta and pt
edm::ParameterSet conf_
math::XYZVector B_
B field.
std::unique_ptr< PFResolutionMap > resMapPhiECAL_
std::unique_ptr< PFTrackTransformer > pfTransformer_
PFTrackTransformer.
ALPAKA_FN_ACC ALPAKA_FN_INLINE uint32_t iy(uint32_t id)

◆ fillDescriptions()

void GoodSeedProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 191 of file GoodSeedProducer.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, ProducerED_cfi::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

191  {
193  desc.add<double>("MaxEOverP", 3.0);
194  desc.add<std::string>("Smoother", "GsfTrajectorySmoother_forPreId");
195  desc.add<bool>("UseQuality", true);
196  desc.add<edm::InputTag>("PFPSClusterLabel", {"particleFlowClusterPS"});
197  desc.add<std::string>("ThresholdFile", "RecoParticleFlow/PFTracking/data/Threshold.dat");
198  desc.add<std::string>("TMVAMethod", "BDT");
199  desc.add<double>("MaxEta", 2.4);
200  desc.add<std::string>("EtaMap", "RecoParticleFlow/PFBlockProducer/data/resmap_ECAL_eta.dat");
201  desc.add<std::string>("PhiMap", "RecoParticleFlow/PFBlockProducer/data/resmap_ECAL_phi.dat");
202  desc.add<std::string>("PreCkfLabel", "SeedsForCkf");
203  desc.add<int>("NHitsInSeed", 3);
204  desc.add<std::string>("Fitter", "GsfTrajectoryFitter_forPreId");
205  desc.add<std::string>("TTRHBuilder", "WithAngleAndTemplate");
206  desc.add<std::string>("PreGsfLabel", "SeedsForGsf");
207  desc.add<double>("MinEOverP", 0.3);
208  desc.add<std::string>("Weights1", "RecoParticleFlow/PFTracking/data/MVA_BDTTrackDrivenSeed_cat1.xml");
209  desc.add<std::string>("Weights2", "RecoParticleFlow/PFTracking/data/MVA_BDTTrackDrivenSeed_cat2.xml");
210  desc.add<std::string>("Weights3", "RecoParticleFlow/PFTracking/data/MVA_BDTTrackDrivenSeed_cat3.xml");
211  desc.add<std::string>("Weights4", "RecoParticleFlow/PFTracking/data/MVA_BDTTrackDrivenSeed_cat4.xml");
212  desc.add<std::string>("Weights5", "RecoParticleFlow/PFTracking/data/MVA_BDTTrackDrivenSeed_cat5.xml");
213  desc.add<std::string>("Weights6", "RecoParticleFlow/PFTracking/data/MVA_BDTTrackDrivenSeed_cat6.xml");
214  desc.add<std::string>("Weights7", "RecoParticleFlow/PFTracking/data/MVA_BDTTrackDrivenSeed_cat7.xml");
215  desc.add<std::string>("Weights8", "RecoParticleFlow/PFTracking/data/MVA_BDTTrackDrivenSeed_cat8.xml");
216  desc.add<std::string>("Weights9", "RecoParticleFlow/PFTracking/data/MVA_BDTTrackDrivenSeed_cat9.xml");
217  desc.add<edm::InputTag>("PFEcalClusterLabel", {"particleFlowClusterECAL"});
218  desc.add<edm::InputTag>("PFHcalClusterLabel", {"particleFlowClusterHCAL"}),
219  desc.add<std::string>("PSThresholdFile", "RecoParticleFlow/PFTracking/data/PSThreshold.dat");
220  desc.add<double>("MinPt", 2.0);
221  desc.add<std::vector<edm::InputTag>>("TkColList", {edm::InputTag("generalTracks")});
222  desc.addUntracked<bool>("UseTMVA", true);
223  desc.add<std::string>("TrackQuality", "highPurity");
224  desc.add<double>("MaxPt", 50.0);
225  desc.add<bool>("ApplyIsolation", false);
226  desc.add<double>("EcalStripSumE_deltaPhiOverQ_minValue", -0.1);
227  desc.add<double>("EcalStripSumE_minClusEnergy", 0.1);
228  desc.add<double>("EcalStripSumE_deltaEta", 0.03);
229  desc.add<double>("EcalStripSumE_deltaPhiOverQ_maxValue", 0.5);
230  desc.add<double>("EOverPLead_minValue", 0.95);
231  desc.add<double>("HOverPLead_maxValue", 0.05);
232  desc.add<double>("HcalWindow", 0.184);
233  desc.add<double>("ClusterThreshold", 0.5);
234  desc.add<bool>("UsePreShower", false);
235  desc.add<std::string>("PreIdLabel", "preid");
236  desc.addUntracked<bool>("ProducePreId", true);
237  desc.addUntracked<double>("PtThresholdSavePreId", 1.0);
238  desc.add<double>("Min_dr", 0.2);
239  descriptions.addWithDefaultLabel(desc);
240 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)

◆ 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 713 of file GoodSeedProducer.cc.

References trigObjTnPSource_cfi::filler, vertices_cff::ntracks, DiMuonV_cfg::tracks, and contentValuesCheck::values.

715  {
716  std::vector<reco::PreIdRef> values;
717 
718  unsigned ntracks = tracks->size();
719  for (unsigned itrack = 0; itrack < ntracks; ++itrack) {
720  reco::TrackRef theTrackRef(tracks, itrack);
721  std::map<reco::TrackRef, unsigned>::const_iterator itcheck = refMap_.find(theTrackRef);
722  if (itcheck == refMap_.end()) {
723  // the track has been early discarded
724  values.push_back(reco::PreIdRef());
725  } else {
726  edm::Ref<reco::PreIdCollection> preIdRef(preidhandle, itcheck->second);
727  values.push_back(preIdRef);
728  // std::cout << " Checking Refs " << (theTrackRef==preIdRef->trackRef()) << std::endl;
729  }
730  }
731  filler.insert(tracks, values.begin(), values.end());
732 }
std::map< reco::TrackRef, unsigned > refMap_
Map used to create the TrackRef, PreIdRef value map.

◆ getBin()

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

Find the bin in pt and eta.

Definition at line 689 of file GoodSeedProducer.cc.

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

689  {
690  int ie = 0;
691  int ip = 0;
692  if (fabs(eta) < 0.8)
693  ie = 0;
694  else {
695  if (fabs(eta) < 1.479)
696  ie = 1;
697  else
698  ie = 2;
699  }
700  if (pt < 6)
701  ip = 0;
702  else {
703  if (pt < 12)
704  ip = 1;
705  else
706  ip = 2;
707  }
708  int iep = ie * 3 + ip;
709  LogDebug("GoodSeedProducer") << "Track pt =" << pt << " eta=" << eta << " bin=" << iep;
710  return iep;
711 }
#define LogDebug(id)

◆ 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 338 of file GoodSeedProducer.cc.

References funct::abs(), ALCARECOTkAlJpsiMuMu_cff::charge, Trajectory::chiSquared(), runTheMatrix::const, ALPAKA_ACCELERATOR_NAMESPACE::brokenline::constexpr(), l1ctLayer1_cff::dr, EE, PVValHelper::eta, Basic3DVector< T >::eta(), f, JetMETHLTOfflineSource_cfi::feta, Trajectory::firstMeasurement(), nano_mu_digi_cff::float, getBin(), edm::EventSetup::getData(), TrajectoryStateOnSurface::globalMomentum(), runTauDisplay::gp, mps_fire::i, iEvent, createfilelist::int, Trajectory::isValid(), Trajectory::lastMeasurement(), LogDebug, mag2(), HLT_2024v14_cff::magneticField, eostools::move(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::perp2(), Pi, funct::pow(), edm::Handle< T >::product(), BaseParticlePropagator::propagateToEcalEntrance(), DiDispStaMuonMonitor_cfi::pt, reco::PreId::pt(), quality, FastTrackerRecHitMaskProducer_cfi::recHits, reco::ElectronSeed::setCtfTrack(), reco::PreId::setECALMatching(), reco::PreId::setECALMatchingProperties(), reco::PreId::setFinalDecision(), reco::PreId::setMVA(), reco::PreId::setTrack(), reco::PreId::setTrackFiltering(), reco::PreId::setTrackProperties(), mathSSE::sqrt(), createJobs::tmp, TwoPi, unit(), TrajectoryMeasurement::updatedState(), x, PV3DBase< T, PVType, FrameType >::x(), detailsBasic3DVector::y, PV3DBase< T, PVType, FrameType >::y(), detailsBasic3DVector::z, PV3DBase< T, PVType, FrameType >::z(), and RawParticle::z().

338  {
339  LogDebug("GoodSeedProducer") << "START event: " << iEvent.id().event() << " in run " << iEvent.id().run();
340  //Create empty output collections
341  auto output_preid = std::make_unique<ElectronSeedCollection>();
342  auto output_nopre = std::make_unique<TrajectorySeedCollection>();
343  auto output_preidinfo = std::make_unique<PreIdCollection>();
344  auto preIdMap_p = std::make_unique<edm::ValueMap<reco::PreIdRef>>();
345  edm::ValueMap<reco::PreIdRef>::Filler mapFiller(*preIdMap_p);
346 
347  std::unique_ptr<TrajectoryFitter> fitter;
348  std::unique_ptr<TrajectorySmoother> smoother;
349 
350  //Tracking Tools
351  if (!disablePreId_) {
352  auto const& aFitter = &iSetup.getData(fitterToken_);
353  auto const& aSmoother = &iSetup.getData(smootherToken_);
354 
355  smoother.reset(aSmoother->clone());
356  fitter = aFitter->clone();
357  auto const& theTrackerRecHitBuilder = &iSetup.getData(trackerRecHitBuilderToken_);
358  hitCloner = static_cast<TkTransientTrackingRecHitBuilder const*>(theTrackerRecHitBuilder)->cloner();
359  fitter->setHitCloner(&hitCloner);
360  smoother->setHitCloner(&hitCloner);
361  }
362 
363  // clear temporary maps
364  refMap_.clear();
365 
366  //Magnetic Field
367  auto const& magneticField = &iSetup.getData(magneticFieldToken_);
368 
369  //Handle input collections
370  //ECAL clusters
371  Handle<PFClusterCollection> theECPfClustCollection;
372  iEvent.getByToken(pfCLusTagECLabel_, theECPfClustCollection);
373 
374  vector<PFCluster const*> basClus;
375  for (auto const& klus : *theECPfClustCollection.product()) {
376  if (klus.correctedEnergy() > clusThreshold_)
377  basClus.push_back(&klus);
378  }
379 
380  //HCAL clusters
381  Handle<PFClusterCollection> theHCPfClustCollection;
382  iEvent.getByToken(pfCLusTagHCLabel_, theHCPfClustCollection);
383 
384  //PS clusters
385  Handle<PFClusterCollection> thePSPfClustCollection;
386  iEvent.getByToken(pfCLusTagPSLabel_, thePSPfClustCollection);
387 
388  //Vector of track collections
389  for (unsigned int istr = 0; istr < tracksContainers_.size(); ++istr) {
390  //Track collection
391  Handle<TrackCollection> tkRefCollection;
392  iEvent.getByToken(tracksContainers_[istr], tkRefCollection);
393  const TrackCollection& Tk = *(tkRefCollection.product());
394 
395  LogDebug("GoodSeedProducer") << "Number of tracks in collection "
396  << "tracksContainers_[" << istr << "] to be analyzed " << Tk.size();
397 
398  //loop over the track collection
399  for (unsigned int i = 0; i < Tk.size(); ++i) {
400  if (useQuality_ && (!(Tk[i].quality(trackQuality_))))
401  continue;
402 
403  reco::PreId myPreId;
404  bool GoodPreId = false;
405 
406  TrackRef trackRef(tkRefCollection, i);
407  math::XYZVectorF tkmom(Tk[i].momentum());
408  auto tketa = tkmom.eta();
409  auto tkpt = std::sqrt(tkmom.perp2());
410  auto const& Seed = (*trackRef->seedRef());
411 
412  if (!disablePreId_) {
413  int ipteta = getBin(Tk[i].eta(), Tk[i].pt());
414  int ibin = ipteta * 9;
415 
416  // FIXME the original code was buggy should be outerMomentum...
417  float oPTOB = 1.f / std::sqrt(Tk[i].innerMomentum().mag2());
418  // float chikfred=Tk[i].normalizedChi2();
419  float nchi = Tk[i].normalizedChi2();
420 
421  int nhitpi = Tk[i].found();
422  float EP = 0;
423 
424  // set track info
425  myPreId.setTrack(trackRef);
426  //CLUSTERS - TRACK matching
427 
428  auto pfmass = 0.0005;
429  auto pfoutenergy = sqrt((pfmass * pfmass) + Tk[i].outerMomentum().Mag2());
430 
432  Tk[i].outerMomentum().x(), Tk[i].outerMomentum().y(), Tk[i].outerMomentum().z(), pfoutenergy);
434  XYZTLorentzVector(Tk[i].outerPosition().x(), Tk[i].outerPosition().y(), Tk[i].outerPosition().z(), 0.);
435 
436  BaseParticlePropagator theOutParticle(RawParticle(mom, pos, Tk[i].charge()), 0, 0, B_.z());
437 
438  theOutParticle.propagateToEcalEntrance(false);
439 
440  float toteta = 1000.f;
441  float totphi = 1000.f;
442  float dr = 1000.f;
443  float EE = 0.f;
444  float feta = 0.f;
445  GlobalPoint ElecTrkEcalPos(0, 0, 0);
446 
447  PFClusterRef clusterRef;
448  math::XYZPoint meanShowerSaved;
449  if (theOutParticle.getSuccess() != 0) {
450  ElecTrkEcalPos = GlobalPoint(theOutParticle.particle().vertex().x(),
451  theOutParticle.particle().vertex().y(),
452  theOutParticle.particle().vertex().z());
453 
454  constexpr float psLim = 2.50746495928f; // std::sinh(1.65f);
455  bool isBelowPS = (ElecTrkEcalPos.z() * ElecTrkEcalPos.z()) > (psLim * psLim) * ElecTrkEcalPos.perp2();
456  // bool isBelowPS=(std::abs(ElecTrkEcalPos.eta())>1.65f);
457 
458  unsigned clusCounter = 0;
459  float max_ee = 0;
460  for (auto aClus : basClus) {
461  float tmp_ep = float(aClus->correctedEnergy()) * oPTOB;
462  if ((tmp_ep < minEp_) | (tmp_ep > maxEp_)) {
463  ++clusCounter;
464  continue;
465  }
466 
467  double ecalShowerDepth = PFCluster::getDepthCorrection(aClus->correctedEnergy(), isBelowPS, false);
468  auto mom = theOutParticle.particle().momentum().Vect();
469  auto meanShower = ElecTrkEcalPos + GlobalVector(mom.x(), mom.y(), mom.z()).unit() * ecalShowerDepth;
470 
471  float etarec = meanShower.eta();
472  float phirec = meanShower.phi();
473 
474  float tmp_phi = std::abs(aClus->positionREP().phi() - phirec);
475  if (tmp_phi > float(TMath::Pi()))
476  tmp_phi -= float(TMath::TwoPi());
477 
478  float tmp_dr = std::sqrt(std::pow(tmp_phi, 2.f) + std::pow(aClus->positionREP().eta() - etarec, 2.f));
479 
480  if (tmp_dr < dr) {
481  dr = tmp_dr;
482  if (dr < Min_dr_) { // find the most closest and energetic ECAL cluster
483  if (aClus->correctedEnergy() > max_ee) {
484  toteta = aClus->positionREP().eta() - etarec;
485  totphi = tmp_phi;
486  EP = tmp_ep;
487  EE = aClus->correctedEnergy();
488  feta = aClus->positionREP().eta();
489  clusterRef = PFClusterRef(theECPfClustCollection, clusCounter);
490  meanShowerSaved = meanShower;
491  }
492  }
493  }
494  ++clusCounter;
495  }
496  }
497  float trk_ecalDeta_ = fabs(toteta);
498  float trk_ecalDphi_ = fabs(totphi);
499 
500  //Resolution maps
501  auto ecaletares = resMapEtaECAL_->GetBinContent(resMapEtaECAL_->FindBin(feta, EE));
502  auto ecalphires = resMapPhiECAL_->GetBinContent(resMapPhiECAL_->FindBin(feta, EE));
503 
504  //geomatrical compatibility
505  float chieta = (toteta != 1000.f) ? toteta / ecaletares : toteta;
506  float chiphi = (totphi != 1000.f) ? totphi / ecalphires : totphi;
507  float chichi = sqrt(chieta * chieta + chiphi * chiphi);
508 
509  //Matching criteria
510  float eta_cut = thr[ibin + 0];
511  float phi_cut = thr[ibin + 1];
512  float ep_cutmin = thr[ibin + 2];
513  bool GoodMatching =
514  ((trk_ecalDeta_ < eta_cut) && (trk_ecalDphi_ < phi_cut) && (EP > ep_cutmin) && (nhitpi > 10));
515 
516  bool EcalMatching = GoodMatching;
517 
518  if (tkpt > maxPt_)
519  GoodMatching = true;
520  if (tkpt < minPt_)
521  GoodMatching = false;
522 
523  math::XYZPoint myPoint(ElecTrkEcalPos.x(), ElecTrkEcalPos.y(), ElecTrkEcalPos.z());
525  clusterRef, myPoint, meanShowerSaved, std::abs(toteta), std::abs(totphi), chieta, chiphi, chichi, EP);
526  myPreId.setECALMatching(EcalMatching);
527 
528  bool GoodRange = ((std::abs(tketa) < maxEta_) & (tkpt > minPt_));
529  //KF FILTERING FOR UNMATCHED EVENTS
530  int hit1max = int(thr[ibin + 3]);
531  float chiredmin = thr[ibin + 4];
532  bool GoodKFFiltering = ((nchi > chiredmin) | (nhitpi < hit1max));
533 
534  myPreId.setTrackFiltering(GoodKFFiltering);
535 
536  bool GoodTkId = false;
537 
538  if ((!GoodMatching) && (GoodKFFiltering) && (GoodRange)) {
539  chired = 1000;
540  chiRatio = 1000;
541  dpt = 0;
542  nhit = nhitpi;
543  chikfred = nchi;
544  trk_ecalDeta = trk_ecalDeta_;
545  trk_ecalDphi = trk_ecalDphi_;
546 
548  for (auto const& hit : Tk[i].recHits())
549  tmp.push_back(hit->cloneSH());
550  auto const& theTrack = Tk[i];
551  GlobalVector gv(theTrack.innerMomentum().x(), theTrack.innerMomentum().y(), theTrack.innerMomentum().z());
552  GlobalPoint gp(theTrack.innerPosition().x(), theTrack.innerPosition().y(), theTrack.innerPosition().z());
553  GlobalTrajectoryParameters gtps(gp, gv, theTrack.charge(), &*magneticField);
554  TrajectoryStateOnSurface tsos(gtps, theTrack.innerStateCovariance(), *tmp[0]->surface());
555  Trajectory&& FitTjs = fitter->fitOne(Seed, tmp, tsos);
556 
557  if (FitTjs.isValid()) {
558  Trajectory&& SmooTjs = smoother->trajectory(FitTjs);
559  if (SmooTjs.isValid()) {
560  //Track refitted with electron hypothesis
561 
562  float pt_out = SmooTjs.firstMeasurement().updatedState().globalMomentum().perp();
563  float pt_in = SmooTjs.lastMeasurement().updatedState().globalMomentum().perp();
564  dpt = (pt_in > 0) ? fabs(pt_out - pt_in) / pt_in : 0.;
565  // the following is simply the number of degrees of freedom
566  chiRatio = SmooTjs.chiSquared() / Tk[i].chi2();
568  }
569  }
570 
571  //TMVA Analysis
572  if (useTmva_) {
573  float vars[10] = {nhit, chikfred, dpt, EP, chiRatio, chired, trk_ecalDeta, trk_ecalDphi, tkpt, tketa};
574 
575  float Ytmva = globalCache()->gbr[ipteta]->GetClassifier(vars);
576 
577  float BDTcut = thr[ibin + 5];
578  if (Ytmva > BDTcut)
579  GoodTkId = true;
580  myPreId.setMVA(GoodTkId, Ytmva);
582  } else {
583  float chiratiocut = thr[ibin + 6];
584  float gschicut = thr[ibin + 7];
585  float gsptmin = thr[ibin + 8];
586 
587  GoodTkId = ((dpt > gsptmin) & (chired < gschicut) & (chiRatio < chiratiocut));
588  }
589  }
590 
591  GoodPreId = GoodTkId | GoodMatching;
592 
593  myPreId.setFinalDecision(GoodPreId);
594 
595 #ifdef EDM_ML_DEBUG
596  if (GoodPreId)
597  LogDebug("GoodSeedProducer") << "Track (pt= " << Tk[i].pt() << "GeV/c, eta= " << Tk[i].eta()
598  << ") preidentified for agreement between track and ECAL cluster";
599  if (GoodPreId && (!GoodMatching))
600  LogDebug("GoodSeedProducer") << "Track (pt= " << Tk[i].pt() << "GeV/c, eta= " << Tk[i].eta()
601  << ") preidentified only for track properties";
602 #endif
603 
604  } // end of !disablePreId_
605 
606  if (GoodPreId) {
607  //NEW SEED with n hits
608  ElectronSeed NewSeed(Seed);
609  NewSeed.setCtfTrack(trackRef);
610  output_preid->push_back(NewSeed);
611  } else {
612  if (produceCkfseed_) {
613  output_nopre->push_back(Seed);
614  }
615  }
616  if (producePreId_ && myPreId.pt() > PtThresholdSavePredId_) {
617  // save the index of the PreId object as to be able to create a Ref later
618  refMap_[trackRef] = output_preidinfo->size();
619  output_preidinfo->push_back(myPreId);
620  }
621  } //end loop on track collection
622  } //end loop on the vector of track collections
623 
624  // no disablePreId_ switch, it is simpler to have an empty collection rather than no collection
625  iEvent.put(std::move(output_preid), preidgsf_);
626  if (produceCkfseed_)
627  iEvent.put(std::move(output_nopre), preidckf_);
628  if (producePreId_) {
629  const edm::OrphanHandle<reco::PreIdCollection> preIdRefProd = iEvent.put(std::move(output_preidinfo), preidname_);
630  // now make the Value Map, but only if one input collection
631  if (tracksContainers_.size() == 1) {
632  Handle<TrackCollection> tkRefCollection;
633  iEvent.getByToken(tracksContainers_[0], tkRefCollection);
634  fillPreIdRefValueMap(tkRefCollection, preIdRefProd, mapFiller);
635  mapFiller.fill();
636  iEvent.put(std::move(preIdMap_p), preidname_);
637  }
638  }
639  // clear temporary maps
640  refMap_.clear();
641 }
const double TwoPi
const double Pi
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldToken_
T perp() const
Definition: PV3DBase.h:69
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
bool isValid() const
Definition: Trajectory.h:257
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
std::string preidckf_
Name of the Seed(Ckf) Collection.
edm::EDGetTokenT< reco::PFClusterCollection > pfCLusTagPSLabel_
vars
Definition: DeepTauIdBase.h:60
T const * product() const
Definition: Handle.h:70
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
float pt() const
Definition: PreId.h:80
std::unique_ptr< PFResolutionMap > resMapEtaECAL_
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
float chiSquared() const
Definition: Trajectory.h:241
float thr[150]
vector of thresholds for different bins of eta and pt
TrajectoryMeasurement const & lastMeasurement() const
Definition: Trajectory.h:150
TkClonerImpl hitCloner
void setTrack(reco::TrackRef trackref)
Definition: PreId.h:31
string quality
int getBin(float, float)
Find the bin in pt and eta.
int iEvent
Definition: GenABIO.cc:224
void setMVA(bool accepted, float mva, unsigned n=0)
Definition: PreId.h:63
void setTrackFiltering(bool accepted, unsigned n=0)
Definition: PreId.h:62
T sqrt(T t)
Definition: SSEVec.h:23
math::XYZVector B_
B field.
std::string preidname_
Name of the preid Collection (FB)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool useQuality_
TRACK QUALITY.
void fillPreIdRefValueMap(edm::Handle< reco::TrackCollection > tkhandle, const edm::OrphanHandle< reco::PreIdCollection > &, edm::ValueMap< reco::PreIdRef >::Filler &filler)
double f[11][100]
std::vector< edm::EDGetTokenT< reco::TrackCollection > > tracksContainers_
double minPt_
Minimum transverse momentum and maximum pseudorapidity.
bool disablePreId_
switch to disable the pre-id
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float > > XYZVectorF
spatial vector with cartesian internal representation
Definition: Vector3D.h:16
reco::TrackBase::TrackQuality trackQuality_
Basic3DVector unit() const
double clusThreshold_
Cut on the energy of the clusters.
bool propagateToEcalEntrance(bool first=true)
bool produceCkfseed_
Produce the Seed for Ckf tracks?
const edm::ESGetToken< TrajectorySmoother, TrajectoryFitter::Record > smootherToken_
bool useTmva_
USE OF TMVA.
std::unique_ptr< PFResolutionMap > resMapPhiECAL_
T mag2() const
The vector magnitude squared. Equivalent to vec.dot(vec)
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
const edm::ESGetToken< TrajectoryFitter, TrajectoryFitter::Record > fitterToken_
std::map< reco::TrackRef, unsigned > refMap_
Map used to create the TrackRef, PreIdRef value map.
GlobalVector globalMomentum() const
TrajectoryStateOnSurface const & updatedState() const
TrackingRecHit::ConstRecHitContainer ConstRecHitContainer
Definition: Trajectory.h:41
void setTrackProperties(float newchi2, float chi2ratio, float dpt)
Definition: PreId.h:53
void setECALMatching(bool accepted, unsigned n=0)
Definition: PreId.h:60
TrajectoryMeasurement const & firstMeasurement() const
Definition: Trajectory.h:166
bool producePreId_
Produce the pre-id debugging collection.
edm::EDGetTokenT< reco::PFClusterCollection > pfCLusTagHCLabel_
const edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > trackerRecHitBuilderToken_
tmp
align.sh
Definition: createJobs.py:716
std::string preidgsf_
Name of the Seed(Gsf) Collection.
edm::EDGetTokenT< reco::PFClusterCollection > pfCLusTagECLabel_
double minEp_
Min and MAx allowed values forEoverP.
float nhit
VARIABLES NEEDED FOR TMVA.
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
def move(src, dest)
Definition: eostools.py:511
double PtThresholdSavePredId_
Threshold to save Pre Idinfo.
Global3DVector GlobalVector
Definition: GlobalVector.h:10
void setFinalDecision(bool accepted, unsigned n=0)
Definition: PreId.h:59
math::XYZTLorentzVector XYZTLorentzVector
Definition: RawParticle.h:25
edm::Ref< l1t::PFClusterCollection > PFClusterRef
Definition: PFCluster.h:88
#define LogDebug(id)

Member Data Documentation

◆ B_

math::XYZVector GoodSeedProducer::B_
private

B field.

Definition at line 181 of file GoodSeedProducer.cc.

◆ chikfred

float GoodSeedProducer::chikfred
private

Definition at line 174 of file GoodSeedProducer.cc.

◆ chiRatio

float GoodSeedProducer::chiRatio
private

Definition at line 173 of file GoodSeedProducer.cc.

◆ chired

float GoodSeedProducer::chired
private

Definition at line 173 of file GoodSeedProducer.cc.

◆ clusThreshold_

double GoodSeedProducer::clusThreshold_
private

Cut on the energy of the clusters.

Definition at line 125 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ conf_

edm::ParameterSet GoodSeedProducer::conf_
private

Definition at line 147 of file GoodSeedProducer.cc.

◆ disablePreId_

bool GoodSeedProducer::disablePreId_
private

switch to disable the pre-id

Definition at line 135 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ dpt

float GoodSeedProducer::dpt
private

Definition at line 173 of file GoodSeedProducer.cc.

◆ EcalStripSumE_deltaEta_

double GoodSeedProducer::EcalStripSumE_deltaEta_
private

Definition at line 118 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ EcalStripSumE_deltaPhiOverQ_maxValue_

double GoodSeedProducer::EcalStripSumE_deltaPhiOverQ_maxValue_
private

Definition at line 120 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ EcalStripSumE_deltaPhiOverQ_minValue_

double GoodSeedProducer::EcalStripSumE_deltaPhiOverQ_minValue_
private

Definition at line 119 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ EcalStripSumE_minClusEnergy_

double GoodSeedProducer::EcalStripSumE_minClusEnergy_
private

Definition at line 117 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ fitterName_

std::string GoodSeedProducer::fitterName_
private

Definition at line 154 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ fitterToken_

const edm::ESGetToken<TrajectoryFitter, TrajectoryFitter::Record> GoodSeedProducer::fitterToken_
private

Definition at line 162 of file GoodSeedProducer.cc.

◆ HcalIsolWindow_

double GoodSeedProducer::HcalIsolWindow_
private

Definition at line 116 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ hitCloner

TkClonerImpl GoodSeedProducer::hitCloner
private

Definition at line 103 of file GoodSeedProducer.cc.

◆ magneticFieldToken_

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> GoodSeedProducer::magneticFieldToken_
private

Definition at line 165 of file GoodSeedProducer.cc.

◆ magneticFieldTokenBeginRun_

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> GoodSeedProducer::magneticFieldTokenBeginRun_
private

Definition at line 166 of file GoodSeedProducer.cc.

◆ maxEp_

double GoodSeedProducer::maxEp_
private

Definition at line 129 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ maxEta_

double GoodSeedProducer::maxEta_
private

Definition at line 114 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ maxHoverP_

double GoodSeedProducer::maxHoverP_
private

Definition at line 122 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ maxPt_

double GoodSeedProducer::maxPt_
private

Definition at line 113 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ Min_dr_

double GoodSeedProducer::Min_dr_
private

Definition at line 175 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ minEoverP_

double GoodSeedProducer::minEoverP_
private

Definition at line 121 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ minEp_

double GoodSeedProducer::minEp_
private

Min and MAx allowed values forEoverP.

Definition at line 128 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ minPt_

double GoodSeedProducer::minPt_
private

Minimum transverse momentum and maximum pseudorapidity.

Definition at line 112 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ nhit

float GoodSeedProducer::nhit
private

VARIABLES NEEDED FOR TMVA.

Definition at line 173 of file GoodSeedProducer.cc.

◆ nHitsInSeed_

int GoodSeedProducer::nHitsInSeed_
private

Number of hits in the seed;.

Definition at line 109 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ pfCLusTagECLabel_

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

Definition at line 149 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ pfCLusTagHCLabel_

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

Definition at line 150 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ pfCLusTagPSLabel_

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

Definition at line 148 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ pfTransformer_

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

PFTrackTransformer.

Definition at line 106 of file GoodSeedProducer.cc.

◆ preidckf_

std::string GoodSeedProducer::preidckf_
private

Name of the Seed(Ckf) Collection.

Definition at line 94 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ preidgsf_

std::string GoodSeedProducer::preidgsf_
private

Name of the Seed(Gsf) Collection.

Definition at line 97 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ preidname_

std::string GoodSeedProducer::preidname_
private

Name of the preid Collection (FB)

Definition at line 100 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ produceCkfseed_

bool GoodSeedProducer::produceCkfseed_
private

Produce the Seed for Ckf tracks?

Definition at line 132 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ producePreId_

bool GoodSeedProducer::producePreId_
private

Produce the pre-id debugging collection.

Definition at line 138 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ propagatorName_

std::string GoodSeedProducer::propagatorName_
private

Definition at line 156 of file GoodSeedProducer.cc.

◆ PtThresholdSavePredId_

double GoodSeedProducer::PtThresholdSavePredId_
private

Threshold to save Pre Idinfo.

Definition at line 141 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ refMap_

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

Map used to create the TrackRef, PreIdRef value map.

Definition at line 184 of file GoodSeedProducer.cc.

◆ resMapEtaECAL_

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

Definition at line 159 of file GoodSeedProducer.cc.

◆ resMapPhiECAL_

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

Definition at line 160 of file GoodSeedProducer.cc.

◆ smootherName_

std::string GoodSeedProducer::smootherName_
private

Definition at line 155 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ smootherToken_

const edm::ESGetToken<TrajectorySmoother, TrajectoryFitter::Record> GoodSeedProducer::smootherToken_
private

Definition at line 163 of file GoodSeedProducer.cc.

◆ thr

float GoodSeedProducer::thr[150]
private

vector of thresholds for different bins of eta and pt

Definition at line 144 of file GoodSeedProducer.cc.

◆ trackerRecHitBuilderName_

std::string GoodSeedProducer::trackerRecHitBuilderName_
private

Definition at line 157 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ trackerRecHitBuilderToken_

const edm::ESGetToken<TransientTrackingRecHitBuilder, TransientRecHitRecord> GoodSeedProducer::trackerRecHitBuilderToken_
private

Definition at line 164 of file GoodSeedProducer.cc.

◆ trackQuality_

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

Definition at line 170 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ tracksContainers_

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

Definition at line 152 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ trajContainers_

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

Definition at line 151 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ trk_ecalDeta

float GoodSeedProducer::trk_ecalDeta
private

Definition at line 174 of file GoodSeedProducer.cc.

◆ trk_ecalDphi

float GoodSeedProducer::trk_ecalDphi
private

Definition at line 174 of file GoodSeedProducer.cc.

◆ useQuality_

bool GoodSeedProducer::useQuality_
private

TRACK QUALITY.

Definition at line 169 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().

◆ useTmva_

bool GoodSeedProducer::useTmva_
private

USE OF TMVA.

Definition at line 178 of file GoodSeedProducer.cc.

Referenced by GoodSeedProducer().