CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
FastElectronSeedGenerator Class Reference

#include <FastElectronSeedGenerator.h>

Public Types

typedef
TransientTrackingRecHit::ConstRecHitPointer 
ConstRecHitPointer
 
enum  mode { HLT, offline, unknown }
 
typedef edm::OwnVector
< TrackingRecHit
PRecHitContainer
 
typedef
TransientTrackingRecHit::RecHitContainer 
RecHitContainer
 
typedef
TransientTrackingRecHit::RecHitPointer 
RecHitPointer
 

Public Member Functions

 FastElectronSeedGenerator (const edm::ParameterSet &pset, double pTMin, const edm::InputTag &beamSpot)
 
void run (edm::Event &e, const reco::SuperClusterRefVector &sclRefs, const SiTrackerGSMatchedRecHit2DCollection *theGSRecHits, const edm::SimTrackContainer *theSimTracks, TrajectorySeedCollection *seeds, reco::ElectronSeedCollection &out)
 
void setup (bool)
 
void setupES (const edm::EventSetup &setup)
 
 ~FastElectronSeedGenerator ()
 

Private Member Functions

void addASeedToThisCluster (edm::Ref< reco::SuperClusterCollection > seedCluster, std::vector< TrackerRecHit > &theHits, const TrajectorySeed &theTrackerSeed, std::vector< reco::ElectronSeed > &result)
 
bool prepareElTrackSeed (ConstRecHitPointer outerhit, ConstRecHitPointer innerhit, const GlobalPoint &vertexPos)
 

Private Attributes

math::XYZPoint BSPosition_
 
float deltaPhi1High_
 
float deltaPhi1Low_
 
float deltaPhi2_
 
bool dynamicphiroad_
 
bool fromTrackerSeeds_
 
float highPtThreshold_
 
float lowPtThreshold_
 
FastPixelHitMatchermyGSPixelMatcher
 
float phimax2_
 
float phimin2_
 
double pTMin2
 
PTrajectoryStateOnDet pts_
 
PRecHitContainer recHits_
 
bool searchInTIDTEC
 
float sizeWindowENeg_
 
const edm::InputTag theBeamSpot
 
const GeometricSearchTrackertheGeomSearchTracker
 
TrajectorySeedCollectiontheInitialSeedColl
 
const MagneticFieldtheMagField
 
const MagneticFieldMaptheMagneticFieldMap
 
PropagatorWithMaterialthePropagator
 
const edm::EventSetuptheSetup
 
const TrackerGeometrytheTrackerGeometry
 
const TrackerInteractionGeometrytheTrackerInteractionGeometry
 
KFUpdatortheUpdator
 
double zmax1_
 
double zmin1_
 

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
Patrick Janot

Description: Top algorithm producing ElectronSeeds, ported from FAMOS

Implementation: future redesign...

Definition at line 51 of file FastElectronSeedGenerator.h.

Member Typedef Documentation

Definition at line 57 of file FastElectronSeedGenerator.h.

Definition at line 56 of file FastElectronSeedGenerator.h.

Definition at line 59 of file FastElectronSeedGenerator.h.

Definition at line 58 of file FastElectronSeedGenerator.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

FastElectronSeedGenerator::FastElectronSeedGenerator ( const edm::ParameterSet pset,
double  pTMin,
const edm::InputTag beamSpot 
)

Definition at line 53 of file FastElectronSeedGenerator.cc.

References gather_cfg::cout, fromTrackerSeeds_, edm::ParameterSet::getParameter(), myGSPixelMatcher, and searchInTIDTEC.

