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), rVertex, zVertex),
60  thePhiMargin(std::abs(deltaPhi),std::abs(deltaPhi)),
61  theMeasurementTrackerUsage(whereToUseMeasurementTracker), thePrecise(precise),
62  theUseEtaPhi(etaPhiRegion), theMeasurementTrackerName(measurementTrackerName)
63  { initEtaRange(dir, Margin( std::abs(deltaEta),std::abs(deltaEta))); }
64 
72  const GlobalPoint & vertexPos,
73  float ptMin, float rVertex, float zVertex,
74  Margin etaMargin,
75  Margin phiMargin,
76  float whereToUseMeasurementTracker = 0.,
77  bool precise = true,
79  bool etaPhiRegion=false)
80  : TrackingRegionBase( dir, vertexPos, Range( -1/ptMin, 1/ptMin), rVertex, zVertex),
81  thePhiMargin( phiMargin), theMeasurementTrackerUsage(whereToUseMeasurementTracker),
82  thePrecise(precise),theUseEtaPhi(etaPhiRegion),
83  theMeasurementTrackerName(measurementTrackerName)
84  { initEtaRange(dir, etaMargin); }
85 
91  const GlobalPoint & vertexPos,
92  Range invPtRange,
93  float rVertex, float zVertex,
94  Margin etaMargin,
95  Margin phiMargin,
96  float whereToUseMeasurementTracker = 0.,
97  bool precise = true,
99  bool etaPhiRegion=false)
100  : TrackingRegionBase( dir, vertexPos, invPtRange, rVertex, zVertex),
101  thePhiMargin( phiMargin), theMeasurementTrackerUsage(whereToUseMeasurementTracker), thePrecise(precise),theUseEtaPhi(etaPhiRegion),
102  theMeasurementTrackerName(measurementTrackerName)
103  { initEtaRange(dir, etaMargin); }
104 
105 
107  const Range & etaRange() const { return theEtaRange; }
108 
111  const Margin & phiMargin() const { return thePhiMargin; }
112 
114  bool isPrecise() const { return thePrecise; }
115 
116  virtual TrackingRegion::Hits hits(
117  const edm::Event& ev,
118  const edm::EventSetup& es,
119  const ctfseeding::SeedingLayer* layer) const;
120 
121  virtual HitRZCompatibility * checkRZ(const DetLayer* layer,
122  const Hit & outerHit,
123  const edm::EventSetup& iSetup,
124  const DetLayer* outerlayer=0,
125  float lr=0, float gz=0, float dr=0, float dz=0) const
126  { return checkRZOld(layer,outerHit->hit(),iSetup); }
127 
129  return new RectangularEtaPhiTrackingRegion(*this);
130  }
131 
132  virtual std::string name() const { return "RectangularEtaPhiTrackingRegion"; }
133  virtual std::string print() const;
134 
135 private:
136  HitRZCompatibility* checkRZOld(
137  const DetLayer* layer,
138  const TrackingRecHit* outerHit,
139  const edm::EventSetup& iSetup) const;
140 
141  OuterEstimator * estimator(const BarrelDetLayer* layer,const edm::EventSetup& iSetup) const dso_internal;
142  OuterEstimator * estimator(const ForwardDetLayer* layer,const edm::EventSetup& iSetup) const dso_internal;
143 
144  OuterHitPhiPrediction phiWindow(const edm::EventSetup& iSetup) const dso_internal;
145  HitRZConstraint rzConstraint() const dso_internal;
146 
147  void initEtaRange( const GlobalVector & dir, const Margin& margin);
148 
149 private:
150 
151  Range theEtaRange;
152  Range theLambdaRange;
153  Margin thePhiMargin;
154  float theMeanLambda;
155  float theMeasurementTrackerUsage;
156  bool thePrecise;
157  bool theUseEtaPhi;
158  std::string theMeasurementTrackerName;
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
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
#define dso_internal
Definition: Visibility.h:13
std::vector< Hit > Hits
string const
Definition: compareJSON.py:14
GloballyPositioned< float >::GlobalVector GlobalVector
Definition: MagVolume.h:21
#define private
Definition: FWFileEntry.h:17
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.