CMS 3D CMS Logo

FastTrackerRecHitMatcher.cc
Go to the documentation of this file.
1 // system include files
2 #include <cfloat>
3 #include <memory>
4 
5 // framework stuff
12 
13 // fast tracker rechits
18 
19 // geometry stuff
26 
27 // sim stuff
30 
32 public:
34  ~FastTrackerRecHitMatcher() override { ; }
35  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
36 
37 private:
38  void produce(edm::Event&, const edm::EventSetup&) override;
39 
40  // ---------- typedefs -----------------------------
41  typedef std::pair<LocalPoint, LocalPoint> StripPosition;
42 
43  // ----------internal functions ---------------------------
44 
45  // create projected hit
46  std::unique_ptr<FastTrackerRecHit> projectOnly(const FastSingleTrackerRecHit* originalRH,
47  const GeomDet* monoDet,
48  const GluedGeomDet* gluedDet,
49  LocalVector& ldir) const;
50 
51  // create matched hit
52  std::unique_ptr<FastTrackerRecHit> match(const FastSingleTrackerRecHit* monoRH,
53  const FastSingleTrackerRecHit* stereoRH,
54  const GluedGeomDet* gluedDet,
55  LocalVector& trackdirection,
56  bool stereLayerFirst) const;
57 
59  const GluedGeomDet* glueddet,
60  const StripPosition& strip,
61  const LocalVector& trackdirection) const;
62 
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  }
71 
72  // ----------member data ---------------------------
75 };
76 
78 
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 }
87 
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 }
196 
197 std::unique_ptr<FastTrackerRecHit> FastTrackerRecHitMatcher::match(const FastSingleTrackerRecHit* monoRH,
198  const FastSingleTrackerRecHit* stereoRH,
199  const GluedGeomDet* gluedDet,
200  LocalVector& trackdirection,
201  bool stereoHitFirst) const {
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 }
296 
298  const GluedGeomDet* glueddet,
299  const StripPosition& strip,
300  const LocalVector& trackdirection) const {
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 }
317 
318 std::unique_ptr<FastTrackerRecHit> FastTrackerRecHitMatcher::projectOnly(const FastSingleTrackerRecHit* originalRH,
319  const GeomDet* monoDet,
320  const GluedGeomDet* gluedDet,
321  LocalVector& ldir) const {
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 }
355 
356 // ------------ method fills 'descriptions' with the allowed parameters for the module ------------
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 }
364 
365 //define this as a plug-in
Vector3DBase< float, LocalTag >
edm::RefProd
Definition: EDProductfwd.h:25
change_name.diff
diff
Definition: change_name.py:13
Point2DBase
Definition: Point2DBase.h:9
StripGeomDetUnit.h
FastTrackerRecHitMatcher::project
StripPosition project(const GeomDetUnit *det, const GluedGeomDet *glueddet, const StripPosition &strip, const LocalVector &trackdirection) const
Definition: FastTrackerRecHitMatcher.cc:297
TrackerGeometry.h
GeomDet
Definition: GeomDet.h:27
L1EGammaCrystalsEmulatorProducer_cfi.scale
scale
Definition: L1EGammaCrystalsEmulatorProducer_cfi.py:10
ESHandle.h
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::FastTrackerRecHitMatcher
FastTrackerRecHitMatcher(const edm::ParameterSet &)
Definition: FastTrackerRecHitMatcher.cc:77
FastTrackerRecHitMatcher::projectOnly
std::unique_ptr< FastTrackerRecHit > projectOnly(const FastSingleTrackerRecHit *originalRH, const GeomDet *monoDet, const GluedGeomDet *gluedDet, LocalVector &ldir) const
Definition: FastTrackerRecHitMatcher.cc:318
edm::EDGetTokenT< edm::PSimHitContainer >
edm::Ref::isNull
bool isNull() const
Checks for null.
Definition: Ref.h:235
StripTopology::localPosition
virtual LocalPoint localPosition(float strip) const =0
StripSubdetector::glued
unsigned int glued() const
glued
Definition: StripSubdetector.h:31
digitizers_cfi.strip
strip
Definition: digitizers_cfi.py:19
StripSubdetector::stereo
unsigned int stereo() const
stereo
Definition: StripSubdetector.h:46
geometry
Definition: geometry.py:1
PSimHitContainer.h
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
EDProducer.h
FastTrackerRecHitCombiner_cfi.simHits
simHits
Definition: FastTrackerRecHitCombiner_cfi.py:5
FastProjectedTrackerRecHit.h
GluedGeomDet.h
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
FastTrackerRecHit
Definition: FastTrackerRecHit.h:40
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
MakerMacros.h
PSimHit.h
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
FastTrackerRecHitMatcher::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: FastTrackerRecHitMatcher.cc:88
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
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:78
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
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
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
TrackerDigiGeometryRecord.h
edm::ParameterSet
Definition: ParameterSet.h:47
Event.h
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
edm::stream::EDProducer
Definition: EDProducer.h:36
toLocal
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
Definition: ConversionProducer.cc:202
edm::EventSetup
Definition: EventSetup.h:58
FastTrackerRecHitCollection.h
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
FastTrackerRecHitMatcher::~FastTrackerRecHitMatcher
~FastTrackerRecHitMatcher() override
Definition: FastTrackerRecHitMatcher.cc:34
GluedGeomDet::stereoDet
const GeomDetUnit * stereoDet() const
Definition: GluedGeomDet.h:20
GeomDet.h
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
FastTrackerRecHitMatcher::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: FastTrackerRecHitMatcher.cc:357
Frameworkfwd.h
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
FastMatchedTrackerRecHit.h
FastTrackerRecHit.h
FastTrackerRecHitMatcher
Definition: FastTrackerRecHitMatcher.cc:31
ParameterSet.h
PSimHit
Definition: PSimHit.h:15
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:56
edm::Event
Definition: Event.h:73
edm::ConfigurationDescriptions::addDefault
void addDefault(ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:99
StripTopology
Definition: StripTopology.h:11
StripSubdetector.h
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