CMS 3D CMS Logo

CosmicTrackingRegion.h
Go to the documentation of this file.
1 #ifndef CosmicTrackingRegion_H
2 #define CosmicTrackingRegion_H
3 
15 
18 
19 #include <vector>
20 
22 
24 public:
25  ~CosmicTrackingRegion() override {}
26 
52  const GlobalPoint& vertexPos,
53  float ptMin,
54  float rVertex,
55  float zVertex,
56  float deltaEta,
57  float deltaPhi,
58  const MagneticField& magField,
59  float dummy = 0.,
61  : TrackingRegionBase(dir, vertexPos, Range(-1 / ptMin, 1 / ptMin), rVertex, zVertex),
63  theMagneticField_(&magField) {}
64 
66  const GlobalPoint& vertexPos,
67  float ptMin,
68  float rVertex,
69  float zVertex,
70  float deltaEta,
71  float deltaPhi,
72  const MagneticField& magField,
74  : TrackingRegionBase(dir, vertexPos, Range(-1 / ptMin, 1 / ptMin), rVertex, zVertex),
76  theMagneticField_(&magField) {}
77 
79  : TrackingRegionBase(rh),
82 
84 
85  std::unique_ptr<HitRZCompatibility> checkRZ(const DetLayer* layer,
86  const Hit& outerHit,
87  const DetLayer* outerlayer = nullptr,
88  float lr = 0,
89  float gz = 0,
90  float dr = 0,
91  float dz = 0) const override {
92  return nullptr;
93  }
94 
97  void checkTracks(reco::TrackCollection const& tracks, std::vector<bool>& mask) const override;
98 
99  std::unique_ptr<TrackingRegion> clone() const override { return std::make_unique<CosmicTrackingRegion>(*this); }
100 
101  std::string name() const override { return "CosmicTrackingRegion"; }
102 
103 private:
104  template <typename T>
105  void hits_(const T& layer, TrackingRegion::Hits& result) const;
106 
109 
111  using cacheHits = std::vector<cacheHitPointer>;
112 
113  // not a solution! here just to try to get this thing working....
114  // in any case onDemand is NOT thread safe yet
115  // actually this solution is absolutely safe. It lays in the effimeral nature of the region itself
116  mutable cacheHits cache;
117 };
118 
119 #endif
std::vector< cacheHitPointer > cacheHits
std::string name() const override
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
static const double deltaEta
Definition: CaloConstants.h:8
constexpr std::array< uint8_t, layerIndexSize > layer
const MagneticField * theMagneticField_
float ptMin() const
minimal pt of interest
std::unique_ptr< HitRZCompatibility > checkRZ(const DetLayer *layer, const Hit &outerHit, const DetLayer *outerlayer=nullptr, float lr=0, float gz=0, float dr=0, float dz=0) const override
void checkTracks(reco::TrackCollection const &tracks, std::vector< bool > &mask) const override
CosmicTrackingRegion(const GlobalVector &dir, const GlobalPoint &vertexPos, float ptMin, float rVertex, float zVertex, float deltaEta, float deltaPhi, const MagneticField &magField, float dummy=0., const MeasurementTrackerEvent *measurementTracker=nullptr)
CosmicTrackingRegion(CosmicTrackingRegion const &rh)
auto const & tracks
cannot be loose
SeedingLayerSetsHits::Hits Hits
std::unique_ptr< TrackingRegion > clone() const override
CosmicTrackingRegion(const GlobalVector &dir, const GlobalPoint &vertexPos, float ptMin, float rVertex, float zVertex, float deltaEta, float deltaPhi, const MagneticField &magField, const MeasurementTrackerEvent *measurementTracker=nullptr)
BaseTrackerRecHit const * SeedingHit
const MeasurementTrackerEvent * theMeasurementTracker_
TrackingRegion::Hits hits(const SeedingLayerSetsHits::SeedingLayer &layer) const override
get hits from layer compatible with region constraints
long double T
void hits_(const T &layer, TrackingRegion::Hits &result) const