CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes
FastTrackerRecHitMatcher Class Reference
Inheritance diagram for FastTrackerRecHitMatcher:
edm::stream::EDProducer<>

Public Member Functions

 FastTrackerRecHitMatcher (const edm::ParameterSet &)
 
 ~FastTrackerRecHitMatcher () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Types

typedef std::pair< LocalPoint, LocalPointStripPosition
 

Private Member Functions

const FastSingleTrackerRecHit_cast2Single (const FastTrackerRecHit *recHit) const
 
std::unique_ptr< FastTrackerRecHitmatch (const FastSingleTrackerRecHit *monoRH, const FastSingleTrackerRecHit *stereoRH, const GluedGeomDet *gluedDet, LocalVector &trackdirection, bool stereLayerFirst) const
 
void produce (edm::Event &, const edm::EventSetup &) override
 
StripPosition project (const GeomDetUnit *det, const GluedGeomDet *glueddet, const StripPosition &strip, const LocalVector &trackdirection) const
 
std::unique_ptr< FastTrackerRecHitprojectOnly (const FastSingleTrackerRecHit *originalRH, const GeomDet *monoDet, const GluedGeomDet *gluedDet, LocalVector &ldir) const
 

Private Attributes

edm::EDGetTokenT< FastTrackerRecHitRefCollectionsimHit2RecHitMapToken
 
edm::EDGetTokenT< edm::PSimHitContainersimHitsToken
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Definition at line 31 of file FastTrackerRecHitMatcher.cc.

Member Typedef Documentation

◆ StripPosition

Definition at line 41 of file FastTrackerRecHitMatcher.cc.

Constructor & Destructor Documentation

◆ FastTrackerRecHitMatcher()

FastTrackerRecHitMatcher::FastTrackerRecHitMatcher ( const edm::ParameterSet iConfig)
explicit

Definition at line 77 of file FastTrackerRecHitMatcher.cc.

79 {
80  simHitsToken = consumes<edm::PSimHitContainer>(iConfig.getParameter<edm::InputTag>("simHits"));
82  consumes<FastTrackerRecHitRefCollection>(iConfig.getParameter<edm::InputTag>("simHit2RecHitMap"));
83 
84  produces<FastTrackerRecHitCollection>();
85  produces<FastTrackerRecHitRefCollection>("simHit2RecHitMap");
86 }

References edm::ParameterSet::getParameter(), simHit2RecHitMapToken, and simHitsToken.

◆ ~FastTrackerRecHitMatcher()

FastTrackerRecHitMatcher::~FastTrackerRecHitMatcher ( )
inlineoverride

Definition at line 34 of file FastTrackerRecHitMatcher.cc.

34 { ; }

Member Function Documentation

◆ _cast2Single()

const FastSingleTrackerRecHit* FastTrackerRecHitMatcher::_cast2Single ( const FastTrackerRecHit recHit) const
inlineprivate

Definition at line 63 of file FastTrackerRecHitMatcher.cc.

63  {
64  if (!recHit->isSingle()) {
65  throw cms::Exception("FastTrackerRecHitMatcher")
66  << "all rechits in simHit2RecHitMap must be instances of FastSingleTrackerRecHit. recHit's rtti: "
67  << recHit->rtti() << std::endl;
68  }
69  return dynamic_cast<const FastSingleTrackerRecHit*>(recHit);
70  }

References Exception, and rpcPointValidation_cfi::recHit.

Referenced by produce().

◆ fillDescriptions()

void FastTrackerRecHitMatcher::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 357 of file FastTrackerRecHitMatcher.cc.

357  {
358  //The following says we do not know what parameters are allowed so do no validation
359  // Please change this to state exactly what you do use, even if it is no parameters
361  desc.setUnknown();
362  descriptions.addDefault(desc);
363 }

References edm::ConfigurationDescriptions::addDefault(), and submitPVResolutionJobs::desc.

◆ match()

