CMS 3D CMS Logo

CosmicTrackingRegion.h
Go to the documentation of this file.
1 #ifndef CosmicTrackingRegion_H
2 #define CosmicTrackingRegion_H
3 
17 
20 
21 #include <vector>
22 
23 using SeedingHit = BaseTrackerRecHit const *;
24 
26 public:
27 
28 
29  ~CosmicTrackingRegion() override { }
30 
56  const GlobalPoint & vertexPos,
57  float ptMin, float rVertex, float zVertex,
58  float deltaEta, float deltaPhi,
59  float dummy = 0.,
60  const MeasurementTrackerEvent * measurementTracker = nullptr)
61  : TrackingRegionBase( dir, vertexPos, Range( -1/ptMin, 1/ptMin),
62  rVertex, zVertex),
63  theMeasurementTracker_(measurementTracker),
65  { }
66 
68  const GlobalPoint & vertexPos,
69  float ptMin, float rVertex, float zVertex,
70  float deltaEta, float deltaPhi,
71  const edm::ParameterSet & extra,
72  const MeasurementTrackerEvent * measurementTracker = nullptr)
73  : TrackingRegionBase( dir, vertexPos, Range( -1/ptMin, 1/ptMin),
74  rVertex, zVertex),
75  theMeasurementTracker_(measurementTracker)
76  {
77  measurementTrackerName_ = extra.getParameter<std::string>("measurementTrackerName");
78  }
79 
84 
86  hits(
87  const edm::EventSetup& es,
88  const ctfseeding::SeedingLayer* layer) const;
89 
91  hits(
92  const edm::EventSetup& es,
93  const SeedingLayerSetsHits::SeedingLayer& layer) const override;
94 
96  const DetLayer* layer,
97  const Hit & outerHit,
98  const edm::EventSetup& iSetup,
99  const DetLayer* outerlayer=nullptr,
100  float lr=0, float gz=0, float dr=0, float dz=0) const override {return nullptr; }
101 
102  CosmicTrackingRegion * clone() const override { return new CosmicTrackingRegion(*this); }
103 
104  std::string name() const override { return "CosmicTrackingRegion"; }
105 
106 private:
107  template <typename T>
108  void hits_(
109  const edm::EventSetup& es,
110  const T& layer, TrackingRegion::Hits & result) const;
111 
112 
113 
116 
118  using cacheHits=std::vector<cacheHitPointer>;
119 
120  // not a solution! here just to try to get this thing working....
121  // in any case onDemand is NOT thread safe yet
122  // actually this solution is absolutely safe. It lays in the effimeral nature of the region itself
123  mutable cacheHits cache;
124 
125 
126 
127 };
128 
129 #endif
virtual TrackingRegion::ctfHits hits(const edm::EventSetup &es, const ctfseeding::SeedingLayer *layer) const
T getParameter(std::string const &) const
CosmicTrackingRegion(const GlobalVector &dir, const GlobalPoint &vertexPos, float ptMin, float rVertex, float zVertex, float deltaEta, float deltaPhi, const edm::ParameterSet &extra, const MeasurementTrackerEvent *measurementTracker=0)
std::vector< cacheHitPointer > cacheHits
ctfseeding::SeedingLayer::Hits ctfHits
CosmicTrackingRegion * clone() const override
void hits_(const edm::EventSetup &es, const T &layer, TrackingRegion::Hits &result) const
static const double deltaEta
Definition: CaloConstants.h:8
HitRZCompatibility * checkRZ(const DetLayer *layer, const Hit &outerHit, const edm::EventSetup &iSetup, const DetLayer *outerlayer=0, float lr=0, float gz=0, float dr=0, float dz=0) const override
CosmicTrackingRegion(CosmicTrackingRegion const &rh)
SeedingLayerSetsHits::Hits Hits
float ptMin() const
minimal pt of interest
BaseTrackerRecHit const * SeedingHit
std::string name() const override
const MeasurementTrackerEvent * theMeasurementTracker_
CosmicTrackingRegion(const GlobalVector &dir, const GlobalPoint &vertexPos, float ptMin, float rVertex, float zVertex, float deltaEta, float deltaPhi, float dummy=0., const MeasurementTrackerEvent *measurementTracker=0)
dbl *** dir
Definition: mlp_gen.cc:35
long double T