CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RectangularEtaPhiTrackingRegion.h
Go to the documentation of this file.
1 #ifndef RectangularEtaPhiTrackingRegion_H
2 #define RectangularEtaPhiTrackingRegion_H
3 
13 //#include "CommonDet/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h"
17 class OuterEstimator;
18 class BarrelDetLayer;
19 class ForwardDetLayer;
20 
22 public:
23 
25 
28 
55  const GlobalPoint & vertexPos,
56  float ptMin, float rVertex, float zVertex,
57  float deltaEta, float deltaPhi,
58  float whereToUseMeasurementTracker = 0.,
59  bool precise = true,
60  const std::string & measurementTrackerName = "",
61  bool etaPhiRegion=false)
62  : TrackingRegionBase( dir, vertexPos, Range( -1/ptMin, 1/ptMin),
63  rVertex, zVertex),
64  thePhiMargin( Margin( fabs(deltaPhi),fabs(deltaPhi))),
66  theUseEtaPhi(etaPhiRegion)
67  { initEtaRange(dir, Margin( fabs(deltaEta),fabs(deltaEta))); }
68 
76  const GlobalPoint & vertexPos,
77  float ptMin, float rVertex, float zVertex,
78  Margin etaMargin,
80  float whereToUseMeasurementTracker = 0.,
81  bool precise = true,
82  const std::string & measurementTrackerName = "",
83  bool etaPhiRegion=false)
84  : TrackingRegionBase( dir, vertexPos, Range( -1/ptMin, 1/ptMin),
85  rVertex, zVertex), thePhiMargin( phiMargin), theMeasurementTrackerUsage(whereToUseMeasurementTracker), thePrecise(precise),
87  theUseEtaPhi(etaPhiRegion)
88  { initEtaRange(dir, etaMargin); }
89 
95  const GlobalPoint & vertexPos,
97  float rVertex, float zVertex,
98  Margin etaMargin,
100  float whereToUseMeasurementTracker = 0.,
101  bool precise = true,
102  const std::string & measurementTrackerName = "",
103  bool etaPhiRegion=false)
104  : TrackingRegionBase( dir, vertexPos, invPtRange, rVertex, zVertex),
105  thePhiMargin( phiMargin), theMeasurementTrackerUsage(whereToUseMeasurementTracker), thePrecise(precise),
107  theUseEtaPhi(etaPhiRegion)
108  { initEtaRange(dir, etaMargin); }
109 
110 
112  const Range & etaRange() const { return theEtaRange; }
113 
116  const Margin & phiMargin() const { return thePhiMargin; }
117 
119  bool isPrecise() const { return thePrecise; }
120 
121  virtual TrackingRegion::Hits hits(
122  const edm::Event& ev,
123  const edm::EventSetup& es,
124  const ctfseeding::SeedingLayer* layer) const;
125 
127  const DetLayer* layer,
128  const Hit & outerHit,
129  const edm::EventSetup& iSetup) const { return checkRZOld(layer,outerHit->hit(),iSetup); }
130 
132  return new RectangularEtaPhiTrackingRegion(*this);
133  }
134 
135  virtual std::string name() const { return "RectangularEtaPhiTrackingRegion"; }
136  virtual std::string print() const;
137 
138 private:
140  const DetLayer* layer,
141  const TrackingRecHit* outerHit,
142  const edm::EventSetup& iSetup) const;
143 
144  OuterEstimator * estimator(const BarrelDetLayer* layer,const edm::EventSetup& iSetup) const;
145  OuterEstimator * estimator(const ForwardDetLayer* layer,const edm::EventSetup& iSetup) const;
146 
147  OuterHitPhiPrediction phiWindow(const edm::EventSetup& iSetup) const;
149 
150  void initEtaRange( const GlobalVector & dir, const Margin& margin);
151 
152 private:
153 
160 };
161 
162 #endif
OuterEstimator * estimator(const BarrelDetLayer *layer, const edm::EventSetup &iSetup) const
RectangularEtaPhiTrackingRegion(const GlobalVector &dir, const GlobalPoint &vertexPos, float ptMin, float rVertex, float zVertex, float deltaEta, float deltaPhi, float whereToUseMeasurementTracker=0., bool precise=true, const std::string &measurementTrackerName="", bool etaPhiRegion=false)
RectangularEtaPhiTrackingRegion(const GlobalVector &dir, const GlobalPoint &vertexPos, float ptMin, float rVertex, float zVertex, Margin etaMargin, Margin phiMargin, float whereToUseMeasurementTracker=0., bool precise=true, const std::string &measurementTrackerName="", bool etaPhiRegion=false)
HitRZCompatibility * checkRZOld(const DetLayer *layer, const TrackingRecHit *outerHit, const edm::EventSetup &iSetup) const
RectangularEtaPhiTrackingRegion(const GlobalVector &dir, const GlobalPoint &vertexPos, Range invPtRange, float rVertex, float zVertex, Margin etaMargin, Margin phiMargin, float whereToUseMeasurementTracker=0., bool precise=true, const std::string &measurementTrackerName="", bool etaPhiRegion=false)
virtual HitRZCompatibility * checkRZ(const DetLayer *layer, const Hit &outerHit, const edm::EventSetup &iSetup) const
virtual Range invPtRange() const
inverse pt range
void initEtaRange(const GlobalVector &dir, const Margin &margin)
virtual RectangularEtaPhiTrackingRegion * clone() const
clone region
virtual float ptMin() const
minimal pt of interest
OuterHitPhiPrediction phiWindow(const edm::EventSetup &iSetup) const
std::vector< Hit > Hits
bool isPrecise() const
is precise error calculation switched on
dbl *** dir
Definition: mlp_gen.cc:35
virtual TrackingRegion::Hits hits(const edm::Event &ev, const edm::EventSetup &es, const ctfseeding::SeedingLayer *layer) const
get hits from layer compatible with region constraints
TkTrackingRegionsMargin< float > Margin
const Range & etaRange() const
allowed eta range [eta_min, eta_max] interval