CMS 3D CMS Logo

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

#include <CAHitTripletGenerator.h>

Inheritance diagram for CAHitTripletGenerator:
HitTripletGenerator OrderedHitsGenerator

Classes

class  QuantityDependsPt
 
class  QuantityDependsPtEval
 

Public Types

typedef LayerHitMapCache LayerCacheType
 
typedef OrderedHitSeeds ResultType
 

Public Member Functions

 CAHitTripletGenerator (const edm::ParameterSet &cfg, edm::ConsumesCollector &&iC, bool needSeedingLayerSetsHits=true)
 
 CAHitTripletGenerator (const edm::ParameterSet &cfg, edm::ConsumesCollector &iC, bool needSeedingLayerSetsHits=true)
 
void hitNtuplets (const IntermediateHitDoublets &regionDoublets, std::vector< OrderedHitSeeds > &result, const edm::EventSetup &es, const SeedingLayerSetsHits &layers)
 
virtual void hitTriplets (const TrackingRegion &reg, OrderedHitTriplets &triplets, const edm::Event &ev, const edm::EventSetup &es)
 from base class More...
 
void initEvent (const edm::Event &ev, const edm::EventSetup &es)
 
virtual ~CAHitTripletGenerator ()
 
- Public Member Functions inherited from HitTripletGenerator
virtual void clear () final
 
 HitTripletGenerator (unsigned int size=500)
 
 HitTripletGenerator (HitTripletGenerator const &other)
 
virtual void hitTriplets (const TrackingRegion &reg, OrderedHitTriplets &prs, const edm::EventSetup &es)
 
virtual const OrderedHitTripletsrun (const TrackingRegion &region, const edm::Event &ev, const edm::EventSetup &es) final
 
virtual ~HitTripletGenerator ()
 
- Public Member Functions inherited from OrderedHitsGenerator
 OrderedHitsGenerator ()
 
virtual ~OrderedHitsGenerator ()
 

Static Public Member Functions

static void fillDescriptions (edm::ParameterSetDescription &desc)
 
static const char * fillDescriptionsLabel ()
 

Static Public Attributes

static unsigned int minLayers = 3
 

Private Member Functions

void hitTriplets (const TrackingRegion &reg, OrderedHitTriplets &result, std::vector< const HitDoublets * > &hitDoublets, CAGraph &g, const edm::EventSetup &es)
 

Private Attributes

const float caHardPtCut = 0.f
 
const float caPhiCut = 1.f
 
const float caThetaCut = 0.00125f
 
const float extraHitRPhitolerance
 
const QuantityDependsPt maxChi2
 
std::unique_ptr< SeedComparitortheComparitor
 
LayerCacheType theLayerCache
 
edm::EDGetTokenT< SeedingLayerSetsHitstheSeedingLayerToken
 
const bool useBendingCorrection
 

Additional Inherited Members

- Public Attributes inherited from OrderedHitsGenerator
unsigned int theMaxElement
 

Detailed Description

Definition at line 32 of file CAHitTripletGenerator.h.

Member Typedef Documentation

Definition at line 34 of file CAHitTripletGenerator.h.

Definition at line 37 of file CAHitTripletGenerator.h.

Constructor & Destructor Documentation

CAHitTripletGenerator::CAHitTripletGenerator ( const edm::ParameterSet cfg,
edm::ConsumesCollector &&  iC,
bool  needSeedingLayerSetsHits = true 
)
inline

Definition at line 40 of file CAHitTripletGenerator.h.

References CAHitTripletGenerator_cfi::CAHitTripletGenerator, and looper::cfg.

40 : CAHitTripletGenerator(cfg, iC, needSeedingLayerSetsHits) {}
CAHitTripletGenerator(const edm::ParameterSet &cfg, edm::ConsumesCollector &&iC, bool needSeedingLayerSetsHits=true)
CAHitTripletGenerator::CAHitTripletGenerator ( const edm::ParameterSet cfg,
edm::ConsumesCollector iC,
bool  needSeedingLayerSetsHits = true 
)

Definition at line 36 of file CAHitTripletGenerator.cc.

References edm::ConsumesCollector::consumes(), beamerCreator::create(), edm::ParameterSet::exists(), reco::get(), edm::ParameterSet::getParameter(), AlCaHLTBitMon_QueryRunRegistry::string, theComparitor, and theSeedingLayerToken.

