CMS 3D CMS Logo

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

#include <ElectronSeedGenerator.h>

Classes

struct  Tokens
 

Public Types

typedef TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
 
typedef edm::OwnVector< TrackingRecHitPRecHitContainer
 
typedef TransientTrackingRecHit::RecHitContainer RecHitContainer
 
typedef TransientTrackingRecHit::RecHitPointer RecHitPointer
 

Public Member Functions

 ElectronSeedGenerator (const edm::ParameterSet &, const Tokens &)
 
void run (edm::Event &, const edm::EventSetup &setup, const reco::SuperClusterRefVector &, const std::vector< float > &hoe1s, const std::vector< float > &hoe2s, const std::vector< const TrajectorySeedCollection * > &seedsV, reco::ElectronSeedCollection &)
 
void setupES (const edm::EventSetup &setup)
 
 ~ElectronSeedGenerator ()
 

Private Member Functions

void addSeed (reco::ElectronSeed &seed, const SeedWithInfo *info, bool positron, reco::ElectronSeedCollection &out)
 
bool prepareElTrackSeed (ConstRecHitPointer outerhit, ConstRecHitPointer innerhit, const GlobalPoint &vertexPos)
 
void seedsFromRecHits (std::vector< std::pair< RecHitWithDist, ConstRecHitPointer > > &elePixelHits, PropagationDirection &dir, const GlobalPoint &vertexPos, const reco::ElectronSeed::CaloClusterRef &cluster, reco::ElectronSeedCollection &out, bool positron)
 
void seedsFromThisCluster (edm::Ref< reco::SuperClusterCollection > seedCluster, float hoe1, float hoe2, reco::ElectronSeedCollection &out, const TrackerTopology *tTopo)
 
void seedsFromTrajectorySeeds (const std::vector< SeedWithInfo > &elePixelSeeds, const reco::ElectronSeed::CaloClusterRef &cluster, float hoe1, float hoe2, reco::ElectronSeedCollection &out, bool positron)
 

Private Attributes

edm::EDGetTokenT< reco::BeamSpotbeamSpotTag_
 
unsigned long long cacheIDCkfComp_
 
unsigned long long cacheIDMagField_
 
unsigned long long cacheIDNavSchool_
 
unsigned long long cacheIDTrkGeom_
 
double deltaPhi1Coef1_
 
double deltaPhi1Coef2_
 
float deltaPhi1High_
 
float deltaPhi1Low_
 
float deltaPhi2B_
 
float deltaPhi2F_
 
float deltaZ1WithVertex_
 
bool dynamicphiroad_
 
bool fromTrackerSeeds_
 
float highPtThreshold_
 
float lowPtThreshold_
 
PixelHitMatchermyMatchEle
 
PixelHitMatchermyMatchPos
 
float nSigmasDeltaZ1_
 
float phiMax2B_
 
float phiMax2F_
 
float phiMin2B_
 
float phiMin2F_
 
PTrajectoryStateOnDet pts_
 
PRecHitContainer recHits_
 
float sizeWindowENeg_
 
edm::Handle< reco::BeamSpottheBeamSpot
 
const std::vector< const TrajectorySeedCollection * > * theInitialSeedCollV = 0
 
edm::ESHandle< MagneticFieldtheMagField
 
const MeasurementTrackertheMeasurementTracker
 
edm::EDGetTokenT< MeasurementTrackerEventtheMeasurementTrackerEventTag
 
std::string theMeasurementTrackerName
 
const NavigationSchooltheNavigationSchool
 
PropagatorWithMaterialthePropagator
 
const edm::EventSetuptheSetup
 
edm::ESHandle< TrackerGeometrytheTrackerGeometry
 
KFUpdatortheUpdator
 
edm::Handle< std::vector< reco::Vertex > > theVertices
 
bool useRecoVertex_
 
edm::EDGetTokenT< std::vector< reco::Vertex > > verticesTag_
 

Detailed Description

Class to generate the trajectory seed from two hits in the pixel detector which have been found compatible with an ECAL cluster.

Author
U.Berthon, C.Charlot, LLR Palaiseau
Version
1st Version May 30, 2006

Description: Top algorithm producing ElectronSeeds, ported from ORCA

Implementation: future redesign...

Definition at line 49 of file ElectronSeedGenerator.h.

Member Typedef Documentation

Definition at line 60 of file ElectronSeedGenerator.h.

Definition at line 59 of file ElectronSeedGenerator.h.

Definition at line 62 of file ElectronSeedGenerator.h.

Definition at line 61 of file ElectronSeedGenerator.h.

Constructor & Destructor Documentation

ElectronSeedGenerator::ElectronSeedGenerator ( const edm::ParameterSet pset,
const Tokens ts 
)

Definition at line 65 of file ElectronSeedGenerator.cc.

References deltaPhi1Coef1_, deltaPhi1Coef2_, deltaPhi1High_, deltaPhi1Low_, deltaPhi2B_, deltaPhi2F_, deltaZ1WithVertex_, dynamicphiroad_, edm::ParameterSet::getParameter(), highPtThreshold_, lowPtThreshold_, myMatchEle, myMatchPos, phiMax2B_, phiMax2F_, phiMin2B_, phiMin2F_, AlCaHLTBitMon_QueryRunRegistry::string, theMeasurementTrackerName, theUpdator, and useRecoVertex_.

