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, const TrackerTopology *tTopo, 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

Description: Top algorithm producing ElectronSeeds, ported from FAMOS

Implementation: future redesign...

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

Definition at line 52 of file FastElectronSeedGenerator.h.

Member Typedef Documentation

Definition at line 58 of file FastElectronSeedGenerator.h.

Definition at line 57 of file FastElectronSeedGenerator.h.

Definition at line 60 of file FastElectronSeedGenerator.h.

Definition at line 59 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 51 of file FastElectronSeedGenerator.cc.

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

55  :
56  dynamicphiroad_(pset.getParameter<bool>("dynamicPhiRoad")),
57  lowPtThreshold_(pset.getParameter<double>("LowPtThreshold")),
58  highPtThreshold_(pset.getParameter<double>("HighPtThreshold")),
59  sizeWindowENeg_(pset.getParameter<double>("SizeWindowENeg")),
60  phimin2_(pset.getParameter<double>("PhiMin2")),
61  phimax2_(pset.getParameter<double>("PhiMax2")),
62  deltaPhi1Low_(pset.getParameter<double>("DeltaPhi1Low")),
63  deltaPhi1High_(pset.getParameter<double>("DeltaPhi1High")),
64  deltaPhi2_(pset.getParameter<double>("DeltaPhi2")),
65  pTMin2(pTMin*pTMin),
67  fromTrackerSeeds_(pset.getParameter<bool>("fromTrackerSeeds")),
69  // theMeasurementTracker(0),
70  // theNavigationSchool(0)
71  theSetup(0), theBeamSpot(beamSpot)
72 {
73 
74 #ifdef FAMOS_DEBUG
75  std::cout << "FromTrackerSeeds = " << fromTrackerSeeds_ << std::endl;
76 #endif
77 
78  // Instantiate the pixel hit matcher
79  searchInTIDTEC = pset.getParameter<bool>("searchInTIDTEC");
80  myGSPixelMatcher = new FastPixelHitMatcher(pset.getParameter<double>("ePhiMin1"),
81  pset.getParameter<double>("ePhiMax1"),
82  pset.getParameter<double>("pPhiMin1"),
83  pset.getParameter<double>("pPhiMax1"),
84  pset.getParameter<double>("PhiMin2"),
85  pset.getParameter<double>("PhiMax2"),
86  pset.getParameter<double>("z2MinB"),
87  pset.getParameter<double>("z2MaxB"),
88  pset.getParameter<double>("r2MinF"),
89  pset.getParameter<double>("r2MaxF"),
90  pset.getParameter<double>("rMinI"),
91  pset.getParameter<double>("rMaxI"),
92  pset.getParameter<bool>("searchInTIDTEC"));
93 
94 }
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 96 of file FastElectronSeedGenerator.cc.

References myGSPixelMatcher, thePropagator, and theUpdator.

96  {
97 
98  // delete theNavigationSchool;
99  delete myGSPixelMatcher;
100  // delete myMatchPos;
101  delete thePropagator;
102  delete theUpdator;
103 
104 }
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 307 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_, reco::return(), alignCSCRings::s, FastPixelHitMatcher::set1stLayer(), FastPixelHitMatcher::set2ndLayer(), reco::ElectronSeed::setCaloCluster(), funct::sin(), sizeWindowENeg_, findQualityFiles::v, and TrackValidation_HighPurity_cff::valid.

Referenced by run().

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

Definition at line 403 of file FastElectronSeedGenerator.cc.

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

Referenced by addASeedToThisCluster().

406 {
407 
408  // debug prints
409  LogDebug("") <<"[FastElectronSeedGenerator::prepareElTrackSeed] "
410  << "inner PixelHit x,y,z "<<innerhit->globalPosition();
411  LogDebug("") <<"[FastElectronSeedGenerator::prepareElTrackSeed] "
412  << "outer PixelHit x,y,z "<<outerhit->globalPosition();
413 
414  // FIXME to be optimized moving them outside the loop
416  theSetup->get<IdealMagneticFieldRecord>().get(bfield);
417  float nomField = bfield->nominalValue();
418 
419  // make a spiral from the two hits and the vertex position
420  FastHelix helix(outerhit->globalPosition(),innerhit->globalPosition(),vertexPos,nomField,&*bfield);
421  if ( !helix.isValid()) return false;
422 
423  FreeTrajectoryState fts(helix.stateAtVertex());
424 
425  // Give infinite errors to start the fit (no pattern recognition here).
427  fts.setCurvilinearError(errorMatrix*100.);
428 
429  TrajectoryStateOnSurface propagatedState = thePropagator->propagate(fts,innerhit->det()->surface()) ;
430  if (!propagatedState.isValid()) return false;
431 
432  // The persitent trajectory state
433  pts_ = trajectoryStateTransform::persistentState(propagatedState, innerhit->geographicalId().rawId());
434 
435  // The corresponding rechits
436  recHits_.clear();
437  recHits_.push_back(innerhit->hit()->clone());
438  recHits_.push_back(outerhit->hit()->clone());
439 
440 
441  return true;
442 
443 }
#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
const T & get() const
Definition: EventSetup.h:55
void FastElectronSeedGenerator::run ( edm::Event e,
const reco::SuperClusterRefVector sclRefs,
const SiTrackerGSMatchedRecHit2DCollection theGSRecHits,
const edm::SimTrackContainer theSimTracks,
TrajectorySeedCollection seeds,
const TrackerTopology tTopo,
reco::ElectronSeedCollection out 
)