57  :
58  dynamicphiroad_(pset.getParameter<bool>("dynamicPhiRoad")),
59  lowPtThreshold_(pset.getParameter<double>("LowPtThreshold")),
60  highPtThreshold_(pset.getParameter<double>("HighPtThreshold")),
61  sizeWindowENeg_(pset.getParameter<double>("SizeWindowENeg")),
62  phimin2_(pset.getParameter<double>("PhiMin2")),
63  phimax2_(pset.getParameter<double>("PhiMax2")),
64  deltaPhi1Low_(pset.getParameter<double>("DeltaPhi1Low")),
65  deltaPhi1High_(pset.getParameter<double>("DeltaPhi1High")),
66  deltaPhi2_(pset.getParameter<double>("DeltaPhi2")),
67  pTMin2(pTMin*pTMin),
69  fromTrackerSeeds_(pset.getParameter<bool>("fromTrackerSeeds")),
71  // theMeasurementTracker(0),
72  // theNavigationSchool(0)
73  theSetup(0), theBeamSpot(beamSpot)
74 {
75 
76 #ifdef FAMOS_DEBUG
77  std::cout << "FromTrackerSeeds = " << fromTrackerSeeds_ << std::endl;
78 #endif
79 
80  // Instantiate the pixel hit matcher
81  searchInTIDTEC = pset.getParameter<bool>("searchInTIDTEC");
82  myGSPixelMatcher = new FastPixelHitMatcher(pset.getParameter<double>("ePhiMin1"),
83  pset.getParameter<double>("ePhiMax1"),
84  pset.getParameter<double>("pPhiMin1"),
85  pset.getParameter<double>("pPhiMax1"),
86  pset.getParameter<double>("PhiMin2"),
87  pset.getParameter<double>("PhiMax2"),
88  pset.getParameter<double>("z2MinB"),
89  pset.getParameter<double>("z2MaxB"),
90  pset.getParameter<double>("r2MinF"),
91  pset.getParameter<double>("r2MaxF"),
92  pset.getParameter<double>("rMinI"),
93  pset.getParameter<double>("rMaxI"),
94  pset.getParameter<bool>("searchInTIDTEC"));
95 
96 }
T getParameter(std::string const &) const
const edm::EventSetup * theSetup
PropagatorWithMaterial * thePropagator
FastPixelHitMatcher * myGSPixelMatcher
tuple cout
Definition: gather_cfg.py:121
FastElectronSeedGenerator::~FastElectronSeedGenerator ( )

Definition at line 98 of file FastElectronSeedGenerator.cc.

References myGSPixelMatcher, thePropagator, and theUpdator.

98  {
99 
100  // delete theNavigationSchool;
101  delete myGSPixelMatcher;
102  // delete myMatchPos;
103  delete thePropagator;
104  delete theUpdator;
105 
106 }
PropagatorWithMaterial * thePropagator
FastPixelHitMatcher * myGSPixelMatcher

Member Function Documentation

void FastElectronSeedGenerator::addASeedToThisCluster ( edm::Ref< reco::SuperClusterCollection seedCluster,
std::vector< TrackerRecHit > &  theHits,
const TrajectorySeed theTrackerSeed,
std::vector< reco::ElectronSeed > &  result 
)
private

Definition at line 308 of file FastElectronSeedGenerator.cc.

References alongMomentum, BSPosition_, FastPixelHitMatcher::compatibleHits(), gather_cfg::cout, deltaPhi1High_, deltaPhi1Low_, deltaPhi2_, dir, dynamicphiroad_, fromTrackerSeeds_, FastPixelHitMatcher::getVertex(), highPtThreshold_, lowPtThreshold_, myGSPixelMatcher, prepareElTrackSeed(), pts_, recHits_, hitfit::return, alignCSCRings::s, FastPixelHitMatcher::set1stLayer(), FastPixelHitMatcher::set2ndLayer(), reco::ElectronSeed::setCaloCluster(), funct::sin(), sizeWindowENeg_, v, and TrackValidation_HighPurity_cff::valid.

Referenced by run().