38  :
39  extraHitRPhitolerance(cfg.getParameter<double>("extraHitRPhitolerance")), //extra window in ThirdHitPredictionFromCircle range (divide by R to get phi)
40  maxChi2(cfg.getParameter < edm::ParameterSet > ("maxChi2")),
41  useBendingCorrection(cfg.getParameter<bool>("useBendingCorrection")),
42  caThetaCut( cfg.getParameter<double>("CAThetaCut")),
43  caPhiCut(cfg.getParameter<double>("CAPhiCut")),
44  caHardPtCut(cfg.getParameter<double>("CAHardPtCut"))
45 {
46 
47  if(needSeedingLayerSetsHits)
49 
50  if (cfg.exists("SeedComparitorPSet"))
51  {
52  edm::ParameterSet comparitorPSet = cfg.getParameter < edm::ParameterSet
53  > ("SeedComparitorPSet");
54  std::string comparitorName = comparitorPSet.getParameter < std::string
55  > ("ComponentName");
56  if (comparitorName != "none")
57  {
58  theComparitor.reset(
59  SeedComparitorFactory::get()->create(comparitorName,
60  comparitorPSet, iC));
61  }
62  }
63 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
const QuantityDependsPt maxChi2
def create(alignables, pedeDump, additionalData, outputFile, config)
bool exists(std::string const &parameterName) const
checks if a parameter exists
edm::EDGetTokenT< SeedingLayerSetsHits > theSeedingLayerToken
std::unique_ptr< SeedComparitor > theComparitor
T get(const Candidate &c)
Definition: component.h:55
CAHitTripletGenerator::~CAHitTripletGenerator ( )
virtual

Definition at line 65 of file CAHitTripletGenerator.cc.

66 {
67 }

Member Function Documentation

void CAHitTripletGenerator::fillDescriptions ( edm::ParameterSetDescription desc)
static

Definition at line 69 of file CAHitTripletGenerator.cc.

References edm::ParameterSetDescription::add(), and AlCaHLTBitMon_QueryRunRegistry::string.

69  {
70  desc.add<double>("extraHitRPhitolerance", 0.06);
71  desc.add<bool>("useBendingCorrection", false);
72  desc.add<double>("CAThetaCut", 0.00125);
73  desc.add<double>("CAPhiCut", 0.1);
74  desc.add<double>("CAHardPtCut", 0);
75 
76  edm::ParameterSetDescription descMaxChi2;
77  descMaxChi2.add<double>("pt1", 0.8);
78  descMaxChi2.add<double>("pt2", 2);
79  descMaxChi2.add<double>("value1", 50);
80  descMaxChi2.add<double>("value2", 8);
81  descMaxChi2.add<bool>("enabled", true);
82  desc.add<edm::ParameterSetDescription>("maxChi2", descMaxChi2);
83 
84  edm::ParameterSetDescription descComparitor;
85  descComparitor.add<std::string>("ComponentName", "none");
86  descComparitor.setAllowAnything(); // until we have moved SeedComparitor too to EDProducers
87  desc.add<edm::ParameterSetDescription>("SeedComparitorPSet", descComparitor);
88 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static const char* CAHitTripletGenerator::fillDescriptionsLabel ( )
inlinestatic

Definition at line 46 of file CAHitTripletGenerator.h.

References ev, g, LayerTriplets::layers(), mps_fire::result, and DetachedQuadStep_cff::triplets.

46 { return "caHitTriplet"; }
void CAHitTripletGenerator::hitNtuplets ( const IntermediateHitDoublets regionDoublets,
std::vector< OrderedHitSeeds > &  result,
const edm::EventSetup es,
const SeedingLayerSetsHits layers 
)

Definition at line 231 of file CAHitTripletGenerator.cc.

References funct::abs(), caHardPtCut, caPhiCut, caThetaCut, HiEvtPlane_cfi::chi2, RZLine::chi2(), ThirdHitPredictionFromCircle::curvature(), PixelRecoUtilities::curvature(), GlobalErrorBase< T, ErrorWeightType >::czz(), relativeConstraints::error, CAHitTripletGenerator::QuantityDependsPt::evaluator(), extraHitRPhitolerance, runEdmFileComparison::found, g, mps_fire::i, hcalTTPDigis_cfi::id, SeedingLayerSetsHits::SeedingLayer::index(), diffTreeTool::index, SurfaceOrientation::inner, IntermediateHitDoublets::LayerPairHitDoublets::innerLayerIndex(), PixelRecoUtilities::inversePt(), gedGsfElectrons_cfi::isBarrel, edm::isNotFinite(), geometryCSVtoXML::line, maxChi2, TrackingRegion::origin(), SurfaceOrientation::outer, IntermediateHitDoublets::LayerPairHitDoublets::outerLayerIndex(), PixelSubdetector::PixelBarrel, point, EnergyCorrector::pt, GlobalErrorBase< T, ErrorWeightType >::rerr(), funct::sqr(), mathSSE::sqrt(), theComparitor, useBendingCorrection, CAHitTripletGenerator::QuantityDependsPtEval::value(), x, PV3DBase< T, PVType, FrameType >::x(), y, PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

234  {
235  CAGraph g;
236 
237  std::vector<const HitDoublets *> hitDoublets;
238 
239  auto layerPairEqual = [](const IntermediateHitDoublets::LayerPairHitDoublets& pair,
242  return pair.innerLayerIndex() == inner && pair.outerLayerIndex() == outer;
243  };
244  std::vector<CACell::CAntuplet> foundTriplets;
245 
246  int index =0;
247  for(const auto& regionLayerPairs: regionDoublets) {
248 
249  const TrackingRegion& region = regionLayerPairs.region();
250  hitDoublets.clear();
251  foundTriplets.clear();
252 
253  if (index == 0){
254  createGraphStructure(layers, g);
255  }
256  else{
257  clearGraphStructure(layers, g);
258  }
259  fillGraph(layers, g, hitDoublets,
260  [&](const SeedingLayerSetsHits::SeedingLayer& inner,
262  std::vector<const HitDoublets *>& hitDoublets) {
263  using namespace std::placeholders;
264  auto found = std::find_if(regionLayerPairs.begin(), regionLayerPairs.end(),
265  std::bind(layerPairEqual, _1, inner.index(), outer.index()));
266  if(found != regionLayerPairs.end()) {
267  hitDoublets.emplace_back(&(found->doublets()));
268  return true;
269  }
270  return false;
271  });
272  CellularAutomaton ca(g);
273  ca.findTriplets(hitDoublets, foundTriplets, region, caThetaCut, caPhiCut,
274  caHardPtCut);
275 
276  auto & allCells = ca.getAllCells();
277 
278  const QuantityDependsPtEval maxChi2Eval = maxChi2.evaluator(es);
279 
280  // re-used thoughout, need to be vectors because of RZLine interface
281  std::array<float, 3> bc_r;
282  std::array<float, 3> bc_z;
283  std::array<float, 3> bc_errZ2;
284  std::array<GlobalPoint, 3> gps;
285  std::array<GlobalError, 3> ges;
286  std::array<bool, 3> barrels;
287 
288  unsigned int numberOfFoundTriplets = foundTriplets.size();
289  for (unsigned int tripletId = 0; tripletId < numberOfFoundTriplets;
290  ++tripletId)
291  {
292 
293  OrderedHitTriplet tmpTriplet(allCells[foundTriplets[tripletId][0]].getInnerHit(),
294  allCells[foundTriplets[tripletId][0]].getOuterHit(),
295  allCells[foundTriplets[tripletId][1]].getOuterHit());
296 
297  auto isBarrel = [](const unsigned id) -> bool
298  {
299  return id == PixelSubdetector::PixelBarrel;
300  };
301  for (unsigned int i = 0; i < 2; ++i)
302  {
303  auto const& ahit = allCells[foundTriplets[tripletId][i]].getInnerHit();
304  gps[i] = ahit->globalPosition();
305  ges[i] = ahit->globalPositionError();
306  barrels[i] = isBarrel(ahit->geographicalId().subdetId());
307  }
308 
309  auto const& ahit = allCells[foundTriplets[tripletId][1]].getOuterHit();
310  gps[2] = ahit->globalPosition();
311  ges[2] = ahit->globalPositionError();
312  barrels[2] = isBarrel(ahit->geographicalId().subdetId());
313 
314  PixelRecoLineRZ line(gps[0], gps[2]);
315  ThirdHitPredictionFromCircle predictionRPhi(gps[0], gps[2],
317  const float curvature = predictionRPhi.curvature(
318  ThirdHitPredictionFromCircle::Vector2D(gps[1].x(), gps[1].y()));
319  const float abscurv = std::abs(curvature);
320  const float thisMaxChi2 = maxChi2Eval.value(abscurv);
321  float chi2 = std::numeric_limits<float>::quiet_NaN();
322  // TODO: Do we have any use case to not use bending correction?
323 
325  {
326  // Following PixelFitterByConformalMappingAndLine
327  const float simpleCot = (gps.back().z() - gps.front().z())
328  / (gps.back().perp() - gps.front().perp());
329  const float pt = 1.f / PixelRecoUtilities::inversePt(abscurv, es);
330  for (int i = 0; i < 3; ++i)
331  {
332  const GlobalPoint & point = gps[i];
333  const GlobalError & error = ges[i];
334  bc_r[i] = sqrt(
335  sqr(point.x() - region.origin().x())
336  + sqr(point.y() - region.origin().y()));
338  es)(bc_r[i]);
339  bc_z[i] = point.z() - region.origin().z();
340  bc_errZ2[i] =
341  (barrels[i]) ?
342  error.czz() :
343  error.rerr(point) * sqr(simpleCot);
344  }
345  RZLine rzLine(bc_r, bc_z, bc_errZ2, RZLine::ErrZ2_tag());
346  chi2 = rzLine.chi2();
347  }
348  else
349  {
350  RZLine rzLine(gps, ges, barrels);
351  chi2 = rzLine.chi2();
352  }
353 
354  if (edm::isNotFinite(chi2) || chi2 > thisMaxChi2)
355  {
356  continue;
357 
358  }
359 
360  if (theComparitor)
361  {
362  if (!theComparitor->compatible(tmpTriplet))
363  {
364 
365  continue;
366  }
367  }
368  result[index].emplace_back(tmpTriplet);
369 
370  }
371  index++;
372  }
373 }
const QuantityDependsPt maxChi2
GlobalPoint const & origin() const
T y() const
Definition: PV3DBase.h:63
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
T inversePt(T curvature, const edm::EventSetup &iSetup)
QuantityDependsPtEval evaluator(const edm::EventSetup &es) const
bool isNotFinite(T x)
Definition: isFinite.h:10
T curvature(T InversePt, const edm::EventSetup &iSetup)
SeedingLayerSetsHits::LayerIndex innerLayerIndex() const
T sqrt(T t)
Definition: SSEVec.h:18
T z() const
Definition: PV3DBase.h:64
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
Definition: RZLine.h:12
T rerr(const GlobalPoint &aPoint) const
SeedingLayerSetsHits::LayerIndex outerLayerIndex() const
Square< F >::type sqr(const F &f)
Definition: Square.h:13
std::unique_ptr< SeedComparitor > theComparitor
T x() const
Definition: PV3DBase.h:62
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
void CAHitTripletGenerator::hitTriplets ( const TrackingRegion reg,
OrderedHitTriplets triplets,
const edm::Event ev,
const edm::EventSetup es 
)
virtual

from base class

Implements HitTripletGenerator.

Definition at line 193 of file CAHitTripletGenerator.cc.

References LayerHitMapCache::clear(), HitPairGeneratorFromLayerPair::doublets(), MillePedeFileConverter_cfg::e, g, edm::Event::getByToken(), SurfaceOrientation::inner, LayerTriplets::layers(), SeedingLayerSetsHits::numberOfLayersInSet(), SurfaceOrientation::outer, theComparitor, theLayerCache, and theSeedingLayerToken.

196 {
198  ev.getByToken(theSeedingLayerToken, hlayers);
199  const SeedingLayerSetsHits& layers = *hlayers;
200  if (layers.numberOfLayersInSet() != 3)
201  throw cms::Exception("Configuration")
202  << "CAHitTripletGenerator expects SeedingLayerSetsHits::numberOfLayersInSet() to be 3, got "
203  << layers.numberOfLayersInSet();
204 
205  CAGraph g;
206 
207  std::vector<HitDoublets> hitDoublets;
208 
209 
210 
211  HitPairGeneratorFromLayerPair thePairGenerator(0, 1, &theLayerCache);
212  createGraphStructure(layers,g);
213  fillGraph(layers, g, hitDoublets, [&](const SeedingLayerSetsHits::SeedingLayer& inner, const SeedingLayerSetsHits::SeedingLayer& outer, std::vector<HitDoublets>& hitDoublets) {
214  hitDoublets.emplace_back(thePairGenerator.doublets(region, ev, es, inner, outer));
215  return true;
216  });
217 
218 
219  if (theComparitor)
220  theComparitor->init(ev, es);
221 
222  std::vector<const HitDoublets *> hitDoubletsPtr;
223  hitDoubletsPtr.reserve(hitDoublets.size());
224  for(const auto& e: hitDoublets)
225  hitDoubletsPtr.emplace_back(&e);
226 
227  hitTriplets(region, result, hitDoubletsPtr, g, es);
229 }
unsigned short numberOfLayersInSet() const
Get number of layers in each SeedingLayerSets.
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
Definition: LayerTriplets.cc:4
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
edm::EDGetTokenT< SeedingLayerSetsHits > theSeedingLayerToken
virtual void hitTriplets(const TrackingRegion &reg, OrderedHitTriplets &triplets, const edm::Event &ev, const edm::EventSetup &es)
from base class
std::unique_ptr< SeedComparitor > theComparitor
void CAHitTripletGenerator::hitTriplets ( const TrackingRegion reg,
OrderedHitTriplets result,
std::vector< const HitDoublets * > &  hitDoublets,
CAGraph g,
const edm::EventSetup es 
)
private

Definition at line 375 of file CAHitTripletGenerator.cc.

References funct::abs(), caHardPtCut, caPhiCut, caThetaCut, HiEvtPlane_cfi::chi2, RZLine::chi2(), LayerHitMapCache::clear(), ThirdHitPredictionFromCircle::curvature(), PixelRecoUtilities::curvature(), GlobalErrorBase< T, ErrorWeightType >::czz(), relativeConstraints::error, CAHitTripletGenerator::QuantityDependsPt::evaluator(), extraHitRPhitolerance, CellularAutomaton::findTriplets(), CellularAutomaton::getAllCells(), mps_fire::i, hcalTTPDigis_cfi::id, PixelRecoUtilities::inversePt(), gedGsfElectrons_cfi::isBarrel, edm::isNotFinite(), geometryCSVtoXML::line, maxChi2, TrackingRegion::origin(), PixelSubdetector::PixelBarrel, point, EnergyCorrector::pt, GlobalErrorBase< T, ErrorWeightType >::rerr(), funct::sqr(), mathSSE::sqrt(), theComparitor, theLayerCache, useBendingCorrection, CAHitTripletGenerator::QuantityDependsPtEval::value(), x, PV3DBase< T, PVType, FrameType >::x(), y, PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

378  {
379  std::vector<CACell::CAntuplet> foundTriplets;
380  CellularAutomaton ca(g);
381 
382  ca.findTriplets(hitDoublets, foundTriplets, region, caThetaCut, caPhiCut,
383  caHardPtCut);
384 
385  auto & allCells = ca.getAllCells();
386 
387  unsigned int numberOfFoundTriplets = foundTriplets.size();
388 
389  const QuantityDependsPtEval maxChi2Eval = maxChi2.evaluator(es);
390 
391  // re-used thoughout, need to be vectors because of RZLine interface
392  std::array<float, 3> bc_r;
393  std::array<float, 3> bc_z;
394  std::array<float, 3> bc_errZ2;
395  std::array < GlobalPoint, 3 > gps;
396  std::array < GlobalError, 3 > ges;
397  std::array<bool, 3> barrels;
398 
399  for (unsigned int tripletId = 0; tripletId < numberOfFoundTriplets;
400  ++tripletId)
401  {
402 
403  OrderedHitTriplet tmpTriplet(allCells[foundTriplets[tripletId][0]].getInnerHit(),
404  allCells[foundTriplets[tripletId][0]].getOuterHit(),
405  allCells[foundTriplets[tripletId][1]].getOuterHit());
406 
407  auto isBarrel = [](const unsigned id) -> bool
408  {
409  return id == PixelSubdetector::PixelBarrel;
410  };
411  for (unsigned int i = 0; i < 2; ++i)
412  {
413  auto const& ahit = allCells[foundTriplets[tripletId][i]].getInnerHit();
414  gps[i] = ahit->globalPosition();
415  ges[i] = ahit->globalPositionError();
416  barrels[i] = isBarrel(ahit->geographicalId().subdetId());
417  }
418 
419  auto const& ahit = allCells[foundTriplets[tripletId][1]].getOuterHit();
420  gps[2] = ahit->globalPosition();
421  ges[2] = ahit->globalPositionError();
422  barrels[2] = isBarrel(ahit->geographicalId().subdetId());
423 
424  PixelRecoLineRZ line(gps[0], gps[2]);
425  ThirdHitPredictionFromCircle predictionRPhi(gps[0], gps[2],
427  const float curvature = predictionRPhi.curvature(
428  ThirdHitPredictionFromCircle::Vector2D(gps[1].x(), gps[1].y()));
429  const float abscurv = std::abs(curvature);
430  const float thisMaxChi2 = maxChi2Eval.value(abscurv);
431  float chi2 = std::numeric_limits<float>::quiet_NaN();
432  // TODO: Do we have any use case to not use bending correction?
434  {
435  // Following PixelFitterByConformalMappingAndLine
436  const float simpleCot = (gps.back().z() - gps.front().z())
437  / (gps.back().perp() - gps.front().perp());
438  const float pt = 1.f / PixelRecoUtilities::inversePt(abscurv, es);
439  for (int i = 0; i < 3; ++i)
440  {
441  const GlobalPoint & point = gps[i];
442  const GlobalError & error = ges[i];
443  bc_r[i] = sqrt(
444  sqr(point.x() - region.origin().x())
445  + sqr(point.y() - region.origin().y()));
447  es)(bc_r[i]);
448  bc_z[i] = point.z() - region.origin().z();
449  bc_errZ2[i] =
450  (barrels[i]) ?
451  error.czz() :
452  error.rerr(point) * sqr(simpleCot);
453  }
454  RZLine rzLine(bc_r, bc_z, bc_errZ2, RZLine::ErrZ2_tag());
455  chi2 = rzLine.chi2();
456  }
457  else
458  {
459  RZLine rzLine(gps, ges, barrels);
460  chi2 = rzLine.chi2();
461  }
462 
463  if (edm::isNotFinite(chi2) || chi2 > thisMaxChi2)
464  {
465  continue;
466 
467  }
468 
469  if (theComparitor)
470  {
471  if (!theComparitor->compatible(tmpTriplet))
472  {
473 
474  continue;
475  }
476  }
477 
478  result.push_back(tmpTriplet);
479 
480  }
482 }
const QuantityDependsPt maxChi2
T y() const
Definition: PV3DBase.h:63
T inversePt(T curvature, const edm::EventSetup &iSetup)
QuantityDependsPtEval evaluator(const edm::EventSetup &es) const
bool isNotFinite(T x)
Definition: isFinite.h:10
T curvature(T InversePt, const edm::EventSetup &iSetup)
T sqrt(T t)
Definition: SSEVec.h:18
T z() const
Definition: PV3DBase.h:64
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
Definition: RZLine.h:12
T rerr(const GlobalPoint &aPoint) const
Square< F >::type sqr(const F &f)
Definition: Square.h:13
std::unique_ptr< SeedComparitor > theComparitor
T x() const
Definition: PV3DBase.h:62
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
void CAHitTripletGenerator::initEvent ( const edm::Event ev,
const edm::EventSetup es 
)

Member Data Documentation

const float CAHitTripletGenerator::caHardPtCut = 0.f
private

Definition at line 143 of file CAHitTripletGenerator.h.

Referenced by hitNtuplets(), and hitTriplets().

const float CAHitTripletGenerator::caPhiCut = 1.f
private

Definition at line 142 of file CAHitTripletGenerator.h.

Referenced by hitNtuplets(), and hitTriplets().

const float CAHitTripletGenerator::caThetaCut = 0.00125f
private

Definition at line 141 of file CAHitTripletGenerator.h.

Referenced by hitNtuplets(), and hitTriplets().

const float CAHitTripletGenerator::extraHitRPhitolerance
private

Definition at line 136 of file CAHitTripletGenerator.h.

Referenced by hitNtuplets(), and hitTriplets().

const QuantityDependsPt CAHitTripletGenerator::maxChi2
private

Definition at line 138 of file CAHitTripletGenerator.h.

Referenced by hitNtuplets(), and hitTriplets().

unsigned int CAHitTripletGenerator::minLayers = 3
static

Definition at line 36 of file CAHitTripletGenerator.h.

std::unique_ptr<SeedComparitor> CAHitTripletGenerator::theComparitor
private

Definition at line 70 of file CAHitTripletGenerator.h.

Referenced by CAHitTripletGenerator(), hitNtuplets(), hitTriplets(), and initEvent().

LayerCacheType CAHitTripletGenerator::theLayerCache
private

Definition at line 68 of file CAHitTripletGenerator.h.

Referenced by hitTriplets().

edm::EDGetTokenT<SeedingLayerSetsHits> CAHitTripletGenerator::theSeedingLayerToken
private

Definition at line 66 of file CAHitTripletGenerator.h.

Referenced by CAHitTripletGenerator(), and hitTriplets().

const bool CAHitTripletGenerator::useBendingCorrection
private

Definition at line 139 of file CAHitTripletGenerator.h.

Referenced by hitNtuplets(), and hitTriplets().