67  : dynamicphiroad_(pset.getParameter<bool>("dynamicPhiRoad")),
68  fromTrackerSeeds_(pset.getParameter<bool>("fromTrackerSeeds")),
69  useRecoVertex_(false),
70  verticesTag_(ts.token_vtx),
71  beamSpotTag_(ts.token_bs),
72  lowPtThreshold_(pset.getParameter<double>("LowPtThreshold")),
73  highPtThreshold_(pset.getParameter<double>("HighPtThreshold")),
74  nSigmasDeltaZ1_(pset.getParameter<double>("nSigmasDeltaZ1")),
75  deltaZ1WithVertex_(0.5),
76  sizeWindowENeg_(pset.getParameter<double>("SizeWindowENeg")),
77  deltaPhi1Low_(pset.getParameter<double>("DeltaPhi1Low")),
78  deltaPhi1High_(pset.getParameter<double>("DeltaPhi1High")),
80  myMatchEle(nullptr), myMatchPos(nullptr),
81  thePropagator(nullptr),
82  theMeasurementTracker(nullptr),
83  theMeasurementTrackerEventTag(ts.token_measTrkEvt),
84  theSetup(nullptr),
86 {
87  // so that deltaPhi1 = deltaPhi1Coef1_ + deltaPhi1Coef2_/clusterEnergyT
88  if (dynamicphiroad_)
89  {
92  }
93 
94  theMeasurementTrackerName = pset.getParameter<std::string>("measurementTrackerName");
95 
96  // use of reco vertex
97  useRecoVertex_ = pset.getParameter<bool>("useRecoVertex");
98  deltaZ1WithVertex_ = pset.getParameter<double>("deltaZ1WithVertex");
99 
100  // new B/F configurables
101  deltaPhi2B_ = pset.getParameter<double>("DeltaPhi2B") ;
102  deltaPhi2F_ = pset.getParameter<double>("DeltaPhi2F") ;
103 
104  phiMin2B_ = pset.getParameter<double>("PhiMin2B") ;
105  phiMin2F_ = pset.getParameter<double>("PhiMin2F") ;
106 
107  phiMax2B_ = pset.getParameter<double>("PhiMax2B") ;
108  phiMax2F_ = pset.getParameter<double>("PhiMax2F") ;
109 
110  // Instantiate the pixel hit matchers
112  ( pset.getParameter<double>("ePhiMin1"),
113  pset.getParameter<double>("ePhiMax1"),
114  phiMin2B_, phiMax2B_, phiMin2F_, phiMax2F_,
115  pset.getParameter<double>("z2MinB"),
116  pset.getParameter<double>("z2MaxB"),
117  pset.getParameter<double>("r2MinF"),
118  pset.getParameter<double>("r2MaxF"),
119  pset.getParameter<double>("rMinI"),
120  pset.getParameter<double>("rMaxI"),
121  pset.getParameter<bool>("searchInTIDTEC") ) ;
122 
124  ( pset.getParameter<double>("pPhiMin1"),
125  pset.getParameter<double>("pPhiMax1"),
126  phiMin2B_, phiMax2B_, phiMin2F_, phiMax2F_,
127  pset.getParameter<double>("z2MinB"),
128  pset.getParameter<double>("z2MaxB"),
129  pset.getParameter<double>("r2MinF"),
130  pset.getParameter<double>("r2MaxF"),
131  pset.getParameter<double>("rMinI"),
132  pset.getParameter<double>("rMaxI"),
133  pset.getParameter<bool>("searchInTIDTEC") ) ;
134 
135  theUpdator = new KFUpdator() ;
136 }
T getParameter(std::string const &) const
unsigned long long cacheIDNavSchool_
PixelHitMatcher * myMatchEle
edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerEventTag
const edm::EventSetup * theSetup
unsigned long long cacheIDMagField_
unsigned long long cacheIDTrkGeom_
PropagatorWithMaterial * thePropagator
edm::EDGetTokenT< std::vector< reco::Vertex > > verticesTag_
PixelHitMatcher * myMatchPos
edm::EDGetTokenT< reco::BeamSpot > beamSpotTag_
const MeasurementTracker * theMeasurementTracker
unsigned long long cacheIDCkfComp_
ElectronSeedGenerator::~ElectronSeedGenerator ( )

Definition at line 138 of file ElectronSeedGenerator.cc.

References myMatchEle, myMatchPos, thePropagator, and theUpdator.

139  {
140  delete myMatchEle ;
141  delete myMatchPos ;
142  delete thePropagator ;
143  delete theUpdator ;
144  }
PixelHitMatcher * myMatchEle
PropagatorWithMaterial * thePropagator
PixelHitMatcher * myMatchPos

Member Function Documentation

void ElectronSeedGenerator::addSeed ( reco::ElectronSeed seed,
const SeedWithInfo info,
bool  positron,
reco::ElectronSeedCollection out 
)
private

Definition at line 482 of file ElectronSeedGenerator.cc.

References reco::ElectronSeed::caloCluster(), SeedWithInfo::dPhi1(), reco::ElectronSeed::dPhi2(), SeedWithInfo::dPhi2(), reco::ElectronSeed::dPhi2Pos(), SeedWithInfo::dRz1(), reco::ElectronSeed::dRz2(), SeedWithInfo::dRz2(), reco::ElectronSeed::dRz2Pos(), equivalent(), reco::ElectronSeed::hitsMask(), infinity, createfilelist::int, edm::RefToBase< T >::key(), prepareElTrackSeed(), mathSSE::return(), reco::ElectronSeed::setNegAttributes(), and reco::ElectronSeed::setPosAttributes().

Referenced by seedsFromRecHits(), and seedsFromTrajectorySeeds().