312 {
313 
314  float clusterEnergy = seedCluster->energy();
315  GlobalPoint clusterPos(seedCluster->position().x(),
316  seedCluster->position().y(),
317  seedCluster->position().z());
318  const GlobalPoint vertexPos(BSPosition_.x(),BSPosition_.y(),BSPosition_.z());
319 
320 #ifdef FAMOS_DEBUG
321  std::cout << "[FastElectronSeedGenerator::seedsFromThisCluster] "
322  << "new supercluster with energy: " << clusterEnergy << std::endl;
323  std::cout << "[FastElectronSeedGenerator::seedsFromThisCluster] "
324  << "and position: " << clusterPos << std::endl;
325  std::cout << "Vertex position : " << vertexPos << std::endl;
326 #endif
327 
328  //Here change the deltaPhi window of the first pixel layer in function of the seed pT
329  if (dynamicphiroad_) {
330  float clusterEnergyT = clusterEnergy*sin(seedCluster->position().theta()) ;
331 
332  float deltaPhi1 = 0.875/clusterEnergyT + 0.055;
333  if (clusterEnergyT < lowPtThreshold_) deltaPhi1= deltaPhi1Low_;
334  if (clusterEnergyT > highPtThreshold_) deltaPhi1= deltaPhi1High_;
335 
336  float ephimin1 = -deltaPhi1*sizeWindowENeg_ ;
337  float ephimax1 = deltaPhi1*(1.-sizeWindowENeg_);
338  float pphimin1 = -deltaPhi1*(1.-sizeWindowENeg_);
339  float pphimax1 = deltaPhi1*sizeWindowENeg_;
340 
341  float phimin2 = -deltaPhi2_/2.;
342  float phimax2 = deltaPhi2_/2.;
343 
344  myGSPixelMatcher->set1stLayer(ephimin1,ephimax1,pphimin1,pphimax1);
345  myGSPixelMatcher->set2ndLayer(phimin2,phimax2);
346 
347  }
348 
349 
350 
352 
353  // Find the best pixel pair compatible with the cluster
354  std::vector<std::pair<ConstRecHitPointer,ConstRecHitPointer> > compatPixelHits =
355  myGSPixelMatcher->compatibleHits(clusterPos, vertexPos, clusterEnergy, theHits);
356 
357  // The corresponding origin vertex
358  double vertexZ = myGSPixelMatcher->getVertex();
359  GlobalPoint theVertex(BSPosition_.x(),BSPosition_.y(),vertexZ);
360 
361  // Create the Electron pixel seed.
362  if (!compatPixelHits.empty() ) {
363 #ifdef FAMOS_DEBUG
364  std::cout << "[FastElectronSeedGenerator::seedsFromThisCluster] "
365  << " electron compatible hits found " << std::endl;
366 #endif
367  // Pixel-matching case: create the seed from scratch
368  if (!fromTrackerSeeds_) {
369 
370  std::vector<std::pair<ConstRecHitPointer,ConstRecHitPointer> >::iterator v;
371  for (v = compatPixelHits.begin(); v != compatPixelHits.end(); ++v ) {
372 
373  bool valid = prepareElTrackSeed(v->first,v->second, theVertex);
374  if (valid) {
376  s.setCaloCluster(reco::ElectronSeed::CaloClusterRef(seedCluster)) ;
377  result.push_back(s);
378  }
379 
380  }
381 
382  // Here we take instead the seed from a-priori seed collection
383  } else {
384 
385  reco::ElectronSeed s(theTrackerSeed);
386  s.setCaloCluster(reco::ElectronSeed::CaloClusterRef(seedCluster)) ;
387  result.push_back(s);
388  }
389 
390  }
391 
392 #ifdef FAMOS_DEBUG
393  else
394  std::cout << "[FastElectronSeedGenerator::seedsFromThisCluster] "
395  << " No electron compatible hits found " << std::endl;
396 #endif
397 
398 
399  // And return !
400  return ;
401 
402 }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
PropagationDirection
void set1stLayer(float ephimin, float ephimax, float pphimin, float pphimax)
std::vector< std::pair< ConstRecHitPointer, ConstRecHitPointer > > compatibleHits(const GlobalPoint &xmeas, const GlobalPoint &vprim, float energy, std::vector< TrackerRecHit > &theHits)
tuple result
Definition: query.py:137
FastPixelHitMatcher * myGSPixelMatcher
bool prepareElTrackSeed(ConstRecHitPointer outerhit, ConstRecHitPointer innerhit, const GlobalPoint &vertexPos)
tuple cout
Definition: gather_cfg.py:121
dbl *** dir
Definition: mlp_gen.cc:35
void set2ndLayer(float phimin, float phimax)
mathSSE::Vec4< T > v
bool FastElectronSeedGenerator::prepareElTrackSeed ( ConstRecHitPointer  outerhit,
ConstRecHitPointer  innerhit,
const GlobalPoint vertexPos 
)
private

