CMS 3D CMS Logo

GlobalTrackingRegion.cc
Go to the documentation of this file.
2 #include <cmath>
3 #include <sstream>
8 
15 
16 template <class T>
17 T sqr(T t) {
18  return t * t;
19 }
20 
21 using namespace GeomDetEnumerators;
22 
24  std::ostringstream str;
25  str << TrackingRegionBase::print() << "precise: " << thePrecise;
26  return str.str();
27 }
28 
30  const SeedingLayerSetsHits::SeedingLayer& layer) const {
31  return layer.hits();
32 }
33 
34 std::unique_ptr<HitRZCompatibility> GlobalTrackingRegion::checkRZ(const DetLayer* layer,
35  const Hit& outerHit,
36  const edm::EventSetup& iSetup,
37  const DetLayer* outerlayer,
38  float lr,
39  float gz,
40  float dr,
41  float dz) const {
42  bool isBarrel = layer->isBarrel();
43  bool isPixel = (layer->subDetector() == PixelBarrel || layer->subDetector() == PixelEndcap);
44 
45  if
46  UNLIKELY(!outerlayer) {
47  GlobalPoint ohit = outerHit->globalPosition();
48  lr = std::sqrt(sqr(ohit.x() - origin().x()) + sqr(ohit.y() - origin().y()));
49  gz = ohit.z();
50  dr = outerHit->errorGlobalR();
51  dz = outerHit->errorGlobalZ();
52  }
53 
54  PixelRecoPointRZ outerred(lr, gz);
55 
56  PixelRecoPointRZ vtxR = (gz > origin().z() + originZBound())
57  ? PixelRecoPointRZ(-originRBound(), origin().z() + originZBound())
58  : PixelRecoPointRZ(originRBound(), origin().z() + originZBound());
59  PixelRecoPointRZ vtxL = (gz < origin().z() - originZBound())
60  ? PixelRecoPointRZ(-originRBound(), origin().z() - originZBound())
61  : PixelRecoPointRZ(originRBound(), origin().z() - originZBound());
62 
63  if
64  UNLIKELY((!thePrecise) && (isPixel)) {
65  auto VcotMin = PixelRecoLineRZ(vtxR, outerred).cotLine();
66  auto VcotMax = PixelRecoLineRZ(vtxL, outerred).cotLine();
67  return std::make_unique<HitEtaCheck>(isBarrel, outerred, VcotMax, VcotMin);
68  }
69 
70  constexpr float nSigmaPhi = 3.;
71 
72  dr *= nSigmaPhi;
73  dz *= nSigmaPhi;
74 
75  PixelRecoPointRZ outerL, outerR;
76  if (isBarrel) {
77  outerL = PixelRecoPointRZ(lr, gz - dz);
78  outerR = PixelRecoPointRZ(lr, gz + dz);
79  } else if (gz > 0) {
80  outerL = PixelRecoPointRZ(lr + dr, gz);
81  outerR = PixelRecoPointRZ(lr - dr, gz);
82  } else {
83  outerL = PixelRecoPointRZ(lr - dr, gz);
84  outerR = PixelRecoPointRZ(lr + dr, gz);
85  }
86 
87  auto corr = isBarrel ? dz : dr;
88 
89  SimpleLineRZ leftLine(vtxL, outerL);
90  SimpleLineRZ rightLine(vtxR, outerR);
91  HitRZConstraint rzConstraint(leftLine, rightLine);
92 
93  if
94  UNLIKELY(theUseMS) {
95  MultipleScatteringParametrisation iSigma(layer, iSetup);
96  PixelRecoPointRZ vtxMean(0., origin().z());
97 
98  float innerScatt = 3.f * (outerlayer ? iSigma(ptMin(), vtxMean, outerred, outerlayer->seqNum())
99  : iSigma(ptMin(), vtxMean, outerred));
100 
101  float cotTheta = SimpleLineRZ(vtxMean, outerred).cotLine();
102 
103  if (isBarrel) {
104  float sinTheta = 1 / std::sqrt(1 + sqr(cotTheta));
105  corr = innerScatt / sinTheta + dz;
106  } else {
107  float cosTheta = 1 / std::sqrt(1 + sqr(1 / cotTheta));
108  corr = innerScatt / cosTheta + dr;
109  }
110  }
111 
112  if (isBarrel) {
113  return std::make_unique<HitZCheck>(rzConstraint, HitZCheck::Margin(corr, corr));
114  } else {
115  return std::make_unique<HitRCheck>(rzConstraint, HitRCheck::Margin(corr, corr));
116  }
117 }
Hit
Definition: SiPixelLorentzAngle.h:57
PixelRecoPointRZ.h
nSigmaPhi
constexpr float nSigmaPhi
Definition: PixelTripletLargeTipGenerator.cc:44
GlobalTrackingRegion::checkRZ
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 override
Definition: GlobalTrackingRegion.cc:34
GlobalTrackingRegion.h
TrackerGeometry.h
DetLayer::subDetector
virtual SubDetector subDetector() const =0
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel,...
DetLayer
Definition: DetLayer.h:21
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
SimpleLineRZ::cotLine
float cotLine() const
Definition: PixelRecoLineRZ.h:74
ptMin
constexpr float ptMin
Definition: PhotonIDValueMapProducer.cc:153
GlobalTrackingRegion::hits
TrackingRegion::Hits hits(const edm::EventSetup &es, const SeedingLayerSetsHits::SeedingLayer &layer) const override
get hits from layer compatible with region constraints
Definition: GlobalTrackingRegion.cc:29
TrackingRegion::print
virtual std::string print() const
Definition: TrackingRegion.h:113
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
UNLIKELY
#define UNLIKELY(x)
Definition: Likely.h:21
GeomDetEnumerators::PixelBarrel
Definition: GeomDetEnumerators.h:11
GlobalTrackingRegion::print
std::string print() const override
Definition: GlobalTrackingRegion.cc:23
TrackingRegion::Hits
SeedingLayerSetsHits::Hits Hits
Definition: TrackingRegion.h:44
alignCSCRings.corr
dictionary corr
Definition: alignCSCRings.py:124
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
str
#define str(s)
Definition: TestProcessor.cc:48
HitRZConstraint
Definition: HitRZConstraint.h:8
PixelRecoUtilities.h
Point3DBase< float, GlobalTag >
OrderedSet.t
t
Definition: OrderedSet.py:90
DetLayer::seqNum
int seqNum() const
Definition: DetLayer.h:35
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TrackerDigiGeometryRecord.h
fastTrackerRecHitType::isPixel
bool isPixel(HitType hitType)
Definition: FastTrackerRecHit.h:37
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
PixelRecoLineRZ
Definition: PixelRecoLineRZ.h:12
GeomDetEnumerators::isBarrel
bool isBarrel(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:57
TkTrackingRegionsMargin< float >
edm::EventSetup
Definition: EventSetup.h:57
HitRCheck.h
HitZCheck.h
SeedingLayerSetsHits::SeedingLayer
Definition: SeedingLayerSetsHits.h:37
PixelRecoPointRZ
Definition: PixelRecoPointRZ.h:6
SeedingLayerSetsHits::SeedingLayer::hits
Hits hits() const
Definition: SeedingLayerSetsHits.h:51
HitEtaCheck.h
sqr
T sqr(T t)
Definition: GlobalTrackingRegion.cc:17
MultipleScatteringParametrisation.h
SimpleLineRZ
Definition: PixelRecoLineRZ.h:63
GeomDetEnumerators
Definition: GeomDetEnumerators.h:8
PVValHelper::dz
Definition: PVValidationHelpers.h:50
PixelRecoLineRZ::cotLine
float cotLine() const
Definition: PixelRecoLineRZ.h:31
T
long double T
Definition: Basic3DVectorLD.h:48
flavorHistoryFilter_cfi.dr
dr
Definition: flavorHistoryFilter_cfi.py:37
DetLayer.h
PixelRecoLineRZ.h
GeomDetEnumerators::PixelEndcap
Definition: GeomDetEnumerators.h:12
MultipleScatteringParametrisation
Definition: MultipleScatteringParametrisation.h:16
vtxMean
static GlobalPoint vtxMean(const GlobalPoint &p1, const GlobalError &e1, const GlobalPoint &p2, const GlobalError &e2)
Definition: GhostTrackVertexFinder.cc:121
DetLayer::isBarrel
bool isBarrel() const
Definition: DetLayer.h:31