486  {
487  if (!info)
488  { out.emplace_back(seed) ; return ; }
489 
490  if (positron)
491  { seed.setPosAttributes(info->dRz2(),info->dPhi2(),info->dRz1(),info->dPhi1()) ; }
492  else
493  { seed.setNegAttributes(info->dRz2(),info->dPhi2(),info->dRz1(),info->dPhi1()) ; }
494  reco::ElectronSeedCollection::iterator resItr ;
495  for ( resItr=out.begin() ; resItr!=out.end() ; ++resItr )
496  {
497  if ( (seed.caloCluster().key()==resItr->caloCluster().key()) &&
498  (seed.hitsMask()==resItr->hitsMask()) &&
499  equivalent(seed,*resItr) )
500  {
501  if (positron)
502  {
503  if ( resItr->dRz2Pos()==std::numeric_limits<float>::infinity() &&
504  resItr->dRz2()!=std::numeric_limits<float>::infinity() )
505  {
506  resItr->setPosAttributes(info->dRz2(),info->dPhi2(),info->dRz1(),info->dPhi1()) ;
507  seed.setNegAttributes(resItr->dRz2(),resItr->dPhi2(),resItr->dRz1(),resItr->dPhi1()) ;
508  break ;
509  }
510  else
511  {
512  if ( resItr->dRz2Pos()!=std::numeric_limits<float>::infinity() )
513  {
514  if ( resItr->dRz2Pos()!=seed.dRz2Pos() )
515  {
516  edm::LogWarning("ElectronSeedGenerator|BadValue")
517  <<"this similar old seed already has another dRz2Pos"
518  <<"\nold seed mask/dRz2/dPhi2/dRz2Pos/dPhi2Pos: "<<(unsigned int)resItr->hitsMask()<<"/"<<resItr->dRz2()<<"/"<<resItr->dPhi2()<<"/"<<resItr->dRz2Pos()<<"/"<<resItr->dPhi2Pos()
519  <<"\nnew seed mask/dRz2/dPhi2/dRz2Pos/dPhi2Pos: "<<(unsigned int)seed.hitsMask()<<"/"<<seed.dRz2()<<"/"<<seed.dPhi2()<<"/"<<seed.dRz2Pos()<<"/"<<seed.dPhi2Pos() ;
520  }
521 // else
522 // {
523 // edm::LogWarning("ElectronSeedGenerator|UnexpectedValue")
524 // <<"this old seed already knows its dRz2Pos, we suspect duplicates in input trajectry seeds"
525 // <<"\nold seed mask/dRz2/dPhi2/dRz2Pos/dPhi2Pos: "<<(unsigned int)resItr->hitsMask()<<"/"<<resItr->dRz2()<<"/"<<resItr->dPhi2()<<"/"<<resItr->dRz2Pos()<<"/"<<resItr->dPhi2Pos()
526 // <<"\nnew seed mask/dRz2/dPhi2/dRz2Pos/dPhi2Pos: "<<(unsigned int)seed.hitsMask()<<"/"<<seed.dRz2()<<"/"<<seed.dPhi2()<<"/"<<seed.dRz2Pos()<<"/"<<seed.dPhi2Pos() ;
527 // }
528  }
529 // if (resItr->dRz2()==std::numeric_limits<float>::infinity())
530 // {
531 // edm::LogWarning("ElectronSeedGenerator|BadValue")
532 // <<"this old seed has no dRz2, we suspect duplicates in input trajectry seeds"
533 // <<"\nold seed mask/dRz2/dPhi2/dRz2Pos/dPhi2Pos: "<<(unsigned int)resItr->hitsMask()<<"/"<<resItr->dRz2()<<"/"<<resItr->dPhi2()<<"/"<<resItr->dRz2Pos()<<"/"<<resItr->dPhi2Pos()
534 // <<"\nnew seed mask/dRz2/dPhi2/dRz2Pos/dPhi2Pos: "<<(unsigned int)seed.hitsMask()<<"/"<<seed.dRz2()<<"/"<<seed.dPhi2()<<"/"<<seed.dRz2Pos()<<"/"<<seed.dPhi2Pos() ;
535 // }
536  }
537  }
538  else
539  {
540  if ( resItr->dRz2()==std::numeric_limits<float>::infinity()
541  && resItr->dRz2Pos()!=std::numeric_limits<float>::infinity() )
542  {
543  resItr->setNegAttributes(info->dRz2(),info->dPhi2(),info->dRz1(),info->dPhi1()) ;
544  seed.setPosAttributes(resItr->dRz2Pos(),resItr->dPhi2Pos(),resItr->dRz1Pos(),resItr->dPhi1Pos()) ;
545  break ;
546  }
547  else
548  {
549  if ( resItr->dRz2()!=std::numeric_limits<float>::infinity() )
550  {
551  if (resItr->dRz2()!=seed.dRz2())
552  {
553  edm::LogWarning("ElectronSeedGenerator|BadValue")
554  <<"this old seed already has another dRz2"
555  <<"\nold seed mask/dRz2/dPhi2/dRz2Pos/dPhi2Pos: "<<(unsigned int)resItr->hitsMask()<<"/"<<resItr->dRz2()<<"/"<<resItr->dPhi2()<<"/"<<resItr->dRz2Pos()<<"/"<<resItr->dPhi2Pos()
556  <<"\nnew seed mask/dRz2/dPhi2/dRz2Pos/dPhi2Pos: "<<(unsigned int)seed.hitsMask()<<"/"<<seed.dRz2()<<"/"<<seed.dPhi2()<<"/"<<seed.dRz2Pos()<<"/"<<seed.dPhi2Pos() ;
557  }
558  // else
559  // {
560  // edm::LogWarning("ElectronSeedGenerator|UnexpectedValue")
561  // <<"this old seed already knows its dRz2, we suspect duplicates in input trajectry seeds"
562  // <<"\nold seed mask/dRz2/dPhi2/dRz2Pos/dPhi2Pos: "<<(unsigned int)resItr->hitsMask()<<"/"<<resItr->dRz2()<<"/"<<resItr->dPhi2()<<"/"<<resItr->dRz2Pos()<<"/"<<resItr->dPhi2Pos()
563  // <<"\nnew seed mask/dRz2/dPhi2/dRz2Pos/dPhi2Pos: "<<(unsigned int)seed.hitsMask()<<"/"<<seed.dRz2()<<"/"<<seed.dPhi2()<<"/"<<seed.dRz2Pos()<<"/"<<seed.dPhi2Pos() ;
564  // seed.setPosAttributes(resItr->dRz2Pos(),resItr->dPhi2Pos(),resItr->dRz1Pos(),resItr->dPhi1Pos()) ;
565  // }
566  }
567 // if (resItr->dRz2Pos()==std::numeric_limits<float>::infinity())
568 // {
569 // edm::LogWarning("ElectronSeedGenerator|BadValue")
570 // <<"this old seed has no dRz2Pos"
571 // <<"\nold seed mask/dRz2/dPhi2/dRz2Pos/dPhi2Pos: "<<(unsigned int)resItr->hitsMask()<<"/"<<resItr->dRz2()<<"/"<<resItr->dPhi2()<<"/"<<resItr->dRz2Pos()<<"/"<<resItr->dPhi2Pos()
572 // <<"\nnew seed mask/dRz2/dPhi2/dRz2Pos/dPhi2Pos: "<<(unsigned int)seed.hitsMask()<<"/"<<seed.dRz2()<<"/"<<seed.dPhi2()<<"/"<<seed.dRz2Pos()<<"/"<<seed.dPhi2Pos() ;
573 // }
574  }
575  }
576  }
577  }
578 
579  out.emplace_back(seed) ;
580  }
void setPosAttributes(const float dRZ2=std::numeric_limits< float >::infinity(), const float dPhi2=std::numeric_limits< float >::infinity(), const float dRZ1=std::numeric_limits< float >::infinity(), const float dPhi1=std::numeric_limits< float >::infinity())
Definition: ElectronSeed.cc:99
float dRz1() const
float dRz2() const
const CaloClusterRef & caloCluster() const
Definition: ElectronSeed.h:94
return((rh^lh)&mask)
float dPhi2() const
Definition: ElectronSeed.h:122
float dRz2Pos() const
Definition: ElectronSeed.h:127
size_t key() const
Definition: RefToBase.h:250
const double infinity
float dRz2() const
Definition: ElectronSeed.h:126
float dPhi1() const
float dPhi2() const
float dPhi2Pos() const
Definition: ElectronSeed.h:123
void setNegAttributes(const float dRZ2=std::numeric_limits< float >::infinity(), const float dPhi2=std::numeric_limits< float >::infinity(), const float dRZ1=std::numeric_limits< float >::infinity(), const float dPhi1=std::numeric_limits< float >::infinity())
Definition: ElectronSeed.cc:87
bool equivalent(const TrajectorySeed &s1, const TrajectorySeed &s2)
unsigned int hitsMask() const
Definition: ElectronSeed.cc:44
bool ElectronSeedGenerator::prepareElTrackSeed ( ConstRecHitPointer  outerhit,
ConstRecHitPointer  innerhit,
const GlobalPoint vertexPos 
)
private

