CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
ConvBremSeedProducer Class Reference

#include <ConvBremSeedProducer.h>

Inheritance diagram for ConvBremSeedProducer:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 ConvBremSeedProducer (const edm::ParameterSet &)
 
 ~ConvBremSeedProducer () override
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducer () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Types

typedef GeometricSearchDet::DetWithState DetWithState
 
typedef SiStripMatchedRecHit2DCollection::const_iterator MatDetMatch
 
typedef SiStripMatchedRecHit2DCollection::DetSet MatDetSet
 
typedef SiPixelRecHitCollection::const_iterator PiDetMatch
 
typedef SiPixelRecHitCollection::DetSet PiDetSet
 
typedef SiStripRecHit2DCollection::const_iterator StDetMatch
 
typedef SiStripRecHit2DCollection::DetSet StDetSet
 

Private Member Functions

void beginRun (const edm::Run &, const edm::EventSetup &) override
 
const DetLayerdetLayer (const TrackerLayer &layer, float zpos) const
 
void endRun (const edm::Run &, const edm::EventSetup &) override
 
int GoodCluster (const BaseParticlePropagator &bpg, const reco::PFClusterCollection &pfc, float minep, bool sec=false)
 
void initializeLayerMap ()
 
bool isGsfTrack (const reco::Track &, const TrackingRecHit *)
 
TrajectoryStateOnSurface makeTrajectoryState (const DetLayer *layer, const ParticlePropagator &pp, const MagneticField *field) const
 
void produce (edm::Event &, const edm::EventSetup &) override
 
std::vector< bool > sharedHits (const std::vector< std::pair< TrajectorySeed, std::pair< GlobalVector, float > > > &)
 

Private Attributes

math::XYZVector B_
 B field. More...
 
edm::ParameterSet conf_
 
const MagneticFieldMapfieldMap_
 
const TrackerInteractionGeometrygeometry_
 
const GeometricSearchTrackergeomSearchTracker_
 
const TransientTrackingRecHitBuilderhitBuilder_
 
const KFUpdatorkfUpdator_
 
std::vector< const DetLayer * > layerMap_
 
const MagneticFieldmagfield_
 
int negLayerOffset_
 
const PropagatorWithMaterialpropagator_
 
std::vector< const DetLayer * > theLayerMap
 
const TrackerGeometrytracker_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 38 of file ConvBremSeedProducer.h.

Member Typedef Documentation

◆ DetWithState

Definition at line 45 of file ConvBremSeedProducer.h.

◆ MatDetMatch

Definition at line 41 of file ConvBremSeedProducer.h.

◆ MatDetSet

Definition at line 44 of file ConvBremSeedProducer.h.

◆ PiDetMatch

Definition at line 40 of file ConvBremSeedProducer.h.

◆ PiDetSet

Definition at line 43 of file ConvBremSeedProducer.h.

◆ StDetMatch

Definition at line 39 of file ConvBremSeedProducer.h.

◆ StDetSet

Definition at line 42 of file ConvBremSeedProducer.h.

Constructor & Destructor Documentation

◆ ConvBremSeedProducer()

ConvBremSeedProducer::ConvBremSeedProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 53 of file ConvBremSeedProducer.cc.

54  : conf_(iConfig), fieldMap_(nullptr), layerMap_(56, static_cast<const DetLayer*>(nullptr)), negLayerOffset_(27) {
55  produces<ConvBremSeedCollection>();
56 }

◆ ~ConvBremSeedProducer()

ConvBremSeedProducer::~ConvBremSeedProducer ( )
override

Definition at line 58 of file ConvBremSeedProducer.cc.

58 {}

Member Function Documentation

◆ beginRun()