std::unique_ptr< FastTrackerRecHit > FastTrackerRecHitMatcher::match ( const FastSingleTrackerRecHit monoRH,
const FastSingleTrackerRecHit stereoRH,
const GluedGeomDet gluedDet,
LocalVector trackdirection,
bool  stereLayerFirst 
) const
private

Definition at line 197 of file FastTrackerRecHitMatcher.cc.

201  {
202  // stripdet = mono
203  // partnerstripdet = stereo
204  const GeomDetUnit* stripdet = gluedDet->monoDet();
205  const GeomDetUnit* partnerstripdet = gluedDet->stereoDet();
206  const StripTopology& topol = (const StripTopology&)stripdet->topology();
207 
209 
210  // position of the initial and final point of the strip (RPHI cluster) in local strip coordinates
211  MeasurementPoint RPHIpoint = topol.measurementPosition(monoRH->localPosition());
212  MeasurementPoint RPHIpointini = MeasurementPoint(RPHIpoint.x(), -0.5);
213  MeasurementPoint RPHIpointend = MeasurementPoint(RPHIpoint.x(), 0.5);
214 
215  // position of the initial and final point of the strip in local coordinates (mono det)
216  StripPosition stripmono = StripPosition(topol.localPosition(RPHIpointini), topol.localPosition(RPHIpointend));
217 
218  // in case of no track hypothesis assume a track from the origin through the center of the strip
219  if (trackdirection.mag2() < FLT_MIN) {
220  LocalPoint lcenterofstrip = monoRH->localPosition();
221  GlobalPoint gcenterofstrip = (stripdet->surface()).toGlobal(lcenterofstrip);
222  GlobalVector gtrackdirection = gcenterofstrip - GlobalPoint(0, 0, 0);
223  trackdirection = (gluedDet->surface()).toLocal(gtrackdirection);
224  }
225 
226  //project mono hit on glued det
227  StripPosition projectedstripmono = project(stripdet, gluedDet, stripmono, trackdirection);
228  const StripTopology& partnertopol = (const StripTopology&)partnerstripdet->topology();
229 
230  //error calculation (the part that depends on mono RH only)
231  LocalVector RPHIpositiononGluedendvector = projectedstripmono.second - projectedstripmono.first;
232  double c1 = sin(RPHIpositiononGluedendvector.phi());
233  double s1 = -cos(RPHIpositiononGluedendvector.phi());
234  MeasurementError errormonoRH = topol.measurementError(monoRH->localPosition(), monoRH->localPositionError());
235  double pitch = topol.localPitch(monoRH->localPosition());
236  double sigmap12 = errormonoRH.uu() * pitch * pitch;
237 
238  // position of the initial and final point of the strip (STEREO cluster)
239  MeasurementPoint STEREOpoint = partnertopol.measurementPosition(stereoRH->localPosition());
240 
241  MeasurementPoint STEREOpointini = MeasurementPoint(STEREOpoint.x(), -0.5);
242  MeasurementPoint STEREOpointend = MeasurementPoint(STEREOpoint.x(), 0.5);
243 
244  // position of the initial and final point of the strip in local coordinates (stereo det)
245  StripPosition stripstereo(partnertopol.localPosition(STEREOpointini), partnertopol.localPosition(STEREOpointend));
246 
247  //project stereo hit on glued det
248  StripPosition projectedstripstereo = project(partnerstripdet, gluedDet, stripstereo, trackdirection);
249 
250  //perform the matching
251  //(x2-x1)(y-y1)=(y2-y1)(x-x1)
253  AlgebraicVector2 c, solution;
254  m(0, 0) = -(projectedstripmono.second.y() - projectedstripmono.first.y());
255  m(0, 1) = (projectedstripmono.second.x() - projectedstripmono.first.x());
256  m(1, 0) = -(projectedstripstereo.second.y() - projectedstripstereo.first.y());
257  m(1, 1) = (projectedstripstereo.second.x() - projectedstripstereo.first.x());
258  c(0) = m(0, 1) * projectedstripmono.first.y() + m(0, 0) * projectedstripmono.first.x();
259  c(1) = m(1, 1) * projectedstripstereo.first.y() + m(1, 0) * projectedstripstereo.first.x();
260  m.Invert();
261  solution = m * c;
262  position = LocalPoint(solution(0), solution(1));
263 
264  //
265  // temporary fix by tommaso
266  //
267 
268  LocalError tempError(100, 0, 100);
269 
270  // calculate the error
271  LocalVector stereopositiononGluedendvector = projectedstripstereo.second - projectedstripstereo.first;
272  double c2 = sin(stereopositiononGluedendvector.phi());
273  double s2 = -cos(stereopositiononGluedendvector.phi());
274  MeasurementError errorstereoRH =
275  partnertopol.measurementError(stereoRH->localPosition(), stereoRH->localPositionError());
276  pitch = partnertopol.localPitch(stereoRH->localPosition());
277  double sigmap22 = errorstereoRH.uu() * pitch * pitch;
278  double diff = (c1 * s2 - c2 * s1);
279  double invdet2 = 1 / (diff * diff);
280  float xx = invdet2 * (sigmap12 * s2 * s2 + sigmap22 * s1 * s1);
281  float xy = -invdet2 * (sigmap12 * c2 * s2 + sigmap22 * c1 * s1);
282  float yy = invdet2 * (sigmap12 * c2 * c2 + sigmap22 * c1 * c1);
284 
285  //Added by DAO to make sure y positions are zero.
286  DetId det(monoRH->geographicalId());
287  if (det.subdetId() > 2) {
288  return std::make_unique<FastMatchedTrackerRecHit>(position, error, *gluedDet, *monoRH, *stereoRH, stereoHitFirst);
289 
290  }
291 
292  else {
293  throw cms::Exception("FastTrackerRecHitMatcher") << "Matched Pixel!?";
294  }
295 }

