CMS 3D CMS Logo

TrackingRegion.h
Go to the documentation of this file.
1 #ifndef TrackingRegion_H
2 #define TrackingRegion_H
3 
11 
18 
21 
22 #include <utility>
23 
24 #include <sstream>
25 #include <memory>
26 #include <vector>
27 #include <string>
28 
29 class DetLayer;
30 class HitRZCompatibility;
31 class BarrelDetLayer;
32 class ForwardDetLayer;
33 
34 namespace edm {
35  class Event;
36 }
37 
39 public:
40 public:
41  virtual ~TrackingRegion() {}
45 
46 public:
48  const GlobalPoint& originPos,
49  const Range& invPtRange,
50  const float& originRBound,
51  const float& originZBound)
54  theVertexPos(originPos),
60 
62  GlobalVector const& direction() const { return theDirection; }
63  GlobalVector const& unitDirection() const { return theUnitDirection; }
64 
65  float phiDirection() const { return thePhi; }
66 
71  GlobalPoint const& origin() const { return theVertexPos; }
72 
74  float originRBound() const { return theVertexRBound; }
75 
77  float originZBound() const { return theVertexZBound; }
78 
80  float ptMin() const { return thePtMin; }
81 
83  Range invPtRange() const { return theInvPtRange; }
84 
87  virtual std::unique_ptr<HitRZCompatibility> checkRZ(const DetLayer* layer,
88  const Hit& outerHit,
89  const edm::EventSetup& iSetup,
90  const DetLayer* outerlayer = nullptr,
91  float lr = 0,
92  float gz = 0,
93  float dr = 0,
94  float dz = 0) const = 0;
95 
97  virtual Hits hits(const edm::EventSetup& es, const SeedingLayerSetsHits::SeedingLayer& layer) const = 0;
98 
100  std::unique_ptr<TrackingRegion> restrictedRegion(const GlobalPoint& originPos,
101  const float& originRBound,
102  const float& originZBound) const {
103  auto restr = clone();
104  restr->theVertexPos = originPos;
105  restr->theVertexRBound = originRBound;
106  restr->theVertexZBound = originZBound;
107  return restr;
108  }
109 
110  virtual std::unique_ptr<TrackingRegion> clone() const = 0;
111 
112  virtual std::string name() const { return "TrackingRegion"; }
113  virtual std::string print() const {
114  std::ostringstream str;
115  str << name() << " dir:" << theDirection << " vtx:" << theVertexPos << " dr:" << theVertexRBound
116  << " dz:" << theVertexZBound << " pt:" << 1. / theInvPtRange.max();
117  return str.str();
118  }
119 
120  // void setDirection(const GlobalVector & dir ) { theDirection = dir; }
121 
122 private:
123  GlobalVector theDirection; // this is not direction is momentum...
124  GlobalVector theUnitDirection; // the real direction
127  float thePhi;
128  float thePtMin;
131 };
132 
134 
135 #endif
Vector3DBase
Definition: Vector3DBase.h:8
TrackingRegion::origin
GlobalPoint const & origin() const
Definition: TrackingRegion.h:71
Hit
Definition: SiPixelLorentzAngle.h:57
TrackingRegion::invPtRange
Range invPtRange() const
inverse pt range
Definition: TrackingRegion.h:83
DetLayer
Definition: DetLayer.h:21
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
TrackingRegion::theInvPtRange
Range theInvPtRange
Definition: TrackingRegion.h:126
min
T min(T a, T b)
Definition: MathUtil.h:58
TrackingRegion::TrackingRegion
TrackingRegion(const GlobalVector &direction, const GlobalPoint &originPos, const Range &invPtRange, const float &originRBound, const float &originZBound)
Definition: TrackingRegion.h:47
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackingRegion::theVertexZBound
float theVertexZBound
Definition: TrackingRegion.h:130
TrackingRegion::restrictedRegion
std::unique_ptr< TrackingRegion > restrictedRegion(const GlobalPoint &originPos, const float &originRBound, const float &originZBound) const
clone region with new vertex position
Definition: TrackingRegion.h:100
TrackingRegion::theDirection
GlobalVector theDirection
Definition: TrackingRegion.h:123
TrackingRegion::hits
virtual Hits hits(const edm::EventSetup &es, const SeedingLayerSetsHits::SeedingLayer &layer) const =0
get hits from layer compatible with region constraints
TrackingRegion::thePtMin
float thePtMin
Definition: TrackingRegion.h:128
TrackingRegion::print
virtual std::string print() const
Definition: TrackingRegion.h:113
TrackingRegion::thePhi
float thePhi
Definition: TrackingRegion.h:127
SeedingLayerSetsHits.h
TrackingRegion::Hits
SeedingLayerSetsHits::Hits Hits
Definition: TrackingRegion.h:44
TrackingRegion::theUnitDirection
GlobalVector theUnitDirection
Definition: TrackingRegion.h:124
HitRZCompatibility.h
PixelRecoRange::max
T max() const
Definition: PixelRecoRange.h:26
str
#define str(s)
Definition: TestProcessor.cc:48
Event
TrackingRegion::phiDirection
float phiDirection() const
Definition: TrackingRegion.h:65
SeedingLayerSetsHits::ConstRecHitPointer
BaseTrackerRecHit const * ConstRecHitPointer
Definition: SeedingLayerSetsHits.h:25
TrackingRegion::ptMin
float ptMin() const
minimal pt of interest
Definition: TrackingRegion.h:80
Point3DBase< float, GlobalTag >
TrackingRegion::originRBound
float originRBound() const
bounds the particle vertex in the transverse plane
Definition: TrackingRegion.h:74
barePhi
T barePhi() const
Definition: Basic3DVectorLD.h:142
HitRZCompatibility
Definition: HitRZCompatibility.h:8
TrackingRegion::theVertexRBound
float theVertexRBound
Definition: TrackingRegion.h:129
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
PixelRecoRange< float >
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
TrackingRegion::originZBound
float originZBound() const
bounds the particle vertex in the longitudinal plane
Definition: TrackingRegion.h:77
TrackingRegion::direction
GlobalVector const & direction() const
the direction around which region is constructed
Definition: TrackingRegion.h:62
TrackingRegion::checkRZ
virtual std::unique_ptr< HitRZCompatibility > checkRZ(const DetLayer *layer, const Hit &outerHit, const edm::EventSetup &iSetup, const DetLayer *outerlayer=nullptr, float lr=0, float gz=0, float dr=0, float dz=0) const =0
TrackingRegion::theVertexPos
GlobalPoint theVertexPos
Definition: TrackingRegion.h:125
TrackingRegion::Hit
SeedingLayerSetsHits::ConstRecHitPointer Hit
Definition: TrackingRegion.h:43
TrackingRegion::clone
virtual std::unique_ptr< TrackingRegion > clone() const =0
TrackingRegion::Range
PixelRecoRange< float > Range
Definition: TrackingRegion.h:42
edm::EventSetup
Definition: EventSetup.h:57
HitRCheck.h
HitZCheck.h
BarrelDetLayer
Definition: BarrelDetLayer.h:22
SeedingLayerSetsHits::SeedingLayer
Definition: SeedingLayerSetsHits.h:37
unit
Basic3DVector unit() const
Definition: Basic3DVectorLD.h:162
HitEtaCheck.h
TrackingRegion::unitDirection
GlobalVector const & unitDirection() const
Definition: TrackingRegion.h:63
std
Definition: JetResolutionObject.h:76
ForwardDetLayer
Definition: ForwardDetLayer.h:22
PVValHelper::dz
Definition: PVValidationHelpers.h:50
SeedingLayerSetsHits::Hits
std::vector< ConstRecHitPointer > Hits
Definition: SeedingLayerSetsHits.h:26
flavorHistoryFilter_cfi.dr
dr
Definition: flavorHistoryFilter_cfi.py:37
DetLayer.h
GlobalVector.h
EventSetup.h
TrackingRegion
Definition: TrackingRegion.h:38
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
GlobalPoint.h
TrackingRegion::name
virtual std::string name() const
Definition: TrackingRegion.h:112
PixelRecoRange.h
TrackingRegion::~TrackingRegion
virtual ~TrackingRegion()
Definition: TrackingRegion.h:41