Definition at line 140 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.EventID::cppID(), Types.LuminosityBlockID::cppID(), and FastElectronSeedProducer::produce().

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

107  {
108 
109  theSetup= &setup;
110 
112  setup.get<IdealMagneticFieldRecord>().get(pMF);
113  theMagField = &(*pMF);
114 
116  setup.get<TrackerDigiGeometryRecord>().get(geometry);
117  theTrackerGeometry = &(*geometry);
118 
120  setup.get<TrackerRecoGeometryRecord>().get( recoGeom );
121  theGeomSearchTracker = &(*recoGeom);
122 
124  setup.get<TrackerInteractionGeometryRecord>().get( interGeom );
125  theTrackerInteractionGeometry = &(*interGeom);
126 
128  setup.get<MagneticFieldMapRecord>().get(fieldMap);
129  theMagneticFieldMap = &(*fieldMap);
130 
132 
137 
138 }
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 113 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster(), and run().

float FastElectronSeedGenerator::deltaPhi1High_
private

Definition at line 107 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

float FastElectronSeedGenerator::deltaPhi1Low_
private

Definition at line 107 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

float FastElectronSeedGenerator::deltaPhi2_
private

Definition at line 108 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

bool FastElectronSeedGenerator::dynamicphiroad_
private

Definition at line 101 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

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

Definition at line 104 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

float FastElectronSeedGenerator::lowPtThreshold_
private

Definition at line 103 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

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

Definition at line 106 of file FastElectronSeedGenerator.h.

float FastElectronSeedGenerator::phimin2_
private

Definition at line 106 of file FastElectronSeedGenerator.h.

double FastElectronSeedGenerator::pTMin2
private

Definition at line 112 of file FastElectronSeedGenerator.h.

Referenced by run().

PTrajectoryStateOnDet FastElectronSeedGenerator::pts_
private

Definition at line 134 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster(), and prepareElTrackSeed().

PRecHitContainer FastElectronSeedGenerator::recHits_
private

Definition at line 133 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster(), and prepareElTrackSeed().

bool FastElectronSeedGenerator::searchInTIDTEC
private

Definition at line 109 of file FastElectronSeedGenerator.h.

Referenced by FastElectronSeedGenerator(), and run().

float FastElectronSeedGenerator::sizeWindowENeg_
private

Definition at line 105 of file FastElectronSeedGenerator.h.

Referenced by addASeedToThisCluster().

const edm::InputTag FastElectronSeedGenerator::theBeamSpot
private

Definition at line 131 of file FastElectronSeedGenerator.h.

Referenced by run().

const GeometricSearchTracker* FastElectronSeedGenerator::theGeomSearchTracker
private

Definition at line 124 of file FastElectronSeedGenerator.h.

Referenced by setupES().

TrajectorySeedCollection* FastElectronSeedGenerator::theInitialSeedColl
private

Definition at line 118 of file FastElectronSeedGenerator.h.

Referenced by run().

const MagneticField* FastElectronSeedGenerator::theMagField
private

Definition at line 121 of file FastElectronSeedGenerator.h.

Referenced by setupES().

const MagneticFieldMap* FastElectronSeedGenerator::theMagneticFieldMap
private

Definition at line 122 of file FastElectronSeedGenerator.h.

Referenced by setupES().

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

Definition at line 130 of file FastElectronSeedGenerator.h.

Referenced by prepareElTrackSeed(), and setupES().

const TrackerGeometry* FastElectronSeedGenerator::theTrackerGeometry
private

Definition at line 123 of file FastElectronSeedGenerator.h.

Referenced by run(), and setupES().

const TrackerInteractionGeometry* FastElectronSeedGenerator::theTrackerInteractionGeometry
private

Definition at line 125 of file FastElectronSeedGenerator.h.

Referenced by setupES().

KFUpdator* FastElectronSeedGenerator::theUpdator
private

Definition at line 127 of file FastElectronSeedGenerator.h.

Referenced by ~FastElectronSeedGenerator().

double FastElectronSeedGenerator::zmax1_
private

Definition at line 111 of file FastElectronSeedGenerator.h.

double FastElectronSeedGenerator::zmin1_
private

Definition at line 111 of file FastElectronSeedGenerator.h.