CMS 3D CMS Logo

HitPairGeneratorFromLayerPair.h
Go to the documentation of this file.
1 #ifndef HitPairGeneratorFromLayerPair_h
2 #define HitPairGeneratorFromLayerPair_h
3 
8 
9 #include <optional>
10 
11 class DetLayer;
13 class MagneticField;
16 class TrackingRegion;
17 
19 public:
23 
25  unsigned int inner,
26  unsigned int outer,
27  LayerCacheType* layerCache,
28  unsigned int max = 0);
29 
31 
32  std::optional<HitDoublets> doublets(const TrackingRegion& reg,
33  const edm::Event& ev,
34  const edm::EventSetup& es,
35  Layers layers) {
37  return doublets(reg, ev, es, layers, *theLayerCache);
38  }
39  std::optional<HitDoublets> doublets(const TrackingRegion& reg,
40  const edm::Event& ev,
41  const edm::EventSetup& es,
42  const Layer& innerLayer,
43  const Layer& outerLayer) {
45  return doublets(reg, ev, es, innerLayer, outerLayer, *theLayerCache);
46  }
47  std::optional<HitDoublets> doublets(const TrackingRegion& reg,
48  const edm::Event& ev,
49  const edm::EventSetup& es,
50  Layers layers,
51  LayerCacheType& layerCache) {
52  Layer innerLayerObj = innerLayer(layers);
53  Layer outerLayerObj = outerLayer(layers);
54  return doublets(reg, ev, es, innerLayerObj, outerLayerObj, layerCache);
55  }
56  std::optional<HitDoublets> doublets(const TrackingRegion& reg,
57  const edm::Event& ev,
58  const edm::EventSetup& es,
59  const Layer& innerLayer,
60  const Layer& outerLayer,
61  LayerCacheType& layerCache);
62 
63  bool hitPairs(
64  const TrackingRegion& reg, OrderedHitPairs& prs, const edm::Event& ev, const edm::EventSetup& es, Layers layers);
65  static bool doublets(const TrackingRegion& region,
66  const DetLayer& innerHitDetLayer,
67  const DetLayer& outerHitDetLayer,
68  const RecHitsSortedInPhi& innerHitsMap,
69  const RecHitsSortedInPhi& outerHitsMap,
70  const MagneticField& field,
72  const unsigned int theMaxElement,
74 
75  Layer innerLayer(const Layers& layers) const { return layers[theInnerLayer]; }
76  Layer outerLayer(const Layers& layers) const { return layers[theOuterLayer]; }
77 
78 private:
82  const unsigned int theOuterLayer;
83  const unsigned int theInnerLayer;
84  const unsigned int theMaxElement;
85 };
86 
87 #endif
std::optional< HitDoublets > doublets(const TrackingRegion &reg, const edm::Event &ev, const edm::EventSetup &es, Layers layers, LayerCacheType &layerCache)
HitPairGeneratorFromLayerPair(edm::ConsumesCollector iC, unsigned int inner, unsigned int outer, LayerCacheType *layerCache, unsigned int max=0)
Layer outerLayer(const Layers &layers) const
assert(be >=bs)
std::optional< HitDoublets > doublets(const TrackingRegion &reg, const edm::Event &ev, const edm::EventSetup &es, const Layer &innerLayer, const Layer &outerLayer)
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > theFieldToken
SeedingLayerSetsHits::SeedingLayer Layer
const edm::ESGetToken< MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord > theMSMakerToken
bool hitPairs(const TrackingRegion &reg, OrderedHitPairs &prs, const edm::Event &ev, const edm::EventSetup &es, Layers layers)
Layer innerLayer(const Layers &layers) const
SeedingLayerSetsHits::SeedingLayerSet Layers
std::optional< HitDoublets > doublets(const TrackingRegion &reg, const edm::Event &ev, const edm::EventSetup &es, Layers layers)