References c, alignmentValidation::c1, funct::cos(), change_name::diff, relativeConstraints::error, Exception, TrackingRecHit::geographicalId(), StripTopology::localPitch(), StripTopology::localPosition(), BaseTrackerRecHit::localPosition(), BaseTrackerRecHit::localPositionError(), visualization-live-secondInstance_cfg::m, PV3DBase< T, PVType, FrameType >::mag2(), Topology::measurementError(), Topology::measurementPosition(), GluedGeomDet::monoDet(), PV3DBase< T, PVType, FrameType >::phi(), position, project(), funct::sin(), GluedGeomDet::stereoDet(), GeomDet::surface(), toLocal(), GeomDet::topology(), PV2DBase< T, PVType, FrameType >::x(), geometryCSVtoXML::xx, geometryCSVtoXML::xy, and geometryCSVtoXML::yy.

Referenced by produce().

◆ produce()

void FastTrackerRecHitMatcher::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 88 of file FastTrackerRecHitMatcher.cc.

88  {
89  // services
92 
93  // input
95  iEvent.getByToken(simHitsToken, simHits);
96 
99 
100  // output
101  auto output_recHits = std::make_unique<FastTrackerRecHitCollection>();
102  auto output_simHit2RecHitMap =
103  std::make_unique<FastTrackerRecHitRefCollection>(simHit2RecHitMap->size(), FastTrackerRecHitRef());
104  edm::RefProd<FastTrackerRecHitCollection> output_recHits_refProd =
105  iEvent.getRefBeforePut<FastTrackerRecHitCollection>();
106 
107  bool skipNext = false;
108  for (unsigned simHitCounter = 0; simHitCounter < simHits->size(); ++simHitCounter) {
109  // skip hit in case it was matched to previous one
110  if (skipNext) {
111  skipNext = false;
112  continue;
113  }
114  skipNext = false;
115 
116  // get simHit and associated recHit
117  const PSimHit& simHit = (*simHits)[simHitCounter];
118  const FastTrackerRecHitRef& recHitRef = (*simHit2RecHitMap)[simHitCounter];
119 
120  // skip simHits w/o associated recHit
121  if (recHitRef.isNull())
122  continue;
123 
124  // cast
125  const FastSingleTrackerRecHit* recHit = _cast2Single(recHitRef.get());
126 
127  // get subdetector id
128  DetId detid = recHit->geographicalId();
129  unsigned int subdet = detid.subdetId();
130 
131  // treat pixel hits
132  if (subdet <= 2) {
133  (*output_simHit2RecHitMap)[simHitCounter] = recHitRef;
134  }
135 
136  // treat strip hits
137  else {
138  StripSubdetector stripSubDetId(detid);
139 
140  // treat regular regular strip hits
141  if (!stripSubDetId.glued()) {
142  (*output_simHit2RecHitMap)[simHitCounter] = recHitRef;
143  }
144 
145  // treat strip hits on glued layers
146  else {
147  // Obtain direction of simtrack at simhit in local coordinates of glued module
148  // - direction of simtrack at simhit, in coordindates of the single module
149  LocalVector localSimTrackDir = simHit.localDirection();
150  // - transform to global coordinates
151  GlobalVector globalSimTrackDir = recHit->det()->surface().toGlobal(localSimTrackDir);
152  // - transform to local coordinates of glued module
153  const GluedGeomDet* gluedDet = (const GluedGeomDet*)geometry->idToDet(DetId(stripSubDetId.glued()));
154  LocalVector gluedLocalSimTrackDir = gluedDet->surface().toLocal(globalSimTrackDir);
155 
156  // check whether next hit is partner
157  const FastSingleTrackerRecHit* partnerRecHit = nullptr;
158  // - there must be a next hit
159  if (simHitCounter + 1 < simHits->size()) {
160  const FastTrackerRecHitRef& nextRecHitRef = (*simHit2RecHitMap)[simHitCounter + 1];
161  const PSimHit& nextSimHit = (*simHits)[simHitCounter + 1];
162  // - partner hit must not be null
163  // - simHit and partner simHit must belong to same simTrack
164  // - partner hit must be on the module glued to the module of the hit
165  if ((!nextRecHitRef.isNull()) && simHit.trackId() == nextSimHit.trackId() &&
166  StripSubdetector(nextRecHitRef->geographicalId()).partnerDetId() == detid.rawId()) {
167  partnerRecHit = _cast2Single(nextRecHitRef.get());
168  skipNext = true;
169  }
170  }
171 
172  std::unique_ptr<FastTrackerRecHit> newRecHit(nullptr);
173 
174  // if partner found: create a matched hit
175  if (partnerRecHit) {
176  newRecHit = match(stripSubDetId.stereo() ? partnerRecHit : recHit,
177  stripSubDetId.stereo() ? recHit : partnerRecHit,
178  gluedDet,
179  gluedLocalSimTrackDir,
180  stripSubDetId.stereo());
181  }
182  // else: create projected hit
183  else {
184  newRecHit = projectOnly(recHit, geometry->idToDet(detid), gluedDet, gluedLocalSimTrackDir);
185  }
186  output_recHits->push_back(std::move(newRecHit));
187  (*output_simHit2RecHitMap)[simHitCounter] =
188  FastTrackerRecHitRef(output_recHits_refProd, output_recHits->size() - 1);
189  }
190  }
191  }
192 
193  iEvent.put(std::move(output_recHits));
194  iEvent.put(std::move(output_simHit2RecHitMap), "simHit2RecHitMap");
195 }