Definition at line 583 of file ElectronSeedGenerator.cc.

References edm::OwnVector< T, P >::clear(), edm::EventSetup::get(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), LogDebug, MagneticField::nominalValue(), PV3DBase< T, PVType, FrameType >::perp(), trajectoryStateTransform::persistentState(), Propagator::propagate(), pts_, edm::OwnVector< T, P >::push_back(), recHits_, TrajectoryStateOnSurface::surface(), thePropagator, theSetup, theUpdator, KFUpdator::update(), and TrackInfoProducer_cfi::updatedState.

Referenced by addSeed(), and seedsFromRecHits().

586  {
587 
588  // debug prints
589  LogDebug("") <<"[ElectronSeedGenerator::prepareElTrackSeed] inner PixelHit x,y,z "<<innerhit->globalPosition();
590  LogDebug("") <<"[ElectronSeedGenerator::prepareElTrackSeed] outer PixelHit x,y,z "<<outerhit->globalPosition();
591 
592  recHits_.clear();
593 
594  SiPixelRecHit *pixhit=nullptr;
595  SiStripMatchedRecHit2D *striphit=nullptr;
596  const SiPixelRecHit* constpixhit = dynamic_cast <const SiPixelRecHit*> (innerhit->hit());
597  if (constpixhit) {
598  pixhit=new SiPixelRecHit(*constpixhit);
599  recHits_.push_back(pixhit);
600  } else return false;
601  constpixhit = dynamic_cast <const SiPixelRecHit *> (outerhit->hit());
602  if (constpixhit) {
603  pixhit=new SiPixelRecHit(*constpixhit);
604  recHits_.push_back(pixhit);
605  } else {
606  const SiStripMatchedRecHit2D * conststriphit=dynamic_cast <const SiStripMatchedRecHit2D *> (outerhit->hit());
607  if (conststriphit) {
608  striphit = new SiStripMatchedRecHit2D(*conststriphit);
609  recHits_.push_back(striphit);
610  } else return false;
611  }
612 
614 
615  // FIXME to be optimized outside the loop
617  theSetup->get<IdealMagneticFieldRecord>().get(bfield);
618  float nomField = bfield->nominalValue();
619 
620  // make a spiral
621  FastHelix helix(outerhit->globalPosition(),innerhit->globalPosition(),vertexPos,nomField,&*bfield);
622  if ( !helix.isValid()) {
623  return false;
624  }
625  FreeTrajectoryState fts(helix.stateAtVertex());
626  TSOS propagatedState = thePropagator->propagate(fts,innerhit->det()->surface()) ;
627  if (!propagatedState.isValid())
628  return false;
629  TSOS updatedState = theUpdator->update(propagatedState, *innerhit);
630 
631  TSOS propagatedState_out = thePropagator->propagate(updatedState,outerhit->det()->surface()) ;
632  if (!propagatedState_out.isValid())
633  return false;
634  TSOS updatedState_out = theUpdator->update(propagatedState_out, *outerhit);
635  // debug prints
636  LogDebug("") <<"[ElectronSeedGenerator::prepareElTrackSeed] final TSOS, position: "<<updatedState_out.globalPosition()<<" momentum: "<<updatedState_out.globalMomentum();
637  LogDebug("") <<"[ElectronSeedGenerator::prepareElTrackSeed] final TSOS Pt: "<<updatedState_out.globalMomentum().perp();
638  pts_ = trajectoryStateTransform::persistentState(updatedState_out, outerhit->geographicalId().rawId());
639 
640  return true;
641  }
#define LogDebug(id)
T perp() const
Definition: PV3DBase.h:72
int nominalValue() const
The nominal field value for this map in kGauss.
Definition: MagneticField.h:58
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
const edm::EventSetup * theSetup
GlobalPoint globalPosition() const
void push_back(D *&d)
Definition: OwnVector.h:290
TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const override
Definition: KFUpdator.cc:169
const SurfaceType & surface() const
PTrajectoryStateOnDet pts_
void clear()
Definition: OwnVector.h:445
PropagatorWithMaterial * thePropagator
TrajectoryStateOnSurface TSOS
Definition: TestHits.cc:19
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
GlobalVector globalMomentum() const
T get() const
Definition: EventSetup.h:62
Our base class.
Definition: SiPixelRecHit.h:23
void ElectronSeedGenerator::run ( edm::Event e,
const edm::EventSetup setup,
const reco::SuperClusterRefVector sclRefs,
const std::vector< float > &  hoe1s,
const std::vector< float > &  hoe2s,
const std::vector< const TrajectorySeedCollection * > &  seedsV,
reco::ElectronSeedCollection out 
)

Definition at line 221 of file ElectronSeedGenerator.cc.

References beamSpotTag_, edm::OwnVector< T, P >::clear(), data, Exception, fromTrackerSeeds_, edm::EventSetup::get(), edm::Event::getByToken(), mps_fire::i, edm::EventBase::id(), LogDebug, myMatchEle, myMatchPos, edm::ESHandle< T >::product(), recHits_, seedsFromThisCluster(), PixelHitMatcher::setEvent(), GeneralSetup::setup(), edm::RefVector< C, T, F >::size(), theBeamSpot, theInitialSeedCollV, theMeasurementTrackerEventTag, theSetup, theVertices, useRecoVertex_, and verticesTag_.

Referenced by equivalent(), and ElectronSeedProducer::produce().