Definition at line 404 of file FastElectronSeedGenerator.cc.

References edm::OwnVector< T, P >::clear(), TrajectoryStateOnSurface::isValid(), LogDebug, trajectoryStateTransform::persistentState(), PropagatorWithMaterial::propagate(), pts_, edm::OwnVector< T, P >::push_back(), recHits_, FreeTrajectoryState::setCurvilinearError(), thePropagator, and theSetup.

Referenced by addASeedToThisCluster().

407 {
408 
409  // debug prints
410  LogDebug("") <<"[FastElectronSeedGenerator::prepareElTrackSeed] "
411  << "inner PixelHit x,y,z "<<innerhit->globalPosition();
412  LogDebug("") <<"[FastElectronSeedGenerator::prepareElTrackSeed] "
413  << "outer PixelHit x,y,z "<<outerhit->globalPosition();
414 
415  // make a spiral from the two hits and the vertex position
416  FastHelix helix(outerhit->globalPosition(),innerhit->globalPosition(),vertexPos,*theSetup);
417  if ( !helix.isValid()) return false;
418 
419  FreeTrajectoryState fts = helix.stateAtVertex();
420 
421  // Give infinite errors to start the fit (no pattern recognition here).
423  fts.setCurvilinearError(errorMatrix*100.);
424 
425  TrajectoryStateOnSurface propagatedState = thePropagator->propagate(fts,innerhit->det()->surface()) ;
426  if (!propagatedState.isValid()) return false;
427 
428  // The persitent trajectory state
429  pts_ = trajectoryStateTransform::persistentState(propagatedState, innerhit->geographicalId().rawId());
430 
431  // The corresponding rechits
432  recHits_.clear();
433  recHits_.push_back(innerhit->hit()->clone());
434  recHits_.push_back(outerhit->hit()->clone());
435 
436 
437  return true;
438 
439 }
#define LogDebug(id)
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
const edm::EventSetup * theSetup
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
PropagatorWithMaterial * thePropagator
void push_back(D *&d)
Definition: OwnVector.h:273
void clear()
Definition: OwnVector.h:370
virtual TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Plane &plane) const
void setCurvilinearError(const CurvilinearTrajectoryError &err)
void FastElectronSeedGenerator::run ( edm::Event e,
const reco::SuperClusterRefVector sclRefs,
const SiTrackerGSMatchedRecHit2DCollection theGSRecHits,
const edm::SimTrackContainer theSimTracks,
TrajectorySeedCollection seeds,
reco::ElectronSeedCollection out 
)

Definition at line 142 of file FastElectronSeedGenerator.cc.