References _cast2Single(), relativeConstraints::geometry, edm::EventSetup::get(), get, edm::Ref< C, T, F >::get(), StripSubdetector::glued(), iEvent, edm::Ref< C, T, F >::isNull(), match(), eostools::move(), projectOnly(), DetId::rawId(), rpcPointValidation_cfi::recHit, rpcPointValidation_cfi::simHit, Reconstruction_BefMix_cff::simHit2RecHitMap, simHit2RecHitMapToken, FastTrackerRecHitCombiner_cfi::simHits, simHitsToken, StripSubdetector::stereo(), GeomDet::surface(), GloballyPositioned< T >::toLocal(), and PSimHit::trackId().

◆ project()

FastTrackerRecHitMatcher::StripPosition FastTrackerRecHitMatcher::project ( const GeomDetUnit det,
const GluedGeomDet glueddet,
const StripPosition strip,
const LocalVector trackdirection 
) const
private

Definition at line 297 of file FastTrackerRecHitMatcher.cc.

300  {
301  GlobalPoint globalpointini = (det->surface()).toGlobal(strip.first);
302  GlobalPoint globalpointend = (det->surface()).toGlobal(strip.second);
303 
304  // position of the initial and final point of the strip in glued local coordinates
305  LocalPoint positiononGluedini = (glueddet->surface()).toLocal(globalpointini);
306  LocalPoint positiononGluedend = (glueddet->surface()).toLocal(globalpointend);
307 
308  //correct the position with the track direction
309 
310  float scale = -positiononGluedini.z() / trackdirection.z();
311 
312  LocalPoint projpositiononGluedini = positiononGluedini + scale * trackdirection;
313  LocalPoint projpositiononGluedend = positiononGluedend + scale * trackdirection;
314 
315  return StripPosition(projpositiononGluedini, projpositiononGluedend);
316 }