224  {
225  theInitialSeedCollV = &seedsV;
226 // bool duplicateTrajectorySeeds =false ;
227 // unsigned int i,j ;
228 // for (i=0;i<seeds->size();++i)
229 // for (j=i+1;j<seeds->size();++j)
230 // {
231 // const TrajectorySeed & s1 =(*seeds)[i] ;
232 // const TrajectorySeed & s2 =(*seeds)[j] ;
233 // if ( equivalent(s1,s2) )
234 // {
235 // const PTrajectoryStateOnDet & ss1 = s1.startingState() ;
236 // const LocalTrajectoryParameters & p1 = ss1.parameters() ;
237 // const PTrajectoryStateOnDet & ss2 = s2.startingState() ;
238 // const LocalTrajectoryParameters & p2 = ss2.parameters() ;
239 // duplicateTrajectorySeeds = true ;
240 // std::cout<<"Same hits for "
241 // <<"\n s["<<i<<"] ("<<s1.direction()<<"/"<<ss1.detId()<<"/"<<ss1.surfaceSide()<<"/"<<p1.charge()<<"/"<<p1.position()<<"/"<<p1.momentum()<<")"
242 // <<"\n s["<<j<<"] ("<<s2.direction()<<"/"<<ss2.detId()<<"/"<<ss2.surfaceSide()<<"/"<<p2.charge()<<"/"<<p2.position()<<"/"<<p2.momentum()<<")"
243 // <<std::endl ;
244 // }
245 // }
246 // if (duplicateTrajectorySeeds)
247 // { edm::LogWarning("ElectronSeedGenerator|DuplicateTrajectorySeeds")<<"We see several identical trajectory seeds." ; }
248 
249  //Retrieve tracker topology from geometry
251  setup.get<TrackerTopologyRcd>().get(tTopoHand);
252  const TrackerTopology *tTopo=tTopoHand.product();
253 
254  theSetup= &setup;
255 
256 
257  // Step A: set Event for the TrajectoryBuilder
260  myMatchEle->setEvent(*data);
261  myMatchPos->setEvent(*data);
262 
263  // get the beamspot from the Event:
264  //e.getByType(theBeamSpot);
266 
267  // if required get the vertices
269 
270  if (!fromTrackerSeeds_)
271  { throw cms::Exception("NotSupported") << "Here in ElectronSeedGenerator " << __FILE__ << ":" << __LINE__ << " I would like to do theMeasurementTracker->update(e); but that no longer makes sense.\n";
272  }
273 
274  for (unsigned int i=0;i<sclRefs.size();++i) {
275  // Find the seeds
276  recHits_.clear();
277 
278  LogDebug ("ElectronSeedGenerator") << "new cluster, calling seedsFromThisCluster";
279  seedsFromThisCluster(sclRefs[i],hoe1s[i],hoe2s[i],out,tTopo);
280  }
281 
282  LogDebug ("ElectronSeedGenerator") << ": For event "<<e.id();
283  LogDebug ("ElectronSeedGenerator") <<"Nr of superclusters after filter: "<<sclRefs.size()
284  <<", no. of ElectronSeeds found = " << out.size();
285 
286 #ifdef COUNT_ElectronSeeds
287  stcount.s+=sclRefs.size();
288  stcount.n+=out.size();
289 #endif
290 
291 }
#define LogDebug(id)
PixelHitMatcher * myMatchEle
void setEvent(const MeasurementTrackerEvent &event)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:579
edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerEventTag
const edm::EventSetup * theSetup
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:2
edm::Handle< std::vector< reco::Vertex > > theVertices
void seedsFromThisCluster(edm::Ref< reco::SuperClusterCollection > seedCluster, float hoe1, float hoe2, reco::ElectronSeedCollection &out, const TrackerTopology *tTopo)
void clear()
Definition: OwnVector.h:445
edm::Handle< reco::BeamSpot > theBeamSpot
edm::EDGetTokenT< std::vector< reco::Vertex > > verticesTag_
PixelHitMatcher * myMatchPos
edm::EDGetTokenT< reco::BeamSpot > beamSpotTag_
edm::EventID id() const
Definition: EventBase.h:60
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
T get() const
Definition: EventSetup.h:62
size_type size() const
Size of the RefVector.
Definition: RefVector.h:107
const std::vector< const TrajectorySeedCollection * > * theInitialSeedCollV
T const * product() const
Definition: ESHandle.h:86
void ElectronSeedGenerator::seedsFromRecHits ( std::vector< std::pair< RecHitWithDist, ConstRecHitPointer > > &  elePixelHits,
PropagationDirection dir,
const GlobalPoint vertexPos,
const reco::ElectronSeed::CaloClusterRef cluster,
reco::ElectronSeedCollection out,
bool  positron 
)
private

Definition at line 439 of file ElectronSeedGenerator.cc.

References addSeed(), LogDebug, NuclearInteractionSecond_cff::pixelHits, prepareElTrackSeed(), pts_, recHits_, SurveyInfoScenario_cff::seed, seedsFromTrajectorySeeds(), reco::ElectronSeed::setCaloCluster(), and findQualityFiles::v.

Referenced by seedsFromThisCluster().

444  {
445  if (!pixelHits.empty())
446  { LogDebug("ElectronSeedGenerator") << "Compatible "<<(positron?"positron":"electron")<<" hits found." ; }
447 
448  std::vector<std::pair<RecHitWithDist,ConstRecHitPointer> >::iterator v ;
449  for ( v = pixelHits.begin() ; v != pixelHits.end() ; v++ )
450  {
451  if (!positron)
452  { (*v).first.invert() ; }
453  if (!prepareElTrackSeed((*v).first.recHit(),(*v).second,vertexPos))
454  { continue ; }
456  seed.setCaloCluster(cluster) ;
457  addSeed(seed,nullptr,positron,out) ;
458  }
459  }
#define LogDebug(id)
PTrajectoryStateOnDet pts_
bool prepareElTrackSeed(ConstRecHitPointer outerhit, ConstRecHitPointer innerhit, const GlobalPoint &vertexPos)
void addSeed(reco::ElectronSeed &seed, const SeedWithInfo *info, bool positron, reco::ElectronSeedCollection &out)
dbl *** dir
Definition: mlp_gen.cc:35
void ElectronSeedGenerator::seedsFromThisCluster ( edm::Ref< reco::SuperClusterCollection seedCluster,
float  hoe1,
float  hoe2,
reco::ElectronSeedCollection out,
const TrackerTopology tTopo 
)
private

Definition at line 294 of file ElectronSeedGenerator.cc.

References alongMomentum, PixelHitMatcher::compatibleHits(), PixelHitMatcher::compatibleSeeds(), deltaPhi1Coef1_, deltaPhi1Coef2_, deltaPhi1High_, deltaPhi1Low_, deltaPhi2B_, deltaPhi2F_, deltaZ1WithVertex_, dir, dynamicphiroad_, ele_convert(), PVValHelper::eta, fromTrackerSeeds_, PixelHitMatcher::getVertex(), highPtThreshold_, lowPtThreshold_, myMatchEle, myMatchPos, nSigmasDeltaZ1_, reco::BeamSpot::position(), edm::Handle< T >::product(), mathSSE::return(), seedsFromRecHits(), seedsFromTrajectorySeeds(), PixelHitMatcher::set1stLayer(), PixelHitMatcher::set1stLayerZRange(), PixelHitMatcher::set2ndLayer(), PixelHitMatcher::setUseRecoVertex(), fftjetvertexadder_cfi::sigmaZ, reco::BeamSpot::sigmaZ(), reco::BeamSpot::sigmaZ0Error(), sizeWindowENeg_, mathSSE::sqrt(), theBeamSpot, theInitialSeedCollV, theNavigationSchool, theVertices, and useRecoVertex_.

Referenced by run().