References addASeedToThisCluster(), BSPosition_, gather_cfg::cout, fromTrackerSeeds_, edm::RangeMap< ID, C, P >::get(), edm::Event::getByLabel(), i, edm::EventBase::id(), edm::RangeMap< ID, C, P >::ids(), TrackerRecHit::layerNumber(), LogDebug, CoreSimTrack::momentum(), myGSPixelMatcher, pTMin2, TrajectorySeed::recHits(), TrackerRecHit::ringNumber(), searchInTIDTEC, FastPixelHitMatcher::set1stLayerZRange(), edm::RefVector< C, T, F >::size(), edm::RangeMap< ID, C, P >::size(), findQualityFiles::size, mathSSE::sqrt(), TrackerRecHit::subDetId(), theBeamSpot, theInitialSeedColl, and theTrackerGeometry.

Referenced by Types.LuminosityBlockID::cppID(), and FastElectronSeedProducer::produce().

147  {
148 
149  // Take the seed collection.
150  theInitialSeedColl=seeds;
151 
152  // Get the beam spot
153  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
154  e.getByLabel(theBeamSpot,recoBeamSpotHandle);
155 
156  // Get its position
157  BSPosition_ = recoBeamSpotHandle->position();
158  double sigmaZ=recoBeamSpotHandle->sigmaZ();
159  double sigmaZ0Error=recoBeamSpotHandle->sigmaZ0Error();
160  double sq=sqrt(sigmaZ*sigmaZ+sigmaZ0Error*sigmaZ0Error);
161  double zmin1 = BSPosition_.z()-3*sq;
162  double zmax1 = BSPosition_.z()+3*sq;
163 #ifdef FAMOS_DEBUG
164  std::cout << "Z Range for pixel matcher : " << zmin1 << " " << BSPosition_.z() << " " << zmax1 << std::endl;
165 #endif
166  myGSPixelMatcher->set1stLayerZRange(zmin1,zmax1);
167 
168  // A map of vector of pixel seeds, for each clusters
169  std::map<unsigned,std::vector<reco::ElectronSeed> > myPixelSeeds;
170 
171  // No seeding attempted if no hits !
172  if(theGSRecHits->size() == 0) return;
173 
174  if ( !fromTrackerSeeds_ ) {
175 
176  // The vector of simTrack Id's carrying GSRecHits
177  const std::vector<unsigned> theSimTrackIds = theGSRecHits->ids();
178 
179  // Loop over the simTrack carrying GSRecHits
180  for ( unsigned tkId=0; tkId != theSimTrackIds.size(); ++tkId ) {
181 
182  unsigned simTrackId = theSimTrackIds[tkId];
183  const SimTrack& theSimTrack = (*theSimTracks)[simTrackId];
184 
185  // Request a minimum pT for the sim track
186  if ( theSimTrack.momentum().perp2() < pTMin2 ) continue;
187 
188  // Request a minimum number of RecHits (total and in the pixel detector)
189  unsigned numberOfRecHits = 0;
190 
191  // The vector of rechits for seeding
192 
193  // 1) Cluster-pixel match seeding:
194  // Save a collection of Pixel +TEC +TID hits for seeding electrons
195  std::vector<unsigned> layerHit(6,static_cast<unsigned>(0));
196  // const SiTrackerGSMatchedRecHit2D *hit;
197  TrackerRecHit currentHit;
198  std::vector<TrackerRecHit> theHits;
199  TrajectorySeed theTrackerSeed;
200 
201  SiTrackerGSMatchedRecHit2DCollection::range theRecHitRange = theGSRecHits->get(simTrackId);
202  SiTrackerGSMatchedRecHit2DCollection::const_iterator theRecHitRangeIteratorBegin = theRecHitRange.first;
203  SiTrackerGSMatchedRecHit2DCollection::const_iterator theRecHitRangeIteratorEnd = theRecHitRange.second;
206 
207  for ( iterRecHit = theRecHitRangeIteratorBegin;
208  iterRecHit != theRecHitRangeIteratorEnd;
209  ++iterRecHit) {
210  ++numberOfRecHits;
211 
212  currentHit = TrackerRecHit(&(*iterRecHit),theTrackerGeometry);
213  if ( ( currentHit.subDetId() <= 2 ) || // Pixel Hits
214  // Add TID/TEC (optional)
215  ( searchInTIDTEC &&
216  ( ( currentHit.subDetId() == 3 &&
217  currentHit.ringNumber() < 3 &&
218  currentHit.layerNumber() < 3 ) || // TID first two rings, first two layers
219  ( currentHit.subDetId() == 6 &&
220  currentHit.ringNumber() < 3 &&
221  currentHit.layerNumber() < 3 ) ) ) ) // TEC first two rings, first two layers
222  theHits.push_back(currentHit);
223  }
224 
225  // At least 3 hits
226  if ( numberOfRecHits < 3 ) continue;
227 
228  // At least 2 pixel hits
229  if ( theHits.size() < 2 ) continue;
230 
231  // Loop over clusters
232 
233  unsigned csize = sclRefs.size();
234  for (unsigned int i=0;i<csize;++i) {
235 
236  // Find the pixel seeds (actually only the best one is returned)
237  LogDebug ("run") << "new cluster, calling addAseedFromThisCluster";
238  addASeedToThisCluster(sclRefs[i],theHits,theTrackerSeed,myPixelSeeds[i]);
239 
240  }
241 
242  }
243  // 2) Check if the seed is in the a-priori seed collection
244  } else {
245 
246  // Loop over the tracker seed
247 #ifdef FAMOS_DEBUG
248  std::cout << "We have " << seeds->size() << " tracker seeds!" << std::endl;
249 #endif
250  for (unsigned int i=0;i<seeds->size();++i) {
251 
252  TrackerRecHit currentHit;
253  std::vector<TrackerRecHit> theHits;
254  const TrajectorySeed& theTrackerSeed = (*seeds)[i];
255  TrajectorySeed::range theSeedRange=theTrackerSeed.recHits();
256  TrajectorySeed::const_iterator theSeedRangeIteratorBegin = theSeedRange.first;
257  TrajectorySeed::const_iterator theSeedRangeIteratorEnd = theSeedRange.second;
258  TrajectorySeed::const_iterator theSeedItr = theSeedRangeIteratorBegin;
259 
260  for ( ; theSeedItr != theSeedRangeIteratorEnd; ++theSeedItr ) {
261  const SiTrackerGSMatchedRecHit2D * theSeedingRecHit =
262  (const SiTrackerGSMatchedRecHit2D*) (&(*theSeedItr));
263  currentHit = TrackerRecHit(theSeedingRecHit,theTrackerGeometry);
264  theHits.push_back(currentHit);
265  }
266 
267  // Loop over clusters
268  unsigned csize = sclRefs.size();
269  for (unsigned int i=0;i<csize;++i) {
270 
271  // Find the pixel seeds (actually only the best one is returned)
272 #ifdef FAMOS_DEBUG
273  std::cout << "new cluster, calling addAseedFromThisCluster" << std::endl;
274 #endif
275  addASeedToThisCluster(sclRefs[i],theHits,theTrackerSeed,myPixelSeeds[i]);
276 
277  }
278  // End loop over clusters
279  }
280  // End loop over seeds
281  }
282  // end else
283 
284  // Back to the expected collection
285 
286  std::map<unsigned,std::vector<reco::ElectronSeed> >::const_iterator px = myPixelSeeds.begin();
287  std::map<unsigned,std::vector<reco::ElectronSeed> >::const_iterator pxEnd = myPixelSeeds.end();
288  for ( ; px!=pxEnd; ++px ) {
289  unsigned nSeeds = (px->second).size();
290  for ( unsigned ipx = 0; ipx<nSeeds; ++ipx ) {
291  out.push_back((px->second)[ipx]);
292  reco::ElectronSeed is = px->second[ipx];
293  }
294  }
295 
296  LogDebug ("run") << ": For event "<<e.id();
297  LogDebug ("run") <<"Nr of superclusters: "<<sclRefs.size()
298  <<", no. of ElectronSeeds found = " << out.size();
299 #ifdef FAMOS_DEBUG
300  std::cout << ": For event "<<e.id() << std::endl;
301  std::cout <<"Nr of superclusters: "<<sclRefs.size()
302  <<", no. of ElectronSeeds found = " << out.size() << std::endl;
303 #endif
304 
305 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
std::pair< const_iterator, const_iterator > range
iterator range
Definition: RangeMap.h:52
size_t size() const
return number of contained object
Definition: RangeMap.h:132
range get(ID id, CMP comparator) const
Definition: RangeMap.h:81
TrajectorySeedCollection * theInitialSeedColl
unsigned int ringNumber() const
The Ring Number.
Definition: TrackerRecHit.h:84
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:45
void set1stLayerZRange(double zmin1, double zmax1)
recHitContainer::const_iterator const_iterator
T sqrt(T t)
Definition: SSEVec.h:46
std::pair< const_iterator, const_iterator > range
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
FastPixelHitMatcher * myGSPixelMatcher
tuple out
Definition: dbtoconf.py:99
void addASeedToThisCluster(edm::Ref< reco::SuperClusterCollection > seedCluster, std::vector< TrackerRecHit > &theHits, const TrajectorySeed &theTrackerSeed, std::vector< reco::ElectronSeed > &result)
range recHits() const
unsigned int layerNumber() const
The Layer Number.
Definition: TrackerRecHit.h:81
edm::EventID id() const
Definition: EventBase.h:56
const math::XYZTLorentzVectorD & momentum() const
particle info...
Definition: CoreSimTrack.h:36
unsigned int subDetId() const
The subdet Id.
Definition: TrackerRecHit.h:78
size_type size() const
Size of the RefVector.
Definition: RefVector.h:89
tuple cout
Definition: gather_cfg.py:121
std::vector< ID > ids() const
indentifier vector
Definition: RangeMap.h:179
tuple size
Write out results.
const TrackerGeometry * theTrackerGeometry
void FastElectronSeedGenerator::setup ( bool  )

Referenced by setupES().

void FastElectronSeedGenerator::setupES ( const edm::EventSetup setup)

Definition at line 109 of file FastElectronSeedGenerator.cc.

References alongMomentum, geometry, edm::EventSetup::get(), myGSPixelMatcher, FastPixelHitMatcher::setES(), setup(), theGeomSearchTracker, theMagField, theMagneticFieldMap, thePropagator, theSetup, theTrackerGeometry, and theTrackerInteractionGeometry.

Referenced by FastElectronSeedProducer::beginRun().

109  {
110 
111  theSetup= &setup;
112 
114  setup.get<IdealMagneticFieldRecord>().get(pMF);
115  theMagField = &(*pMF);
116 
118  setup.get<TrackerDigiGeometryRecord>().get(geometry);
119  theTrackerGeometry = &(*geometry);
120 
122  setup.get<TrackerRecoGeometryRecord>().get( recoGeom );
123  theGeomSearchTracker = &(*recoGeom);
124 
126  setup.get<TrackerInteractionGeometryRecord>().get( interGeom );
127  theTrackerInteractionGeometry = &(*interGeom);
128 
130  setup.get<MagneticFieldMapRecord>().get(fieldMap);
131  theMagneticFieldMap = &(*fieldMap);
132 
134 
139 
140 }
const edm::EventSetup * theSetup
const MagneticFieldMap * theMagneticFieldMap
const TrackerInteractionGeometry * theTrackerInteractionGeometry
PropagatorWithMaterial * thePropagator
const GeometricSearchTracker * theGeomSearchTracker
FastPixelHitMatcher * myGSPixelMatcher
const T & get() const
Definition: EventSetup.h:55
ESHandle< TrackerGeometry > geometry
void setES(const MagneticFieldMap *aFieldMap, const TrackerGeometry *aTrackerGeometry, const GeometricSearchTracker *geomSearchTracker, const TrackerInteractionGeometry *interactionGeometry)
const TrackerGeometry * theTrackerGeometry

Member Data Documentation

math::XYZPoint FastElectronSeedGenerator::BSPosition_
private

Definition at line 111 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster(), and run().

float FastElectronSeedGenerator::deltaPhi1High_
private

Definition at line 105 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

float FastElectronSeedGenerator::deltaPhi1Low_
private

Definition at line 105 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

float FastElectronSeedGenerator::deltaPhi2_
private

Definition at line 106 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

bool FastElectronSeedGenerator::dynamicphiroad_
private

Definition at line 99 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

bool FastElectronSeedGenerator::fromTrackerSeeds_
private
float FastElectronSeedGenerator::highPtThreshold_
private

Definition at line 102 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

float FastElectronSeedGenerator::lowPtThreshold_
private

Definition at line 101 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

FastPixelHitMatcher* FastElectronSeedGenerator::myGSPixelMatcher
private
float FastElectronSeedGenerator::phimax2_
private

Definition at line 104 of file FastElectronSeedGenerator.h.

float FastElectronSeedGenerator::phimin2_
private

Definition at line 104 of file FastElectronSeedGenerator.h.

double FastElectronSeedGenerator::pTMin2
private

Definition at line 110 of file FastElectronSeedGenerator.h.

Referenced by run().

PTrajectoryStateOnDet FastElectronSeedGenerator::pts_
private

Definition at line 132 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster(), and prepareElTrackSeed().

PRecHitContainer FastElectronSeedGenerator::recHits_
private

Definition at line 131 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster(), and prepareElTrackSeed().

bool FastElectronSeedGenerator::searchInTIDTEC
private

Definition at line 107 of file FastElectronSeedGenerator.h.

Referenced by FastElectronSeedGenerator(), and run().

float FastElectronSeedGenerator::sizeWindowENeg_
private

Definition at line 103 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

const edm::InputTag FastElectronSeedGenerator::theBeamSpot
private

Definition at line 129 of file FastElectronSeedGenerator.h.

Referenced by run().

const GeometricSearchTracker* FastElectronSeedGenerator::theGeomSearchTracker
private

Definition at line 122 of file FastElectronSeedGenerator.h.

Referenced by setupES().

TrajectorySeedCollection* FastElectronSeedGenerator::theInitialSeedColl
private

Definition at line 116 of file FastElectronSeedGenerator.h.

Referenced by run().

const MagneticField* FastElectronSeedGenerator::theMagField
private

Definition at line 119 of file FastElectronSeedGenerator.h.

Referenced by setupES().

const MagneticFieldMap* FastElectronSeedGenerator::theMagneticFieldMap
private

Definition at line 120 of file FastElectronSeedGenerator.h.

Referenced by setupES().

PropagatorWithMaterial* FastElectronSeedGenerator::thePropagator
private
const edm::EventSetup* FastElectronSeedGenerator::theSetup
private

Definition at line 128 of file FastElectronSeedGenerator.h.

Referenced by prepareElTrackSeed(), and setupES().

const TrackerGeometry* FastElectronSeedGenerator::theTrackerGeometry
private

Definition at line 121 of file FastElectronSeedGenerator.h.

Referenced by run(), and setupES().

const TrackerInteractionGeometry* FastElectronSeedGenerator::theTrackerInteractionGeometry
private

Definition at line 123 of file FastElectronSeedGenerator.h.

Referenced by setupES().

KFUpdator* FastElectronSeedGenerator::theUpdator
private

Definition at line 125 of file FastElectronSeedGenerator.h.

Referenced by ~FastElectronSeedGenerator().

double FastElectronSeedGenerator::zmax1_
private

Definition at line 109 of file FastElectronSeedGenerator.h.

double FastElectronSeedGenerator::zmin1_
private

Definition at line 109 of file FastElectronSeedGenerator.h.