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 
52  const GlobalPoint & vertexPos,
53  float ptMin, float rVertex, float zVertex,
54  float deltaEta, float deltaPhi,
55  float whereToUseMeasurementTracker = 0.,
56  bool precise = true,
58  bool etaPhiRegion=false)
59  : TrackingRegionBase( dir, vertexPos, Range( -1/ptMin, 1/ptMin),
60  rVertex, zVertex),
61  thePhiMargin( Margin( fabs(deltaPhi),fabs(deltaPhi))),
62  theMeasurementTrackerUsage(whereToUseMeasurementTracker), thePrecise(precise), theMeasurementTrackerName(measurementTrackerName),
63  theUseEtaPhi(etaPhiRegion)
64  { initEtaRange(dir, Margin( fabs(deltaEta),fabs(deltaEta))); }
65 
73  const GlobalPoint & vertexPos,
74  float ptMin, float rVertex, float zVertex,
75  Margin etaMargin,
76  Margin phiMargin,
77  float whereToUseMeasurementTracker = 0.,
78  bool precise = true,
80  bool etaPhiRegion=false)
81  : TrackingRegionBase( dir, vertexPos, Range( -1/ptMin, 1/ptMin),
82  rVertex, zVertex), thePhiMargin( phiMargin), theMeasurementTrackerUsage(whereToUseMeasurementTracker), thePrecise(precise),
83  theMeasurementTrackerName(measurementTrackerName),
84  theUseEtaPhi(etaPhiRegion)
85  { initEtaRange(dir, etaMargin); }
86 
92  const GlobalPoint & vertexPos,
93  Range invPtRange,
94  float rVertex, float zVertex,
95  Margin etaMargin,
96  Margin phiMargin,
97  float whereToUseMeasurementTracker = 0.,
98  bool precise = true,
100  bool etaPhiRegion=false)
101  : TrackingRegionBase( dir, vertexPos, invPtRange, rVertex, zVertex),
102  thePhiMargin( phiMargin), theMeasurementTrackerUsage(whereToUseMeasurementTracker), thePrecise(precise),
103  theMeasurementTrackerName(measurementTrackerName),
104  theUseEtaPhi(etaPhiRegion)
105  { initEtaRange(dir, etaMargin); }
106 
107 
109  const Range & etaRange() const { return theEtaRange; }
110 
113  const Margin & phiMargin() const { return thePhiMargin; }
114 
116  bool isPrecise() const { return thePrecise; }
117 
118  virtual TrackingRegion::Hits hits(
119  const edm::Event& ev,
120  const edm::EventSetup& es,
121  const ctfseeding::SeedingLayer* layer) const;
122 
123  virtual HitRZCompatibility * checkRZ(const DetLayer* layer,
124  const Hit & outerHit,
125  const edm::EventSetup& iSetup,
126  const DetLayer* outerlayer=0,
127  float lr=0, float gz=0, float dr=0, float dz=0) const
128  { return checkRZOld(layer,outerHit->hit(),iSetup); }
129 
131  return new RectangularEtaPhiTrackingRegion(*this);
132  }
133 
134  virtual std::string name() const { return "RectangularEtaPhiTrackingRegion"; }
135  virtual std::string print() const;
136 
137 private:
138  HitRZCompatibility* checkRZOld(
139  const DetLayer* layer,
140  const TrackingRecHit* outerHit,
141  const edm::EventSetup& iSetup) const;
142 
143  OuterEstimator * estimator(const BarrelDetLayer* layer,const edm::EventSetup& iSetup) const;
144  OuterEstimator * estimator(const ForwardDetLayer* layer,const edm::EventSetup& iSetup) const;
145 
146  OuterHitPhiPrediction phiWindow(const edm::EventSetup& iSetup) const;
147  HitRZConstraint rzConstraint() const;
148 
149  void initEtaRange( const GlobalVector & dir, const Margin& margin);
150 
151 private:
152 
156  bool thePrecise;
159 };
160 
161 #endif
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)
const Margin & phiMargin() const
GloballyPositioned< float >::GlobalPoint GlobalPoint
Definition: MagVolume.h:20
std::string print(const Track &, edm::Verbosity=edm::Concise)
Track print utility.
Definition: print.cc:8
virtual RectangularEtaPhiTrackingRegion * clone() const
TkTrackingRegionsMargin< float > Margin
virtual std::string name() 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)
bool isPrecise() const
is precise error calculation switched on
std::vector< Hit > Hits
GloballyPositioned< float >::GlobalVector GlobalVector
Definition: MagVolume.h:21
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)
dbl *** dir
Definition: mlp_gen.cc:35
virtual 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
const Range & etaRange() const
allowed eta range [eta_min, eta_max] interval
Unlimited (trivial) bounds.