297 {
298  float clusterEnergy = seedCluster->energy() ;
299  GlobalPoint clusterPos
300  ( seedCluster->position().x(),
301  seedCluster->position().y(),
302  seedCluster->position().z() ) ;
303  reco::ElectronSeed::CaloClusterRef caloCluster(seedCluster) ;
304 
305  //LogDebug("") << "[ElectronSeedGenerator::seedsFromThisCluster] new supercluster with energy: " << clusterEnergy ;
306  //LogDebug("") << "[ElectronSeedGenerator::seedsFromThisCluster] and position: " << clusterPos ;
307 
308  if (dynamicphiroad_)
309  {
310  float clusterEnergyT = clusterEnergy / cosh( EleRelPoint(clusterPos,theBeamSpot->position()).eta() ) ;
311 
312  float deltaPhi1 ;
313  if (clusterEnergyT < lowPtThreshold_)
314  { deltaPhi1= deltaPhi1Low_ ; }
315  else if (clusterEnergyT > highPtThreshold_)
316  { deltaPhi1= deltaPhi1High_ ; }
317  else
318  { deltaPhi1 = deltaPhi1Coef1_ + deltaPhi1Coef2_/clusterEnergyT ; }
319 
320  float ephimin1 = -deltaPhi1*sizeWindowENeg_ ;
321  float ephimax1 = deltaPhi1*(1.-sizeWindowENeg_);
322  float pphimin1 = -deltaPhi1*(1.-sizeWindowENeg_);
323  float pphimax1 = deltaPhi1*sizeWindowENeg_;
324 
325  float phimin2B = -deltaPhi2B_/2. ;
326  float phimax2B = deltaPhi2B_/2. ;
327  float phimin2F = -deltaPhi2F_/2. ;
328  float phimax2F = deltaPhi2F_/2. ;
329 
330 
331  myMatchEle->set1stLayer(ephimin1,ephimax1);
332  myMatchPos->set1stLayer(pphimin1,pphimax1);
333  myMatchEle->set2ndLayer(phimin2B,phimax2B, phimin2F,phimax2F);
334  myMatchPos->set2ndLayer(phimin2B,phimax2B, phimin2F,phimax2F);
335  }
336 
338 
339  if (!useRecoVertex_) // here use the beam spot position
340  {
341  double sigmaZ=theBeamSpot->sigmaZ();
342  double sigmaZ0Error=theBeamSpot->sigmaZ0Error();
343  double sq=sqrt(sigmaZ*sigmaZ+sigmaZ0Error*sigmaZ0Error);
344  double myZmin1=theBeamSpot->position().z()-nSigmasDeltaZ1_*sq;
345  double myZmax1=theBeamSpot->position().z()+nSigmasDeltaZ1_*sq;
346 
347  GlobalPoint vertexPos ;
348  ele_convert(theBeamSpot->position(),vertexPos) ;
349 
350  myMatchEle->set1stLayerZRange(myZmin1,myZmax1);
351  myMatchPos->set1stLayerZRange(myZmin1,myZmax1);
352 
353  if (!fromTrackerSeeds_)
354  {
355  // try electron
356  std::vector<std::pair<RecHitWithDist,ConstRecHitPointer> > elePixelHits
357  = myMatchEle->compatibleHits(clusterPos,vertexPos,
358  clusterEnergy,-1., tTopo, *theNavigationSchool) ;
360  seedsFromRecHits(elePixelHits,dir,eleVertex,caloCluster,out,false) ;
361  // try positron
362  std::vector<std::pair<RecHitWithDist,ConstRecHitPointer> > posPixelHits
363  = myMatchPos->compatibleHits(clusterPos,vertexPos,clusterEnergy,1.,tTopo, *theNavigationSchool) ;
365  seedsFromRecHits(posPixelHits,dir,posVertex,caloCluster,out,true) ;
366  }
367  else
368  {
369  // try electron
370  std::vector<SeedWithInfo> elePixelSeeds
371  = myMatchEle->compatibleSeeds(*theInitialSeedCollV,clusterPos,vertexPos,clusterEnergy,-1.) ;
372  seedsFromTrajectorySeeds(elePixelSeeds,caloCluster,hoe1,hoe2,out,false) ;
373  // try positron
374  std::vector<SeedWithInfo> posPixelSeeds
375  = myMatchPos->compatibleSeeds(*theInitialSeedCollV,clusterPos,vertexPos,clusterEnergy,1.) ;
376  seedsFromTrajectorySeeds(posPixelSeeds,caloCluster,hoe1,hoe2,out,true) ;
377  }
378 
379  }
380  else // here we use the reco vertices
381  {
382 
383  myMatchEle->setUseRecoVertex(true) ; //Hit matchers need to know that the vertex is known
385 
386  const std::vector<reco::Vertex> * vtxCollection = theVertices.product() ;
387  std::vector<reco::Vertex>::const_iterator vtxIter ;
388  for (vtxIter = vtxCollection->begin(); vtxIter != vtxCollection->end() ; vtxIter++)
389  {
390 
391  GlobalPoint vertexPos(vtxIter->position().x(),vtxIter->position().y(),vtxIter->position().z());
392  double myZmin1, myZmax1 ;
393  if (vertexPos.z()==theBeamSpot->position().z())
394  { // in case vetex not found
395  double sigmaZ=theBeamSpot->sigmaZ();
396  double sigmaZ0Error=theBeamSpot->sigmaZ0Error();
397  double sq=sqrt(sigmaZ*sigmaZ+sigmaZ0Error*sigmaZ0Error);
398  myZmin1=theBeamSpot->position().z()-nSigmasDeltaZ1_*sq;
399  myZmax1=theBeamSpot->position().z()+nSigmasDeltaZ1_*sq;
400  }
401  else
402  { // a vertex has been recoed
403  myZmin1=vtxIter->position().z()-deltaZ1WithVertex_;
404  myZmax1=vtxIter->position().z()+deltaZ1WithVertex_;
405  }
406 
407  myMatchEle->set1stLayerZRange(myZmin1,myZmax1);
408  myMatchPos->set1stLayerZRange(myZmin1,myZmax1);
409 
410  if (!fromTrackerSeeds_)
411  {
412  // try electron
413  std::vector<std::pair<RecHitWithDist,ConstRecHitPointer> > elePixelHits
414  = myMatchEle->compatibleHits(clusterPos,vertexPos,clusterEnergy,-1.,tTopo, *theNavigationSchool) ;
415  seedsFromRecHits(elePixelHits,dir,vertexPos,caloCluster,out,false) ;
416  // try positron
417  std::vector<std::pair<RecHitWithDist,ConstRecHitPointer> > posPixelHits
418  = myMatchPos->compatibleHits(clusterPos,vertexPos,clusterEnergy,1.,tTopo, *theNavigationSchool) ;
419  seedsFromRecHits(posPixelHits,dir,vertexPos,caloCluster,out,true) ;
420  }
421  else
422  {
423  // try electron
424  std::vector<SeedWithInfo> elePixelSeeds
425  = myMatchEle->compatibleSeeds(*theInitialSeedCollV,clusterPos,vertexPos,clusterEnergy,-1.) ;
426  seedsFromTrajectorySeeds(elePixelSeeds,caloCluster,hoe1,hoe2,out,false) ;
427  // try positron
428  std::vector<SeedWithInfo> posPixelSeeds
429  = myMatchPos->compatibleSeeds(*theInitialSeedCollV,clusterPos,vertexPos,clusterEnergy,1.) ;
430  seedsFromTrajectorySeeds(posPixelSeeds,caloCluster,hoe1,hoe2,out,true) ;
431  }
432  }
433  }
434 
435  return ;
436  }
double sigmaZ0Error() const
error on sigma z
Definition: BeamSpot.h:96
PixelHitMatcher * myMatchEle
const NavigationSchool * theNavigationSchool
PropagationDirection
edm::Handle< std::vector< reco::Vertex > > theVertices
void set2ndLayer(float dummyphi2minB, float dummyphi2maxB, float dummyphi2minF, float dummyphi2maxF)
return((rh^lh)&mask)
void set1stLayerZRange(float zmin1, float zmax1)
T sqrt(T t)
Definition: SSEVec.h:18
T z() const
Definition: PV3DBase.h:64
edm::Handle< reco::BeamSpot > theBeamSpot
std::vector< SeedWithInfo > compatibleSeeds(const std::vector< const TrajectorySeedCollection * > &seedsV, const GlobalPoint &xmeas, const GlobalPoint &vprim, float energy, float charge)
PixelHitMatcher * myMatchPos
void seedsFromRecHits(std::vector< std::pair< RecHitWithDist, ConstRecHitPointer > > &elePixelHits, PropagationDirection &dir, const GlobalPoint &vertexPos, const reco::ElectronSeed::CaloClusterRef &cluster, reco::ElectronSeedCollection &out, bool positron)
T const * product() const
Definition: Handle.h:81
void set1stLayer(float dummyphi1min, float dummyphi1max)
double sigmaZ() const
sigma z
Definition: BeamSpot.h:80
void ele_convert(const Type1 &obj1, Type2 &obj2)
const Point & position() const
position
Definition: BeamSpot.h:62
dbl *** dir
Definition: mlp_gen.cc:35
const std::vector< const TrajectorySeedCollection * > * theInitialSeedCollV
std::vector< std::pair< RecHitWithDist, ConstRecHitPointer > > compatibleHits(const GlobalPoint &xmeas, const GlobalPoint &vprim, float energy, float charge, const TrackerTopology *tTopo, const NavigationSchool &navigationSchool)
void setUseRecoVertex(bool val)
void seedsFromTrajectorySeeds(const std::vector< SeedWithInfo > &elePixelSeeds, const reco::ElectronSeed::CaloClusterRef &cluster, float hoe1, float hoe2, reco::ElectronSeedCollection &out, bool positron)
void ElectronSeedGenerator::seedsFromTrajectorySeeds ( const std::vector< SeedWithInfo > &  elePixelSeeds,
const reco::ElectronSeed::CaloClusterRef cluster,
float  hoe1,
float  hoe2,
reco::ElectronSeedCollection out,
bool  positron 
)
private