References L1EGammaCrystalsEmulatorProducer_cfi::scale, digitizers_cfi::strip, GeomDet::surface(), toLocal(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by match().

◆ projectOnly()

std::unique_ptr< FastTrackerRecHit > FastTrackerRecHitMatcher::projectOnly ( const FastSingleTrackerRecHit originalRH,
const GeomDet monoDet,
const GluedGeomDet gluedDet,
LocalVector ldir 
) const
private

Definition at line 318 of file FastTrackerRecHitMatcher.cc.

321  {
322  LocalPoint position(originalRH->localPosition().x(), 0., 0.);
323  const BoundPlane& gluedPlane = gluedDet->surface();
324  const BoundPlane& hitPlane = monoDet->surface();
325 
326  double delta = gluedPlane.localZ(hitPlane.position());
327 
328  LocalPoint lhitPos = gluedPlane.toLocal(monoDet->surface().toGlobal(position));
329  LocalPoint projectedHitPos = lhitPos - ldir * delta / ldir.z();
330 
331  LocalVector hitXAxis = gluedPlane.toLocal(hitPlane.toGlobal(LocalVector(1, 0, 0)));
332  LocalError hitErr = originalRH->localPositionError();
333 
334  if (gluedPlane.normalVector().dot(hitPlane.normalVector()) < 0) {
335  // the two planes are inverted, and the correlation element must change sign
336  hitErr = LocalError(hitErr.xx(), -hitErr.xy(), hitErr.yy());
337  }
338  LocalError rotatedError = hitErr.rotate(hitXAxis.x(), hitXAxis.y());
339 
340  const GeomDetUnit* gluedMonoDet = gluedDet->monoDet();
341  const GeomDetUnit* gluedStereoDet = gluedDet->stereoDet();
342  int isMono = 0;
343  int isStereo = 0;
344 
345  if (monoDet->geographicalId() == gluedMonoDet->geographicalId())
346  isMono = 1;
347  if (monoDet->geographicalId() == gluedStereoDet->geographicalId())
348  isStereo = 1;
349  //Added by DAO to make sure y positions are zero and correct Mono or stereo Det is filled.
350 
351  if ((isMono && isStereo) || (!isMono && !isStereo))
352  throw cms::Exception("FastTrackerRecHitMatcher") << "Something wrong with DetIds.";
353  return std::make_unique<FastProjectedTrackerRecHit>(projectedHitPos, rotatedError, *gluedDet, *originalRH);
354 }

References dumpMFGeometry_cfg::delta, Exception, GeomDet::geographicalId(), BaseTrackerRecHit::localPosition(), BaseTrackerRecHit::localPositionError(), GluedGeomDet::monoDet(), position, LocalError::rotate(), GluedGeomDet::stereoDet(), GeomDet::surface(), Surface::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), LocalError::xy(), PV3DBase< T, PVType, FrameType >::y(), LocalError::yy(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by produce().

Member Data Documentation

◆ simHit2RecHitMapToken

edm::EDGetTokenT<FastTrackerRecHitRefCollection> FastTrackerRecHitMatcher::simHit2RecHitMapToken
private

Definition at line 74 of file FastTrackerRecHitMatcher.cc.

Referenced by FastTrackerRecHitMatcher(), and produce().

◆ simHitsToken

edm::EDGetTokenT<edm::PSimHitContainer> FastTrackerRecHitMatcher::simHitsToken
private

Definition at line 73 of file FastTrackerRecHitMatcher.cc.

Referenced by FastTrackerRecHitMatcher(), and produce().

Vector3DBase
Definition: Vector3DBase.h:8
edm::RefProd
Definition: EDProductfwd.h:25
change_name.diff
diff
Definition: change_name.py:13
Point2DBase
Definition: Point2DBase.h:9
FastTrackerRecHitMatcher::project
StripPosition project(const GeomDetUnit *det, const GluedGeomDet *glueddet, const StripPosition &strip, const LocalVector &trackdirection) const
Definition: FastTrackerRecHitMatcher.cc:297
GeomDet
Definition: GeomDet.h:27
L1EGammaCrystalsEmulatorProducer_cfi.scale
scale
Definition: L1EGammaCrystalsEmulatorProducer_cfi.py:10
FastTrackerRecHitMatcher::match
std::unique_ptr< FastTrackerRecHit > match(const FastSingleTrackerRecHit *monoRH, const FastSingleTrackerRecHit *stereoRH, const GluedGeomDet *gluedDet, LocalVector &trackdirection, bool stereLayerFirst) const
Definition: FastTrackerRecHitMatcher.cc:197
LocalError::xy
float xy() const
Definition: LocalError.h:23
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
FastTrackerRecHitMatcher::projectOnly
std::unique_ptr< FastTrackerRecHit > projectOnly(const FastSingleTrackerRecHit *originalRH, const GeomDet *monoDet, const GluedGeomDet *gluedDet, LocalVector &ldir) const
Definition: FastTrackerRecHitMatcher.cc:318
edm::Ref::isNull
bool isNull() const
Checks for null.
Definition: Ref.h:235
StripTopology::localPosition
virtual LocalPoint localPosition(float strip) const =0
digitizers_cfi.strip
strip
Definition: digitizers_cfi.py:19
geometry
Definition: geometry.py:1
StripSubdetector
Definition: StripSubdetector.h:12
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
edm::Ref::get
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:232
GluedGeomDet::monoDet
const GeomDetUnit * monoDet() const
Definition: GluedGeomDet.h:19
FastTrackerRecHitCombiner_cfi.simHits
simHits
Definition: FastTrackerRecHitCombiner_cfi.py:5
relativeConstraints.geometry
geometry
Definition: relativeConstraints.py:39
FastTrackerRecHitMatcher::StripPosition
std::pair< LocalPoint, LocalPoint > StripPosition
Definition: FastTrackerRecHitMatcher.cc:41
GeomDet::topology
virtual const Topology & topology() const
Definition: GeomDet.cc:67
FastTrackerRecHitMatcher::simHit2RecHitMapToken
edm::EDGetTokenT< FastTrackerRecHitRefCollection > simHit2RecHitMapToken
Definition: FastTrackerRecHitMatcher.cc:74
align::LocalPoint
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:30
PV3DBase::mag2
T mag2() const
Definition: PV3DBase.h:63
edm::Handle< edm::PSimHitContainer >
relativeConstraints.error
error
Definition: relativeConstraints.py:53
StripTopology::localPitch
virtual float localPitch(const LocalPoint &) const =0
TrackingRecHit::geographicalId
DetId geographicalId() const
Definition: TrackingRecHit.h:120
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
edm::Ref
Definition: AssociativeIterator.h:58
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
DetId
Definition: DetId.h:17
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
LocalError::xx
float xx() const
Definition: LocalError.h:22
rpcPointValidation_cfi.simHit
simHit
Definition: rpcPointValidation_cfi.py:24
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:79
MeasurementError
Definition: MeasurementError.h:8
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:16
Surface::toGlobal
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
FastTrackerRecHitRef
edm::Ref< FastTrackerRecHitCollection > FastTrackerRecHitRef
Definition: FastTrackerRecHitCollection.h:9
edm::ESHandle< TrackerGeometry >
Topology::measurementError
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
Reconstruction_BefMix_cff.simHit2RecHitMap
simHit2RecHitMap
Definition: Reconstruction_BefMix_cff.py:22
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Point3DBase< float, LocalTag >
GluedGeomDet
Definition: GluedGeomDet.h:7
geometryCSVtoXML.xy
xy
Definition: geometryCSVtoXML.py:19
BaseTrackerRecHit::localPositionError
LocalError localPositionError() const override
Definition: BaseTrackerRecHit.h:61
MeasurementPoint
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
Definition: MeasurementPoint.h:12
GeomDet::geographicalId
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:64
geometryCSVtoXML.yy
yy
Definition: geometryCSVtoXML.py:19
LocalError
Definition: LocalError.h:12
AlgebraicVector2
ROOT::Math::SVector< double, 2 > AlgebraicVector2
Definition: AlgebraicROOTObjects.h:11
PV2DBase::x
T x() const
Definition: PV2DBase.h:43
LocalError::rotate
LocalError rotate(float x, float y) const
Return a new LocalError, rotated by an angle defined by the direction (x,y)
Definition: LocalError.h:37
dumpMFGeometry_cfg.delta
delta
Definition: dumpMFGeometry_cfg.py:25
FastSingleTrackerRecHit
Definition: FastSingleTrackerRecHit.h:7
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
iEvent
int iEvent
Definition: GenABIO.cc:224
alignmentValidation.c1
c1
do drawing
Definition: alignmentValidation.py:1025
toLocal
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
Definition: ConversionProducer.cc:202
Topology::measurementPosition
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
AlgebraicMatrix22
ROOT::Math::SMatrix< double, 2, 2, ROOT::Math::MatRepStd< double, 2, 2 > > AlgebraicMatrix22
Definition: AlgebraicROOTObjects.h:34
get
#define get
FastTrackerRecHitMatcher::simHitsToken
edm::EDGetTokenT< edm::PSimHitContainer > simHitsToken
Definition: FastTrackerRecHitMatcher.cc:73
FastTrackerRecHitMatcher::_cast2Single
const FastSingleTrackerRecHit * _cast2Single(const FastTrackerRecHit *recHit) const
Definition: FastTrackerRecHitMatcher.cc:63
GluedGeomDet::stereoDet
const GeomDetUnit * stereoDet() const
Definition: GluedGeomDet.h:20
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
BaseTrackerRecHit::localPosition
LocalPoint localPosition() const override
Definition: BaseTrackerRecHit.h:56
GloballyPositioned::toLocal
LocalPoint toLocal(const GlobalPoint &gp) const
Definition: GloballyPositioned.h:98
Exception
Definition: hltDiff.cc:245
BoundPlane
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
PSimHit::trackId
unsigned int trackId() const
Definition: PSimHit.h:106
PSimHit
Definition: PSimHit.h:15
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:56
edm::ConfigurationDescriptions::addDefault
void addDefault(ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:99
StripTopology
Definition: StripTopology.h:11
LocalError::yy
float yy() const
Definition: LocalError.h:24
edm::InputTag
Definition: InputTag.h:15
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
geometryCSVtoXML.xx
xx
Definition: geometryCSVtoXML.py:19
edm::OwnVector
Definition: OwnVector.h:24