void ConvBremSeedProducer::beginRun ( const edm::Run run,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Reimplemented from edm::EDProducer.

Definition at line 344 of file ConvBremSeedProducer.cc.

344  {
347  geomSearchTracker_ = track.product();
348 
349  ESHandle<TrackerInteractionGeometry> theTrackerInteractionGeometry;
350  iSetup.get<TrackerInteractionGeometryRecord>().get(theTrackerInteractionGeometry);
351  geometry_ = theTrackerInteractionGeometry.product();
352 
355  tracker_ = tracker.product();
356 
359  magfield_ = magfield.product();
360  B_ = magfield_->inTesla(GlobalPoint(0, 0, 0));
361 
363  iSetup.get<MagneticFieldMapRecord>().get(fieldMap);
364  fieldMap_ = fieldMap.product();
365 
367  iSetup.get<TransientRecHitRecord>().get(conf_.getParameter<string>("TTRHBuilder"), hitBuilder);
368  hitBuilder_ = hitBuilder.product();
369 
371  kfUpdator_ = new KFUpdator();
372 }

References alongMomentum, B_, conf_, fieldMap_, geometry_, geomSearchTracker_, edm::EventSetup::get(), get, edm::ParameterSet::getParameter(), hitBuilder_, MagneticField::inTesla(), kfUpdator_, volumeBasedMagneticField_160812_cfi::magfield, magfield_, edm::ESHandle< T >::product(), propagator_, HLT_2018_cff::track, PbPb_ZMuSkimMuonDPG_cff::tracker, and tracker_.

◆ detLayer()

const DetLayer * ConvBremSeedProducer::detLayer ( const TrackerLayer layer,
float  zpos 
) const
private

Definition at line 454 of file ConvBremSeedProducer.cc.

454  {
455  if (zpos > 0 || !layer.forward())
456  return layerMap_[layer.layerNumber()];
457  else
458  return layerMap_[layer.layerNumber() + negLayerOffset_];
459 }

References TrackerLayer::forward(), layerMap_, TrackerLayer::layerNumber(), and negLayerOffset_.

Referenced by produce().

◆ endRun()

void ConvBremSeedProducer::endRun ( const edm::Run run,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Reimplemented from edm::EDProducer.

Definition at line 374 of file ConvBremSeedProducer.cc.

374  {
375  delete propagator_;
376  delete kfUpdator_;
377 }

References kfUpdator_, and propagator_.

◆ GoodCluster()

int ConvBremSeedProducer::GoodCluster ( const BaseParticlePropagator bpg,
const reco::PFClusterCollection pfc,
float  minep,
bool  sec = false 
)
private

Definition at line 526 of file ConvBremSeedProducer.cc.

529  {
530  BaseParticlePropagator bpg = ubpg;
531  bpg.propagateToEcalEntrance(false);
532  float dr = 1000;
533  float de = 1000;
534  float df = 1000;
535  int ibest = -1;
536 
537  if (bpg.getSuccess() != 0) {
538  for (unsigned int i = 0; i < pfc.size(); i++) {
539  float tmp_ep = pfc[i].energy() / bpg.particle().momentum().e();
540  float tmp_phi = fabs(pfc[i].position().phi() - bpg.particle().vertex().phi());
541  if (tmp_phi > TMath::TwoPi())
542  tmp_phi -= TMath::TwoPi();
543  float tmp_eta = fabs(pfc[i].position().eta() - bpg.particle().vertex().eta());
544  float tmp_dr = sqrt(pow(tmp_phi, 2) + pow(tmp_eta, 2));
545  bool isBet = (tmp_dr < dr);
546  if (sec)
547  isBet = (tmp_phi < df);
548  if ((isBet) && (tmp_ep > minep) && (tmp_ep < 10)) {
549  dr = tmp_dr;
550  de = tmp_eta;
551  df = tmp_phi;
552  ibest = i;
553  }
554  }
555  bool isBad = (dr > 0.1);
556  if (sec)
557  isBad = ((df > 0.25) || (de > 0.5));
558 
559  if (isBad)
560  ibest = -1;
561  }
562  return ibest;
563 }

References flavorHistoryFilter_cfi::dr, PVValHelper::eta, BaseParticlePropagator::getSuccess(), mps_fire::i, RawParticle::momentum(), BaseParticlePropagator::particle(), phi, position, funct::pow(), BaseParticlePropagator::propagateToEcalEntrance(), fileinputsource_cfi::sec, mathSSE::sqrt(), TwoPi, and RawParticle::vertex().

Referenced by produce().

◆ initializeLayerMap()

void ConvBremSeedProducer::initializeLayerMap ( )
private

ATTENTION: HARD CODED LOGIC! If Famos layer numbering changes this logic needs to be adapted to the new numbering!

Definition at line 379 of file ConvBremSeedProducer.cc.

379  {
380  // These are the BoundSurface&, the BoundDisk* and the BoundCylinder* for that layer
381  // const BoundSurface& theSurface = layer.surface();
382  // BoundDisk* theDisk = layer.disk(); // non zero for endcaps
383  // BoundCylinder* theCylinder = layer.cylinder(); // non zero for barrel
384  // int theLayer = layer.layerNumber(); // 1->3 PixB, 4->5 PixD,
385  // // 6->9 TIB, 10->12 TID,
386  // // 13->18 TOB, 19->27 TEC
387 
390 
391  const std::vector<const BarrelDetLayer*>& barrelLayers = geomSearchTracker_->barrelLayers();
392  LogDebug("FastTracker") << "Barrel DetLayer dump: ";
393  for (auto bl = barrelLayers.begin(); bl != barrelLayers.end(); ++bl) {
394  LogDebug("FastTracker") << "radius " << (**bl).specificSurface().radius();
395  }
396 
397  const std::vector<const ForwardDetLayer*>& posForwardLayers = geomSearchTracker_->posForwardLayers();
398  LogDebug("FastTracker") << "Positive Forward DetLayer dump: ";
399  for (auto fl = posForwardLayers.begin(); fl != posForwardLayers.end(); ++fl) {
400  LogDebug("FastTracker") << "Z pos " << (**fl).surface().position().z() << " radii "
401  << (**fl).specificSurface().innerRadius() << ", " << (**fl).specificSurface().outerRadius();
402  }
403 
404  const float rTolerance = 1.5;
405  const float zTolerance = 3.;
406 
407  LogDebug("FastTracker") << "Dump of TrackerInteractionGeometry cylinders:";
408  for (std::list<TrackerLayer>::const_iterator i = geometry_->cylinderBegin(); i != geometry_->cylinderEnd(); ++i) {
409  const BoundCylinder* cyl = i->cylinder();
410  const BoundDisk* disk = i->disk();
411 
412  LogDebug("FastTracker") << "Famos Layer no " << i->layerNumber() << " is sensitive? " << i->sensitive() << " pos "
413  << i->surface().position();
414  if (!i->sensitive())
415  continue;
416 
417  if (cyl != nullptr) {
418  LogDebug("FastTracker") << " cylinder radius " << cyl->radius();
419  bool found = false;
420 
421  for (auto bl = barrelLayers.begin(); bl != barrelLayers.end(); ++bl) {
422  if (fabs(cyl->radius() - (**bl).specificSurface().radius()) < rTolerance) {
423  layerMap_[i->layerNumber()] = *bl;
424  found = true;
425  LogDebug("FastTracker") << "Corresponding DetLayer found with radius " << (**bl).specificSurface().radius();
426 
427  break;
428  }
429  }
430  if (!found) {
431  LogError("FastTracker") << "FAILED to find a corresponding DetLayer!";
432  }
433  } else {
434  LogDebug("FastTracker") << " disk radii " << disk->innerRadius() << ", " << disk->outerRadius();
435 
436  bool found = false;
437 
438  for (auto fl = posForwardLayers.begin(); fl != posForwardLayers.end(); ++fl) {
439  if (fabs(disk->position().z() - (**fl).surface().position().z()) < zTolerance) {
440  layerMap_[i->layerNumber()] = *fl;
441  found = true;
442  LogDebug("FastTracker") << "Corresponding DetLayer found with Z pos " << (**fl).surface().position().z()
443  << " and radii " << (**fl).specificSurface().innerRadius() << ", "
444  << (**fl).specificSurface().outerRadius();
445  break;
446  }
447  }
448  if (!found) {
449  LogError("FastTracker") << "FAILED to find a corresponding DetLayer!";
450  }
451  }
452  }
453 }

References GeometricSearchTracker::barrelLayers(), TrackerInteractionGeometry::cylinderBegin(), TrackerInteractionGeometry::cylinderEnd(), newFWLiteAna::found, geometry_, geomSearchTracker_, mps_fire::i, layerMap_, LogDebug, and GeometricSearchTracker::posForwardLayers().

Referenced by produce().

◆ isGsfTrack()

bool ConvBremSeedProducer::isGsfTrack ( const reco::Track tkv,
const TrackingRecHit h 
)
private

Definition at line 472 of file ConvBremSeedProducer.cc.

472  {
473  bool istaken = false;
474  for (auto const& hit : tkv.recHits()) {
475  if (istaken || !hit->isValid())
476  continue;
477  istaken = hit->sharesInput(h, TrackingRecHit::all);
478  }
479  return istaken;
480 }

References TrackingRecHit::all, and reco::Track::recHits().

Referenced by produce().

◆ makeTrajectoryState()

TrajectoryStateOnSurface ConvBremSeedProducer::makeTrajectoryState ( const DetLayer layer,
const ParticlePropagator pp,
const MagneticField field 
) const
private

Definition at line 461 of file ConvBremSeedProducer.cc.

463  {
464  GlobalPoint pos(pp.particle().X(), pp.particle().Y(), pp.particle().Z());
465  GlobalVector mom(pp.particle().Px(), pp.particle().Py(), pp.particle().Pz());
466 
467  auto plane = layer->surface().tangentPlane(pos);
468 
469  return TrajectoryStateOnSurface(GlobalTrajectoryParameters(pos, mom, TrackCharge(pp.particle().charge()), field),
470  *plane);
471 }

References createTree::pp, GeometricSearchDet::surface(), and Surface::tangentPlane().

Referenced by produce().

◆ produce()

void ConvBremSeedProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

INPUT COLLECTIONS

PF CLUSTERS

PIXEL

STRIP

OUTPUT COLLECTION

INITIALIZE

LOOP OVER GSF TRACK COLLECTION

FIND THE CLUSTER ASSOCIATED TO THE GSF TRACK

LOOP OVER BREM PHOTONS

BREM SELECTION

LOOP OVER TRACKER LAYER

TRACKER LAYER SELECTION

FIND COMPATIBLE MODULES

MODULE TRIPLETS SELECTION

SEED CREATION

Implements edm::EDProducer.

Definition at line 60 of file ConvBremSeedProducer.cc.

60  {
61  LogDebug("ConvBremSeedProducerProducer") << "START event: " << iEvent.id().event() << " in run " << iEvent.id().run();
62 
63  float pfmass = 0.0005;
64 
66 
69  iEvent.getByLabel(conf_.getParameter<InputTag>("PFClusters"), PfC);
70  const PFClusterCollection& PPP = *(PfC.product());
71 
74  iEvent.getByLabel(conf_.getParameter<InputTag>("pixelRecHits"), pixelHits);
75 
78  iEvent.getByLabel(conf_.getParameter<InputTag>("rphirecHits"), rphirecHits);
80  iEvent.getByLabel(conf_.getParameter<InputTag>("stereorecHits"), stereorecHits);
82  iEvent.getByLabel(conf_.getParameter<InputTag>("matchedrecHits"), matchedrecHits);
83 
84  //GSFPFRECTRACKS
85  Handle<GsfPFRecTrackCollection> thePfRecTrackCollection;
86  iEvent.getByLabel(conf_.getParameter<InputTag>("PFRecTrackLabel"), thePfRecTrackCollection);
87  const GsfPFRecTrackCollection PfRTkColl = *(thePfRecTrackCollection.product());
88 
90  auto output = std::make_unique<ConvBremSeedCollection>();
91 
93  vector<pair<TrajectorySeed, pair<GlobalVector, float> > > unclean;
94  //TRIPLET OF MODULES TO BE USED FOR SEEDING
95  vector<vector<long int> > tripl;
96  //LAYER MAP
98 
100 
101  for (unsigned int ipft = 0; ipft < PfRTkColl.size(); ipft++) {
102  GsfPFRecTrackRef pft(thePfRecTrackCollection, ipft);
103  LogDebug("ConvBremSeedProducerProducer") << "NEW GsfPFRecTRACK ";
104  float eta_br = 0;
105  unclean.clear();
106  tripl.clear();
107  vector<int> gc;
108  auto const& gsfRecHits = *pft->gsfTrackRef();
109  float pfoutenergy = sqrt((pfmass * pfmass) + pft->gsfTrackRef()->outerMomentum().Mag2());
110  XYZTLorentzVector mom = XYZTLorentzVector(pft->gsfTrackRef()->outerMomentum().x(),
111  pft->gsfTrackRef()->outerMomentum().y(),
112  pft->gsfTrackRef()->outerMomentum().z(),
113  pfoutenergy);
114  XYZTLorentzVector pos = XYZTLorentzVector(pft->gsfTrackRef()->outerPosition().x(),
115  pft->gsfTrackRef()->outerPosition().y(),
116  pft->gsfTrackRef()->outerPosition().z(),
117  0.);
118  BaseParticlePropagator theOutParticle =
119  BaseParticlePropagator(RawParticle(mom, pos, pft->gsfTrackRef()->charge()), 0, 0, B_.z());
120 
122  gc.push_back(GoodCluster(theOutParticle, PPP, 0.5));
123 
124  vector<PFBrem> brem = (*pft).PFRecBrem();
125  vector<PFBrem>::iterator ib = brem.begin();
126  vector<PFBrem>::iterator ib_end = brem.end();
127  LogDebug("ConvBremSeedProducerProducer") << "NUMBER OF BREMS " << brem.size();
128 
130  for (; ib != ib_end; ++ib) {
131  XYZTLorentzVector mom = pft->trajectoryPoint(ib->indTrajPoint()).momentum();
132  XYZTLorentzVector pos = XYZTLorentzVector(pft->trajectoryPoint(ib->indTrajPoint()).position().x(),
133  pft->trajectoryPoint(ib->indTrajPoint()).position().y(),
134  pft->trajectoryPoint(ib->indTrajPoint()).position().z(),
135  0);
136 
138  if (pos.Rho() > 80)
139  continue;
140  if ((pos.Rho() > 5) && (fabs(ib->SigmaDeltaP() / ib->DeltaP()) > 3))
141  continue;
142  if (fabs(ib->DeltaP()) < 3)
143  continue;
144  eta_br = mom.eta();
145  vector<vector<long int> > Idd;
146 
147  BaseParticlePropagator p(RawParticle(mom, pos, 0.), 0, 0, B_.z());
148  gc.push_back(GoodCluster(p, PPP, 0.2));
149 
150  ParticlePropagator PP(p, fieldMap_, nullptr);
151 
153  list<TrackerLayer>::const_iterator cyliter = geometry_->cylinderBegin();
154  for (; cyliter != geometry_->cylinderEnd(); ++cyliter) {
156  if (!(cyliter->sensitive()))
157  continue;
158  PP.setPropagationConditions(*cyliter);
159  PP.propagate();
160  if (PP.getSuccess() == 0)
161  continue;
162 
164  LocalMagneticField mf(PP.getMagneticField());
165  AnalyticalPropagator alongProp(&mf, anyDirection);
167  const DetLayer* tkLayer = detLayer(*cyliter, PP.particle().Z());
168  if (&(*tkLayer) == nullptr)
169  continue;
170  TrajectoryStateOnSurface trajState = makeTrajectoryState(tkLayer, PP, &mf);
171 
172  std::vector<DetWithState> compat = tkLayer->compatibleDets(trajState, alongProp, est);
173  vector<long int> temp;
174  if (compat.empty())
175  continue;
176 
177  for (std::vector<DetWithState>::const_iterator i = compat.begin(); i != compat.end(); i++) {
178  long int detid = i->first->geographicalId().rawId();
179 
181  StDetMatch DetMatch = (rphirecHits.product())->find((detid));
182  MatDetMatch MDetMatch = (matchedrecHits.product())->find((detid));
183 
184  long int DetID = (DetMatch != rphirecHits->end()) ? detid : 0;
185 
186  if ((MDetMatch != matchedrecHits->end()) && !MDetMatch->empty()) {
187  long int pii = MDetMatch->begin()->monoId();
188  StDetMatch CDetMatch = (rphirecHits.product())->find((pii));
189  DetID = (CDetMatch != rphirecHits->end()) ? pii : 0;
190  }
191 
192  temp.push_back(DetID);
193 
194  } else {
195  PiDetMatch DetMatch = (pixelHits.product())->find((detid));
196  long int DetID = (DetMatch != pixelHits->end()) ? detid : 0;
197  temp.push_back(DetID);
198  }
199  }
200 
201  Idd.push_back(temp);
202 
203  } //END TRACKER LAYER LOOP
204  if (Idd.size() < 2)
205  continue;
206 
208  for (unsigned int i = 0; i < Idd.size() - 2; i++) {
209  for (unsigned int i1 = 0; i1 < Idd[i].size(); i1++) {
210  for (unsigned int i2 = 0; i2 < Idd[i + 1].size(); i2++) {
211  for (unsigned int i3 = 0; i3 < Idd[i + 2].size(); i3++) {
212  if ((Idd[i][i1] != 0) && (Idd[i + 1][i2] != 0) && (Idd[i + 2][i3] != 0)) {
213  vector<long int> tmp;
214  tmp.push_back(Idd[i][i1]);
215  tmp.push_back(Idd[i + 1][i2]);
216  tmp.push_back(Idd[i + 2][i3]);
217 
218  bool newTrip = true;
219  for (unsigned int iv = 0; iv < tripl.size(); iv++) {
220  if ((tripl[iv][0] == tmp[0]) && (tripl[iv][1] == tmp[1]) && (tripl[iv][2] == tmp[2]))
221  newTrip = false;
222  }
223  if (newTrip) {
224  tripl.push_back(tmp);
225  }
226  }
227  }
228  }
229  }
230  }
231  } //END BREM LOOP
232 
233  float sineta_brem = sinh(eta_br);
234 
235  //OUTPUT COLLECTION
237  iSetup.get<IdealMagneticFieldRecord>().get(bfield);
238  float nomField = bfield->nominalValue();
239 
241  OwnVector<TrackingRecHit> loc_hits;
242  for (unsigned int i = 0; i < tripl.size(); i++) {
243  StDetMatch DetMatch1 = (rphirecHits.product())->find(tripl[i][0]);
244  StDetMatch DetMatch2 = (rphirecHits.product())->find(tripl[i][1]);
245  StDetMatch DetMatch3 = (rphirecHits.product())->find(tripl[i][2]);
246  if ((DetMatch1 == rphirecHits->end()) || (DetMatch2 == rphirecHits->end()) || (DetMatch3 == rphirecHits->end()))
247  continue;
248  StDetSet DetSet1 = *DetMatch1;
249  StDetSet DetSet2 = *DetMatch2;
250  StDetSet DetSet3 = *DetMatch3;
251 
252  for (StDetSet::const_iterator it1 = DetSet1.begin(); it1 != DetSet1.end(); ++it1) {
253  GlobalPoint gp1 = tracker_->idToDet(tripl[i][0])->surface().toGlobal(it1->localPosition());
254 
255  bool tak1 = isGsfTrack(gsfRecHits, &(*it1));
256 
257  for (StDetSet::const_iterator it2 = DetSet2.begin(); it2 != DetSet2.end(); ++it2) {
258  GlobalPoint gp2 = tracker_->idToDet(tripl[i][1])->surface().toGlobal(it2->localPosition());
259  bool tak2 = isGsfTrack(gsfRecHits, &(*it2));
260 
261  for (StDetSet::const_iterator it3 = DetSet3.begin(); it3 != DetSet3.end(); ++it3) {
262  // ips++;
263  GlobalPoint gp3 = tracker_->idToDet(tripl[i][2])->surface().toGlobal(it3->localPosition());
264  bool tak3 = isGsfTrack(gsfRecHits, &(*it3));
265 
266  FastHelix helix(gp3, gp2, gp1, nomField, &*bfield);
267  GlobalVector gv = helix.stateAtVertex().momentum();
268  GlobalVector gv_corr(gv.x(), gv.y(), gv.perp() * sineta_brem);
269  float ene = sqrt(gv_corr.mag2() + (pfmass * pfmass));
270 
271  GlobalPoint gp = helix.stateAtVertex().position();
272  float ch = helix.stateAtVertex().charge();
273 
274  XYZTLorentzVector mom = XYZTLorentzVector(gv.x(), gv.y(), gv_corr.z(), ene);
275  XYZTLorentzVector pos = XYZTLorentzVector(gp.x(), gp.y(), gp.z(), 0.);
276  BaseParticlePropagator theOutParticle(RawParticle(mom, pos, ch), 0, 0, B_.z());
277  int bgc = GoodCluster(theOutParticle, PPP, 0.3, true);
278 
279  if (gv.perp() < 0.5)
280  continue;
281 
282  if (tak1 + tak2 + tak3 > 2)
283  continue;
284 
285  if (bgc == -1)
286  continue;
287  bool clTak = false;
288  for (unsigned int igcc = 0; igcc < gc.size(); igcc++) {
289  if (clTak)
290  continue;
291  if (bgc == gc[igcc])
292  clTak = true;
293  }
294  if (clTak)
295  continue;
296 
297  GlobalTrajectoryParameters Gtp(gp1, gv, int(ch), &(*magfield_));
298  glob_hits.clear();
299  loc_hits.clear();
300  glob_hits.push_back(hitBuilder_->build(it1->clone()));
301  glob_hits.push_back(hitBuilder_->build(it2->clone()));
302  glob_hits.push_back(hitBuilder_->build(it3->clone()));
303 
305 
308 
309  for (int ih = 0; ih < 3; ih++) {
311  (ih == 0) ? propagator_->propagate(CSeed, tracker_->idToDet(tripl[i][ih])->surface())
313 
314  if (!state.isValid()) {
315  ih = 3;
316  continue;
317  }
318 
319  updatedState = kfUpdator_->update(state, *glob_hits[ih]);
320  loc_hits.push_back(glob_hits[ih]->hit()->clone());
321  if (ih == 2) {
322  PTrajectoryStateOnDet const& PTraj =
324  // output->push_back(Trajectoryseed(PTraj,loc_hits,alongMomentum));
325  unclean.push_back(make_pair(TrajectorySeed(PTraj, loc_hits, alongMomentum), make_pair(gv_corr, ch)));
326  }
327  // }
328  }
329  }
330  }
331  }
332  }
333  vector<bool> inPhot = sharedHits(unclean);
334  for (unsigned int iu = 0; iu < unclean.size(); iu++) {
335  if (inPhot[iu])
336  output->push_back(ConvBremSeed(unclean[iu].first, pft));
337  }
338 
339  } //END GSF TRACK COLLECTION LOOP
340  LogDebug("ConvBremSeedProducerProducer") << "END";
341  iEvent.put(std::move(output));
342 }

References alongMomentum, AnalyticalPropagator_cfi::AnalyticalPropagator, anyDirection, B_, edmNew::DetSet< T >::begin(), TransientTrackingRecHitBuilder::build(), GlobalTrajectoryParameters::charge(), edm::OwnVector< T, P >::clear(), clone(), GeometricSearchDet::compatibleDets(), conf_, TrackerInteractionGeometry::cylinderBegin(), TrackerInteractionGeometry::cylinderEnd(), detLayer(), edmNew::DetSet< T >::end(), edmNew::DetSetVector< T >::end(), fieldMap_, spr::find(), dqmdumpme::first, geometry_, edm::EventSetup::get(), get, BaseParticlePropagator::getMagneticField(), edm::ParameterSet::getParameter(), BaseParticlePropagator::getSuccess(), GoodCluster(), runTauDisplay::gp, hitBuilder_, mps_fire::i, testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, testProducerWithPsetDescEmpty_cfi::i3, cuy::ib, TrackerGeometry::idToDet(), iEvent, initializeLayerMap(), isGsfTrack(), GeomDetEnumerators::isTrackerPixel(), TrajectoryStateOnSurface::isValid(), kfUpdator_, LogDebug, magfield_, makeTrajectoryState(), AlignmentTrackSelector_cfi::matchedrecHits, GlobalTrajectoryParameters::momentum(), eostools::move(), MagneticField::nominalValue(), convertSQLitetoXML_cfg::output, AlCaHLTBitMon_ParallelJobs::p, BaseParticlePropagator::particle(), PV3DBase< T, PVType, FrameType >::perp(), trajectoryStateTransform::persistentState(), GlobalTrajectoryParameters::position(), position, edm::Handle< T >::product(), PropagatorWithMaterial::propagate(), BaseParticlePropagator::propagate(), propagator_, edm::OwnVector< T, P >::push_back(), AlignmentTrackSelector_cfi::rphirecHits, ParticlePropagator::setPropagationConditions(), sharedHits(), mathSSE::sqrt(), FastHelix::stateAtVertex(), convBremSeeds_cfi::stereorecHits, DetLayer::subDetector(), GeomDet::surface(), groupFilesInBlocks::temp, createJobs::tmp, Surface::toGlobal(), tracker_, KFUpdator::update(), TrackInfoProducer_cfi::updatedState, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and RawParticle::Z().

◆ sharedHits()

vector< bool > ConvBremSeedProducer::sharedHits ( const std::vector< std::pair< TrajectorySeed, std::pair< GlobalVector, float > > > &  unclean)
private

Definition at line 481 of file ConvBremSeedProducer.cc.

481  {
482  vector<bool> goodseed;
483  goodseed.clear();
484  if (unclean.size() < 2) {
485  for (unsigned int i = 0; i < unclean.size(); i++)
486  goodseed.push_back(true);
487  } else {
488  for (unsigned int i = 0; i < unclean.size(); i++)
489  goodseed.push_back(true);
490 
491  for (unsigned int iu = 0; iu < unclean.size() - 1; iu++) {
492  if (!goodseed[iu])
493  continue;
494  for (unsigned int iu2 = iu + 1; iu2 < unclean.size(); iu2++) {
495  if (!goodseed[iu])
496  continue;
497  if (!goodseed[iu2])
498  continue;
499  // if (unclean[iu].second.second *unclean[iu2].second.second >0)continue;
500 
501  TrajectorySeed::const_iterator sh = unclean[iu].first.recHits().first;
502  TrajectorySeed::const_iterator sh_end = unclean[iu].first.recHits().second;
503 
504  unsigned int shar = 0;
505  for (; sh != sh_end; ++sh) {
506  TrajectorySeed::const_iterator sh2 = unclean[iu2].first.recHits().first;
507  TrajectorySeed::const_iterator sh2_end = unclean[iu2].first.recHits().second;
508  for (; sh2 != sh2_end; ++sh2) {
509  if ((*sh).sharesInput(&(*sh2), TrackingRecHit::all))
510 
511  shar++;
512  }
513  }
514  if (shar >= 2) {
515  if (unclean[iu].second.first.perp() < unclean[iu2].second.first.perp())
516  goodseed[iu] = false;
517  else
518  goodseed[iu2] = false;
519  }
520  }
521  }
522  }
523  return goodseed;
524 }

References TrackingRecHit::all, mps_fire::i, and edm::second().

Referenced by produce().

Member Data Documentation

◆ B_

math::XYZVector ConvBremSeedProducer::B_
private

B field.

Definition at line 83 of file ConvBremSeedProducer.h.

Referenced by beginRun(), and produce().

◆ conf_

edm::ParameterSet ConvBremSeedProducer::conf_
private

Definition at line 71 of file ConvBremSeedProducer.h.

Referenced by beginRun(), and produce().

◆ fieldMap_

const MagneticFieldMap* ConvBremSeedProducer::fieldMap_
private

Definition at line 76 of file ConvBremSeedProducer.h.

Referenced by beginRun(), and produce().

◆ geometry_

const TrackerInteractionGeometry* ConvBremSeedProducer::geometry_
private

Definition at line 73 of file ConvBremSeedProducer.h.

Referenced by beginRun(), initializeLayerMap(), and produce().

◆ geomSearchTracker_

const GeometricSearchTracker* ConvBremSeedProducer::geomSearchTracker_
private

Definition at line 72 of file ConvBremSeedProducer.h.

Referenced by beginRun(), and initializeLayerMap().

◆ hitBuilder_

const TransientTrackingRecHitBuilder* ConvBremSeedProducer::hitBuilder_
private

Definition at line 79 of file ConvBremSeedProducer.h.

Referenced by beginRun(), and produce().

◆ kfUpdator_

const KFUpdator* ConvBremSeedProducer::kfUpdator_
private

Definition at line 78 of file ConvBremSeedProducer.h.

Referenced by beginRun(), endRun(), and produce().

◆ layerMap_

std::vector<const DetLayer*> ConvBremSeedProducer::layerMap_
private

Definition at line 80 of file ConvBremSeedProducer.h.

Referenced by detLayer(), and initializeLayerMap().

◆ magfield_

const MagneticField* ConvBremSeedProducer::magfield_
private

Definition at line 75 of file ConvBremSeedProducer.h.

Referenced by beginRun(), and produce().

◆ negLayerOffset_

int ConvBremSeedProducer::negLayerOffset_
private

Definition at line 81 of file ConvBremSeedProducer.h.

Referenced by detLayer().

◆ propagator_

const PropagatorWithMaterial* ConvBremSeedProducer::propagator_
private

Definition at line 77 of file ConvBremSeedProducer.h.

Referenced by beginRun(), endRun(), and produce().

◆ theLayerMap

std::vector<const DetLayer*> ConvBremSeedProducer::theLayerMap
private

Definition at line 56 of file ConvBremSeedProducer.h.

◆ tracker_

const TrackerGeometry* ConvBremSeedProducer::tracker_
private

Definition at line 74 of file ConvBremSeedProducer.h.

Referenced by beginRun(), and produce().

Vector3DBase
Definition: Vector3DBase.h:8
reco::ConvBremSeed
Definition: ConvBremSeed.h:24
reco::PFClusterCollection
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
Definition: PFClusterFwd.h:9
TrackerGeometry::idToDet
const TrackerGeomDet * idToDet(DetId) const override
Definition: TrackerGeometry.cc:193
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
KFUpdator::update
TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const override
Definition: KFUpdator.cc:177
testProducerWithPsetDescEmpty_cfi.i2
i2
Definition: testProducerWithPsetDescEmpty_cfi.py:46
ConvBremSeedProducer::makeTrajectoryState
TrajectoryStateOnSurface makeTrajectoryState(const DetLayer *layer, const ParticlePropagator &pp, const MagneticField *field) const
Definition: ConvBremSeedProducer.cc:461
MagneticField::inTesla
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
testProducerWithPsetDescEmpty_cfi.i3
i3
Definition: testProducerWithPsetDescEmpty_cfi.py:47
RawParticle
Definition: RawParticle.h:37
anyDirection
Definition: PropagationDirection.h:4
mps_fire.i
i
Definition: mps_fire.py:355
BaseParticlePropagator::propagateToEcalEntrance
bool propagateToEcalEntrance(bool first=true)
Definition: BaseParticlePropagator.cc:450
TwoPi
const double TwoPi
Definition: CosmicMuonParameters.h:19
TrackCharge
int TrackCharge
Definition: TrackCharge.h:4
BaseParticlePropagator::particle
RawParticle const & particle() const
The particle being propagated.
Definition: BaseParticlePropagator.h:164
edm::Handle::product
T const * product() const
Definition: Handle.h:70
reco::GsfPFRecTrackCollection
std::vector< GsfPFRecTrack > GsfPFRecTrackCollection
collection of GsfPFRecTrack objects
Definition: GsfPFRecTrackFwd.h:9
DetLayer::subDetector
virtual SubDetector subDetector() const =0
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel,...
ConvBremSeedProducer::magfield_
const MagneticField * magfield_
Definition: ConvBremSeedProducer.h:75
DetLayer
Definition: DetLayer.h:21
RawParticle::momentum
const XYZTLorentzVector & momentum() const
the momentum fourvector
Definition: RawParticle.h:321
PropagatorWithMaterial::propagate
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
FastHelix
Definition: FastHelix.h:26
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:32
TrackerInteractionGeometry::cylinderEnd
std::list< TrackerLayer >::const_iterator cylinderEnd() const
Returns the last pointer in the cylinder list.
Definition: TrackerInteractionGeometry.h:40
TrackerInteractionGeometryRecord
Definition: TrackerInteractionGeometryRecord.h:26
RawParticle::vertex
const XYZTLorentzVector & vertex() const
the vertex fourvector
Definition: RawParticle.h:320
ConvBremSeedProducer::hitBuilder_
const TransientTrackingRecHitBuilder * hitBuilder_
Definition: ConvBremSeedProducer.h:79
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
trajectoryStateTransform::persistentState
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
Definition: TrajectoryStateTransform.cc:14
pos
Definition: PixelAliasList.h:18
testProducerWithPsetDescEmpty_cfi.i1
i1
Definition: testProducerWithPsetDescEmpty_cfi.py:45
convBremSeeds_cfi.stereorecHits
stereorecHits
Definition: convBremSeeds_cfi.py:13
ConvBremSeedProducer::StDetMatch
SiStripRecHit2DCollection::const_iterator StDetMatch
Definition: ConvBremSeedProducer.h:39
AlignmentTrackSelector_cfi.matchedrecHits
matchedrecHits
Definition: AlignmentTrackSelector_cfi.py:64
TransientRecHitRecord
Definition: TransientRecHitRecord.h:14
ConvBremSeedProducer::geomSearchTracker_
const GeometricSearchTracker * geomSearchTracker_
Definition: ConvBremSeedProducer.h:72
TrajectorySeed::const_iterator
recHitContainer::const_iterator const_iterator
Definition: TrajectorySeed.h:20
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:215
GeometricSearchDet::compatibleDets
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
Definition: GeometricSearchDet.cc:35
BaseParticlePropagator::getSuccess
int getSuccess() const
Has propagation been performed and was barrel or endcap reached ?
Definition: BaseParticlePropagator.h:296
ConvBremSeedProducer::initializeLayerMap
void initializeLayerMap()
Definition: ConvBremSeedProducer.cc:379
TrackerRecoGeometryRecord
Definition: TrackerRecoGeometryRecord.h:11
XYZTLorentzVector
math::XYZTLorentzVector XYZTLorentzVector
Definition: RawParticle.h:25
TransientTrackingRecHitBuilder::build
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
edm::Handle
Definition: AssociativeIterator.h:50
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
dqmdumpme.first
first
Definition: dqmdumpme.py:55
BoundDisk
ConvBremSeedProducer::fieldMap_
const MagneticFieldMap * fieldMap_
Definition: ConvBremSeedProducer.h:76
BaseParticlePropagator
Definition: BaseParticlePropagator.h:82
edm::Ref< GsfPFRecTrackCollection >
ConvBremSeedProducer::geometry_
const TrackerInteractionGeometry * geometry_
Definition: ConvBremSeedProducer.h:73
AlgebraicMatrixID
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
Definition: AlgebraicROOTObjects.h:72
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
PropagatorWithMaterial
Definition: PropagatorWithMaterial.h:25
h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
CurvilinearTrajectoryError
Definition: CurvilinearTrajectoryError.h:27
clone
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Definition: eve_macros.cc:135
PVValHelper::eta
Definition: PVValidationHelpers.h:69
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
Surface::toGlobal
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
edm::ESHandle< GeometricSearchTracker >
MagneticField::nominalValue
int nominalValue() const
The nominal field value for this map in kGauss.
Definition: MagneticField.h:49
ConvBremSeedProducer::GoodCluster
int GoodCluster(const BaseParticlePropagator &bpg, const reco::PFClusterCollection &pfc, float minep, bool sec=false)
Definition: ConvBremSeedProducer.cc:526
GeometricSearchTracker::barrelLayers
std::vector< BarrelDetLayer const * > const & barrelLayers() const
Definition: GeometricSearchTracker.h:31
ConvBremSeedProducer::StDetSet
SiStripRecHit2DCollection::DetSet StDetSet
Definition: ConvBremSeedProducer.h:42
reco::Track::recHits
auto recHits() const
Access to reconstructed hits on the track.
Definition: Track.h:85
GlobalTrajectoryParameters
Definition: GlobalTrajectoryParameters.h:15
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Point3DBase< float, GlobalTag >
ConvBremSeedProducer::tracker_
const TrackerGeometry * tracker_
Definition: ConvBremSeedProducer.h:74
AnalyticalPropagator_cfi.AnalyticalPropagator
AnalyticalPropagator
Definition: AnalyticalPropagator_cfi.py:3
ConvBremSeedProducer::detLayer
const DetLayer * detLayer(const TrackerLayer &layer, float zpos) const
Definition: ConvBremSeedProducer.cc:454
PbPb_ZMuSkimMuonDPG_cff.tracker
tracker
Definition: PbPb_ZMuSkimMuonDPG_cff.py:60
runTauDisplay.gp
gp
Definition: runTauDisplay.py:431
ConvBremSeedProducer::kfUpdator_
const KFUpdator * kfUpdator_
Definition: ConvBremSeedProducer.h:78
Surface::tangentPlane
virtual ConstReferenceCountingPointer< TangentPlane > tangentPlane(const GlobalPoint &) const =0
ConvBremSeedProducer::negLayerOffset_
int negLayerOffset_
Definition: ConvBremSeedProducer.h:81
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::LogError
Definition: MessageLogger.h:183
TrackingRecHit::all
Definition: TrackingRecHit.h:59
TrackingRecHit::ConstRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
Definition: TrackingRecHit.h:32
ConvBremSeedProducer::sharedHits
std::vector< bool > sharedHits(const std::vector< std::pair< TrajectorySeed, std::pair< GlobalVector, float > > > &)
Definition: ConvBremSeedProducer.cc:481
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
ParticlePropagator
Definition: ParticlePropagator.h:28
GeomDetEnumerators::isTrackerPixel
bool isTrackerPixel(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:68
iEvent
int iEvent
Definition: GenABIO.cc:224
TrackerInteractionGeometry::cylinderBegin
std::list< TrackerLayer >::const_iterator cylinderBegin() const
Returns the first pointer in the cylinder list.
Definition: TrackerInteractionGeometry.h:37
TrackerLayer::layerNumber
unsigned int layerNumber() const
Returns the layer number.
Definition: TrackerLayer.h:78
ConvBremSeedProducer::B_
math::XYZVector B_
B field.
Definition: ConvBremSeedProducer.h:83
cuy.ib
ib
Definition: cuy.py:662
MagneticFieldMapRecord
Definition: MagneticFieldMapRecord.h:27
get
#define get
TrackerLayer::forward
bool forward() const
Is the layer forward ?
Definition: TrackerLayer.h:66
fileinputsource_cfi.sec
sec
Definition: fileinputsource_cfi.py:87
ConvBremSeedProducer::isGsfTrack
bool isGsfTrack(const reco::Track &, const TrackingRecHit *)
Definition: ConvBremSeedProducer.cc:472
DDAxes::phi
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
InsideBoundsMeasurementEstimator
Definition: InsideBoundsMeasurementEstimator.h:6
eostools.move
def move(src, dest)
Definition: eostools.py:511
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
TrackInfoProducer_cfi.updatedState
updatedState
Definition: TrackInfoProducer_cfi.py:6
ConvBremSeedProducer::MatDetMatch
SiStripMatchedRecHit2DCollection::const_iterator MatDetMatch
Definition: ConvBremSeedProducer.h:41
edmNew::DetSetVector::end
const_iterator end(bool update=false) const
Definition: DetSetVectorNew.h:577
flavorHistoryFilter_cfi.dr
dr
Definition: flavorHistoryFilter_cfi.py:37
GeometricSearchTracker::posForwardLayers
std::vector< ForwardDetLayer const * > const & posForwardLayers() const
Definition: GeometricSearchTracker.h:35
AlignmentTrackSelector_cfi.rphirecHits
rphirecHits
Definition: AlignmentTrackSelector_cfi.py:63
ConvBremSeedProducer::layerMap_
std::vector< const DetLayer * > layerMap_
Definition: ConvBremSeedProducer.h:80
ConvBremSeedProducer::conf_
edm::ParameterSet conf_
Definition: ConvBremSeedProducer.h:71
GeometricSearchDet::surface
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
ConvBremSeedProducer::PiDetMatch
SiPixelRecHitCollection::const_iterator PiDetMatch
Definition: ConvBremSeedProducer.h:40
TrajectorySeed
Definition: TrajectorySeed.h:17
BoundCylinder
edm::OwnVector::push_back
void push_back(D *&d)
Definition: OwnVector.h:326
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
PTrajectoryStateOnDet
Definition: PTrajectoryStateOnDet.h:10
createTree.pp
pp
Definition: createTree.py:17
AlgebraicSymMatrix55
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
Definition: AlgebraicROOTObjects.h:23
volumeBasedMagneticField_160812_cfi.magfield
magfield
Definition: volumeBasedMagneticField_160812_cfi.py:11
edm::OwnVector::clear
void clear()
Definition: OwnVector.h:481
LocalMagneticField
Definition: LocalMagneticField.h:15
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
edm::InputTag
Definition: InputTag.h:15
alongMomentum
Definition: PropagationDirection.h:4
KFUpdator
Definition: KFUpdator.h:32
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
hit
Definition: SiStripHitEffFromCalibTree.cc:88
edm::OwnVector< TrackingRecHit >
ConvBremSeedProducer::propagator_
const PropagatorWithMaterial * propagator_
Definition: ConvBremSeedProducer.h:77
edmNew::DetSet::const_iterator
const data_type * const_iterator
Definition: DetSetNew.h:31