Definition at line 462 of file ElectronSeedGenerator.cc.

References addSeed(), LogDebug, alignCSCRings::s, and SurveyInfoScenario_cff::seed.

Referenced by seedsFromRecHits(), and seedsFromThisCluster().

467  {
468  if (!pixelSeeds.empty())
469  { LogDebug("ElectronSeedGenerator") << "Compatible "<<(positron?"positron":"electron")<<" seeds found." ; }
470 
471  std::vector<SeedWithInfo>::const_iterator s;
472  for ( s = pixelSeeds.begin() ; s != pixelSeeds.end() ; s++ )
473  {
474  reco::ElectronSeed seed(s->seed()) ;
475  seed.setCaloCluster(cluster);
476  seed.initTwoHitSeed(s->hitsMask());
477  addSeed(seed,&*s,positron,out) ;
478  }
479  }
#define LogDebug(id)
void addSeed(reco::ElectronSeed &seed, const SeedWithInfo *info, bool positron, reco::ElectronSeedCollection &out)
void ElectronSeedGenerator::setupES ( const edm::EventSetup setup)

Definition at line 146 of file ElectronSeedGenerator.cc.

References alongMomentum, cacheIDCkfComp_, edm::eventsetup::EventSetupRecord::cacheIdentifier(), cacheIDMagField_, cacheIDNavSchool_, cacheIDTrkGeom_, fromTrackerSeeds_, edm::EventSetup::get(), myMatchEle, myMatchPos, edm::ESHandle< T >::product(), PixelHitMatcher::setES(), theMagField, theMeasurementTracker, theMeasurementTrackerName, theNavigationSchool, thePropagator, and theTrackerGeometry.

Referenced by ElectronSeedProducer::produce().

146  {
147 
148  // get records if necessary (called once per event)
149  bool tochange=false;
150 
153  cacheIDMagField_=setup.get<IdealMagneticFieldRecord>().cacheIdentifier();
154  if (thePropagator) delete thePropagator;
156  tochange=true;
157  }
158 
160  edm::ESHandle<MeasurementTracker> measurementTrackerHandle;
161  setup.get<CkfComponentsRecord>().get(theMeasurementTrackerName,measurementTrackerHandle);
162  cacheIDCkfComp_=setup.get<CkfComponentsRecord>().cacheIdentifier();
163  theMeasurementTracker = measurementTrackerHandle.product();
164  tochange=true;
165  }
166 
167  //edm::ESHandle<TrackerGeometry> trackerGeometryHandle;
169  cacheIDTrkGeom_=setup.get<TrackerDigiGeometryRecord>().cacheIdentifier();
171  tochange=true; //FIXME
172  }
173 
174  if (tochange) {
177  }
178 
181  setup.get<NavigationSchoolRecord>().get("SimpleNavigationSchool", nav);
182  cacheIDNavSchool_=setup.get<NavigationSchoolRecord>().cacheIdentifier();
184  }
185 
186 // if (cacheIDGeom_!=setup.get<TrackerRecoGeometryRecord>().cacheIdentifier()) {
187 // setup.get<TrackerRecoGeometryRecord>().get( theGeomSearchTracker );
188 // cacheIDGeom_=setup.get<TrackerRecoGeometryRecord>().cacheIdentifier();
189 // }
190 
191 }
unsigned long long cacheIdentifier() const
unsigned long long cacheIDNavSchool_
PixelHitMatcher * myMatchEle
void setES(const MagneticField *, const MeasurementTracker *theMeasurementTracker, const TrackerGeometry *trackerGeometry)
const NavigationSchool * theNavigationSchool
unsigned long long cacheIDMagField_
unsigned long long cacheIDTrkGeom_
edm::ESHandle< TrackerGeometry > theTrackerGeometry
PropagatorWithMaterial * thePropagator
PixelHitMatcher * myMatchPos
edm::ESHandle< MagneticField > theMagField
const MeasurementTracker * theMeasurementTracker
T get() const
Definition: EventSetup.h:62
T const * product() const
Definition: ESHandle.h:86
unsigned long long cacheIDCkfComp_

Member Data Documentation

edm::EDGetTokenT<reco::BeamSpot> ElectronSeedGenerator::beamSpotTag_
private

Definition at line 92 of file ElectronSeedGenerator.h.

Referenced by run().

unsigned long long ElectronSeedGenerator::cacheIDCkfComp_
private

Definition at line 138 of file ElectronSeedGenerator.h.

Referenced by setupES().

unsigned long long ElectronSeedGenerator::cacheIDMagField_
private

Definition at line 135 of file ElectronSeedGenerator.h.

Referenced by setupES().

unsigned long long ElectronSeedGenerator::cacheIDNavSchool_
private

Definition at line 137 of file ElectronSeedGenerator.h.

Referenced by setupES().

unsigned long long ElectronSeedGenerator::cacheIDTrkGeom_
private

Definition at line 139 of file ElectronSeedGenerator.h.

Referenced by setupES().

double ElectronSeedGenerator::deltaPhi1Coef1_
private

Definition at line 108 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator(), and seedsFromThisCluster().

double ElectronSeedGenerator::deltaPhi1Coef2_
private

Definition at line 109 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator(), and seedsFromThisCluster().

float ElectronSeedGenerator::deltaPhi1High_
private

Definition at line 103 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator(), and seedsFromThisCluster().

float ElectronSeedGenerator::deltaPhi1Low_
private

Definition at line 103 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator(), and seedsFromThisCluster().

float ElectronSeedGenerator::deltaPhi2B_
private

Definition at line 104 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator(), and seedsFromThisCluster().

float ElectronSeedGenerator::deltaPhi2F_
private

Definition at line 105 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator(), and seedsFromThisCluster().

float ElectronSeedGenerator::deltaZ1WithVertex_
private

Definition at line 97 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator(), and seedsFromThisCluster().

bool ElectronSeedGenerator::dynamicphiroad_
private

Definition at line 84 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator(), and seedsFromThisCluster().

bool ElectronSeedGenerator::fromTrackerSeeds_
private

Definition at line 85 of file ElectronSeedGenerator.h.

Referenced by run(), seedsFromThisCluster(), and setupES().

float ElectronSeedGenerator::highPtThreshold_
private

Definition at line 95 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator(), and seedsFromThisCluster().

float ElectronSeedGenerator::lowPtThreshold_
private

Definition at line 94 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator(), and seedsFromThisCluster().

PixelHitMatcher* ElectronSeedGenerator::myMatchEle
private
PixelHitMatcher* ElectronSeedGenerator::myMatchPos
private
float ElectronSeedGenerator::nSigmasDeltaZ1_
private

Definition at line 96 of file ElectronSeedGenerator.h.

Referenced by seedsFromThisCluster().

float ElectronSeedGenerator::phiMax2B_
private

Definition at line 100 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator().

float ElectronSeedGenerator::phiMax2F_
private

Definition at line 102 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator().

float ElectronSeedGenerator::phiMin2B_
private

Definition at line 99 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator().

float ElectronSeedGenerator::phiMin2F_
private

Definition at line 101 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator().

PTrajectoryStateOnDet ElectronSeedGenerator::pts_
private

Definition at line 132 of file ElectronSeedGenerator.h.

Referenced by prepareElTrackSeed(), and seedsFromRecHits().

PRecHitContainer ElectronSeedGenerator::recHits_
private

Definition at line 131 of file ElectronSeedGenerator.h.

Referenced by prepareElTrackSeed(), run(), and seedsFromRecHits().

float ElectronSeedGenerator::sizeWindowENeg_
private

Definition at line 98 of file ElectronSeedGenerator.h.

Referenced by seedsFromThisCluster().

edm::Handle<reco::BeamSpot> ElectronSeedGenerator::theBeamSpot
private

Definition at line 91 of file ElectronSeedGenerator.h.

Referenced by run(), and seedsFromThisCluster().

const std::vector<const TrajectorySeedCollection*>* ElectronSeedGenerator::theInitialSeedCollV = 0
private

Definition at line 114 of file ElectronSeedGenerator.h.

Referenced by run(), and seedsFromThisCluster().

edm::ESHandle<MagneticField> ElectronSeedGenerator::theMagField
private

Definition at line 116 of file ElectronSeedGenerator.h.

Referenced by setupES().

const MeasurementTracker* ElectronSeedGenerator::theMeasurementTracker
private

Definition at line 123 of file ElectronSeedGenerator.h.

Referenced by setupES().

edm::EDGetTokenT<MeasurementTrackerEvent> ElectronSeedGenerator::theMeasurementTrackerEventTag
private

Definition at line 124 of file ElectronSeedGenerator.h.

Referenced by run().

std::string ElectronSeedGenerator::theMeasurementTrackerName
private

Definition at line 122 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator(), and setupES().

const NavigationSchool* ElectronSeedGenerator::theNavigationSchool
private

Definition at line 126 of file ElectronSeedGenerator.h.

Referenced by seedsFromThisCluster(), and setupES().

PropagatorWithMaterial* ElectronSeedGenerator::thePropagator
private

Definition at line 120 of file ElectronSeedGenerator.h.

Referenced by prepareElTrackSeed(), setupES(), and ~ElectronSeedGenerator().

const edm::EventSetup* ElectronSeedGenerator::theSetup
private

Definition at line 128 of file ElectronSeedGenerator.h.

Referenced by prepareElTrackSeed(), and run().

edm::ESHandle<TrackerGeometry> ElectronSeedGenerator::theTrackerGeometry
private

Definition at line 117 of file ElectronSeedGenerator.h.

Referenced by setupES().

KFUpdator* ElectronSeedGenerator::theUpdator
private
edm::Handle<std::vector<reco::Vertex> > ElectronSeedGenerator::theVertices
private

Definition at line 88 of file ElectronSeedGenerator.h.

Referenced by run(), and seedsFromThisCluster().

bool ElectronSeedGenerator::useRecoVertex_
private

Definition at line 87 of file ElectronSeedGenerator.h.

Referenced by ElectronSeedGenerator(), run(), and seedsFromThisCluster().

edm::EDGetTokenT<std::vector<reco::Vertex> > ElectronSeedGenerator::verticesTag_
private

Definition at line 89 of file ElectronSeedGenerator.h.

Referenced by run().