CMS 3D CMS Logo

SeedingOTEDProducer.cc
Go to the documentation of this file.
1 
5 
13 
19 
21 
23 
27 
31 
34 
36 
38 public:
39  explicit SeedingOTEDProducer(const edm::ParameterSet&);
40  ~SeedingOTEDProducer() override;
41  void produce(edm::Event&, const edm::EventSetup&) override;
42 
44 
46  unsigned int checkLayer(unsigned int iidd);
47  std::vector<const VectorHit*> collectVHsOnLayer(const edmNew::DetSetVector<VectorHit>&, unsigned int);
48  void printVHsOnLayer(const edmNew::DetSetVector<VectorHit>&, unsigned int);
51  std::pair<bool, TrajectoryStateOnSurface> propagateAndUpdate(const TrajectoryStateOnSurface initialTSOS,
52  const Propagator&,
53  const TrackingRecHit& hit) const;
54  float computeGlobalThetaError(const VectorHit* vh, const double sigmaZ_beamSpot) const;
55  float computeInverseMomentumError(const VectorHit* vh,
56  const float globalTheta,
57  const double sigmaZ_beamSpot,
58  const double transverseMomentum) const;
59 
61  const edm::OwnVector<TrackingRecHit>& container,
62  const DetId& id,
63  const Propagator& prop) const;
64 
65  struct isInvalid {
66  bool operator()(const TrajectoryMeasurement& measurement) {
67  return ((measurement.recHit() == nullptr) || !(measurement.recHit()->isValid()) ||
68  !((measurement).updatedState().isValid()));
69  }
70  };
71 
72 private:
76  std::unique_ptr<LayerMeasurements> layerMeasurements_;
85 
93 };
94 
96  : tkMeasEventToken_(consumes<MeasurementTrackerEvent>(conf.getParameter<edm::InputTag>("trackerEvent"))),
97  topoToken_(esConsumes()),
98  propagatorToken_(esConsumes(edm::ESInputTag("", "PropagatorWithMaterial"))),
99  magFieldToken_(esConsumes()),
100  updatorToken_(esConsumes(edm::ESInputTag("", "KFUpdator"))),
101  measurementTrackerToken_(esConsumes()),
102  estToken_(esConsumes(edm::ESInputTag("", "Chi2"))) {
103  vhProducerToken_ = consumes<VectorHitCollection>(edm::InputTag(conf.getParameter<edm::InputTag>("src")));
104  beamSpotToken_ = consumes<reco::BeamSpot>(conf.getParameter<edm::InputTag>("beamSpotLabel"));
105  updatorName_ = conf.getParameter<std::string>("updator");
106  putToken_ = produces<TrajectorySeedCollection>();
107 }
108 
110 
113  desc.add<edm::InputTag>("src", edm::InputTag("siPhase2VectorHits", "accepted"));
114  desc.add<edm::InputTag>("trackerEvent", edm::InputTag("MeasurementTrackerEvent"));
115  desc.add<edm::InputTag>("beamSpotLabel", edm::InputTag("offlineBeamSpot"));
116  desc.add<std::string>("updator", std::string("KFUpdator"));
117  descriptions.add("SeedingOTEDProducer", desc);
118 }
119 
121  tkTopo_ = &es.getData(topoToken_);
122 
124  measurementTracker_ = measurementTrackerHandle.product();
125 
126  auto const& measurementTrackerEvent = event.get(tkMeasEventToken_);
127 
128  layerMeasurements_ = std::make_unique<LayerMeasurements>(*measurementTrackerHandle, measurementTrackerEvent);
129 
131 
133 
135 
137 
138  beamSpot_ = &event.get(beamSpotToken_);
139 
140  // Get the vector hits
141  auto vhs = event.getHandle(vhProducerToken_);
142 
143  event.emplace(putToken_, run(vhs));
144 }
145 
148  //check if all the first three layers have VHs
149  std::vector<const VectorHit*> vhSeedsL1 = collectVHsOnLayer(*vHs.product(), 1);
150  std::vector<const VectorHit*> vhSeedsL2 = collectVHsOnLayer(*vHs.product(), 2);
151  std::vector<const VectorHit*> vhSeedsL3 = collectVHsOnLayer(*vHs.product(), 3);
152  if (vhSeedsL1.empty() || vhSeedsL2.empty() || vhSeedsL3.empty()) {
153  return result;
154  }
155 
156  //seeds are built in the L3 of the OT
157  const BarrelDetLayer* barrelOTLayer2 = measurementTracker_->geometricSearchTracker()->tobLayers().at(1);
158 
159  //the search propag directiondepend on the sign of signZ*signPz, while the building is always the contrary
160  Propagator* searchingPropagator = &*propagator_->clone();
161  Propagator* buildingPropagator = &*propagator_->clone();
162  buildingPropagator->setPropagationDirection(alongMomentum);
163 
164  for (const auto& hitL3 : vhSeedsL3) {
165  //building a tsos out of a VectorHit
166  const TrajectoryStateOnSurface initialTSOS = buildInitialTSOS(hitL3);
167  float signZ = copysign(1.0, initialTSOS.globalPosition().z());
168  float signPz = copysign(1.0, initialTSOS.globalMomentum().z());
169 
170  //set the direction of the propagator
171  if (signZ * signPz > 0.0)
172  searchingPropagator->setPropagationDirection(oppositeToMomentum);
173  else
174  searchingPropagator->setPropagationDirection(alongMomentum);
175 
176  //find vHits in layer 2
177  std::vector<TrajectoryMeasurement> measurementsL2 =
178  layerMeasurements_->measurements(*barrelOTLayer2, initialTSOS, *searchingPropagator, *estimator_);
179 
180  std::vector<TrajectoryMeasurement>::iterator measurementsL2end =
181  std::remove_if(measurementsL2.begin(), measurementsL2.end(), isInvalid());
182  measurementsL2.erase(measurementsL2end, measurementsL2.end());
183 
184  if (!measurementsL2.empty()) {
185  //not sure if building it everytime takes time/memory
186  const DetLayer* barrelOTLayer1 = measurementTracker_->geometricSearchTracker()->tobLayers().at(0);
187 
188  for (const auto& mL2 : measurementsL2) {
189  const TrackingRecHit* hitL2 = mL2.recHit().get();
190 
191  //propagate to the L2 and update the TSOS
192  std::pair<bool, TrajectoryStateOnSurface> updatedTSOS =
193  propagateAndUpdate(initialTSOS, *searchingPropagator, *hitL2);
194  if (!updatedTSOS.first)
195  continue;
196 
197  //searching possible VHs in L1
198  std::vector<TrajectoryMeasurement> measurementsL1 =
199  layerMeasurements_->measurements(*barrelOTLayer1, updatedTSOS.second, *searchingPropagator, *estimator_);
200  std::vector<TrajectoryMeasurement>::iterator measurementsL1end =
201  std::remove_if(measurementsL1.begin(), measurementsL1.end(), isInvalid());
202  measurementsL1.erase(measurementsL1end, measurementsL1.end());
203 
204  if (!measurementsL1.empty()) {
205  for (const auto& mL1 : measurementsL1) {
206  const TrackingRecHit* hitL1 = mL1.recHit().get();
207 
208  //propagate to the L1 and update the TSOS
209  std::pair<bool, TrajectoryStateOnSurface> updatedTSOSL1 =
210  propagateAndUpdate(updatedTSOS.second, *searchingPropagator, *hitL1);
211  if (!updatedTSOSL1.first)
212  continue;
213 
214  //building trajectory inside-out
215  if (searchingPropagator->propagationDirection() == alongMomentum) {
216  buildingPropagator->setPropagationDirection(oppositeToMomentum);
217  } else {
218  buildingPropagator->setPropagationDirection(alongMomentum);
219  }
220 
221  updatedTSOSL1.second.rescaleError(100);
222 
223  TrajectoryStateOnSurface updatedTSOSL1_final = updator_->update(updatedTSOSL1.second, *hitL1);
224  if UNLIKELY (!updatedTSOSL1_final.isValid())
225  continue;
226  std::pair<bool, TrajectoryStateOnSurface> updatedTSOSL2_final =
227  propagateAndUpdate(updatedTSOSL1_final, *buildingPropagator, *hitL2);
228  if (!updatedTSOSL2_final.first)
229  continue;
230  std::pair<bool, TrajectoryStateOnSurface> updatedTSOSL3_final =
231  propagateAndUpdate(updatedTSOSL2_final.second, *buildingPropagator, *hitL3);
232  if (!updatedTSOSL3_final.first)
233  continue;
234 
236  container.push_back(hitL1->clone());
237  container.push_back(hitL2->clone());
238  container.push_back(hitL3->clone());
239 
240  TrajectorySeed ts =
241  createSeed(updatedTSOSL3_final.second, container, hitL3->geographicalId(), *buildingPropagator);
242  result.push_back(ts);
243  }
244  }
245  }
246  }
247  }
248  result.shrink_to_fit();
249  return result;
250 }
251 
252 unsigned int SeedingOTEDProducer::checkLayer(unsigned int iidd) {
254  unsigned int subid = strip.subdetId();
255  if (subid == StripSubdetector::TIB || subid == StripSubdetector::TOB) {
256  return tkTopo_->layer(iidd);
257  }
258  return 0;
259 }
260 
262  unsigned int layerNumber) {
263  std::vector<const VectorHit*> vHsOnLayer;
264  if (!input.empty()) {
265  for (const auto& DSViter : input) {
266  if (checkLayer(DSViter.id()) == layerNumber) {
267  for (const auto& vh : DSViter) {
268  vHsOnLayer.push_back(&vh);
269  }
270  }
271  }
272  }
273 
274  return vHsOnLayer;
275 }
276 
278  if (!input.empty()) {
279  for (const auto& DSViter : input) {
280  for (const auto& vh : DSViter) {
281  if (checkLayer(DSViter.id()) == layerNumber)
282  LogTrace("SeedingOTEDProducer") << " VH in layer " << layerNumber << " >> " << vh;
283  }
284  }
285  } else {
286  LogTrace("SeedingOTEDProducer") << " No VHs in layer " << layerNumber << ".";
287  }
288 }
289 
291  // having fun with theta
292  Global3DVector gv(vHit->globalPosition().x(), vHit->globalPosition().y(), vHit->globalPosition().z());
293  float theta = gv.theta();
294  // gv transform to local (lv)
295  const Local3DVector lv(vHit->det()->surface().toLocal(gv));
296 
297  //FIXME::charge is fine 1 every two times!!
298  GlobalPoint center(0.0, 0.0, 0.0);
299  int charge = 1;
300  // momentum is a signed quantity in this case
301  float mom = vHit->momentum(magField_->inTesla(center).z());
302  float xPos = vHit->localPosition().x();
303  float yPos = vHit->localPosition().y();
304  float dx = vHit->localDirection().x();
305  // for dy use second component of the lv renormalized to the z component
306  float dy = lv.y() / lv.z();
307 
308  // Pz and Dz should have the same sign
309  float signPz = copysign(1.0, vHit->globalPosition().z());
310 
311  LocalTrajectoryParameters ltpar2(charge / mom, dx, dy, xPos, yPos, signPz);
313  // set the error on 1/p
314  mat[0][0] = pow(computeInverseMomentumError(
315  vHit, theta, beamSpot_->sigmaZ(), vHit->transverseMomentum(magField_->inTesla(center).z())),
316  2);
317 
318  //building tsos
319  LocalTrajectoryError lterr(mat);
320  const TrajectoryStateOnSurface tsos(ltpar2, lterr, vHit->det()->surface(), magField_);
321 
322  return tsos;
323 }
324 
327  for (int i = 1; i < 5; i++) {
328  for (int j = 1; j < 5; j++) {
329  result[i][j] = mat44[i - 1][j - 1];
330  }
331  }
332  return result;
333 }
334 
335 std::pair<bool, TrajectoryStateOnSurface> SeedingOTEDProducer::propagateAndUpdate(
336  const TrajectoryStateOnSurface initialTSOS, const Propagator& prop, const TrackingRecHit& hit) const {
337  TrajectoryStateOnSurface propTSOS = prop.propagate(initialTSOS, hit.det()->surface());
338  if UNLIKELY (!propTSOS.isValid())
339  return std::make_pair(false, propTSOS);
340  TrajectoryStateOnSurface updatedTSOS = updator_->update(propTSOS, hit);
341  if UNLIKELY (!updatedTSOS.isValid())
342  return std::make_pair(false, updatedTSOS);
343  return std::make_pair(true, updatedTSOS);
344 }
345 
346 float SeedingOTEDProducer::computeGlobalThetaError(const VectorHit* vh, const double sigmaZ_beamSpot) const {
347  double derivative = vh->globalPosition().perp() / vh->globalPosition().mag2();
348  double derivative2 = pow(derivative, 2);
349  return pow(derivative2 * vh->lowerGlobalPosErr().czz() + derivative2 * pow(sigmaZ_beamSpot, 2), 0.5);
350 }
351 
353  const float globalTheta,
354  const double sigmaZ_beamSpot,
355  const double transverseMomentum) const {
356  //for pT > 2GeV, 1/pT has sigma = 1/sqrt(12)
357  float varianceInverseTransvMomentum = 1. / 12;
358  float derivativeTheta2 = pow(cos(globalTheta) / transverseMomentum, 2);
359  float derivativeInverseTransvMomentum2 = pow(sin(globalTheta), 2);
360  float thetaError = computeGlobalThetaError(vh, sigmaZ_beamSpot);
361  return pow(derivativeTheta2 * pow(thetaError, 2) + derivativeInverseTransvMomentum2 * varianceInverseTransvMomentum,
362  0.5);
363 }
364 
366  const edm::OwnVector<TrackingRecHit>& container,
367  const DetId& id,
368  const Propagator& prop) const {
370  return TrajectorySeed(seedTSOS, container, prop.propagationDirection());
371 }
Vector3DBase
Definition: Vector3DBase.h:8
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
Chi2MeasurementEstimator.h
MeasurementEstimator
Definition: MeasurementEstimator.h:19
SeedingOTEDProducer::propagator_
const Propagator * propagator_
Definition: SeedingOTEDProducer.cc:78
MagneticField::inTesla
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
SeedingOTEDProducer::run
TrajectorySeedCollection run(edm::Handle< VectorHitCollection >)
Definition: SeedingOTEDProducer.cc:146
SeedingOTEDProducer::topoToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
Definition: SeedingOTEDProducer.cc:86
mps_fire.i
i
Definition: mps_fire.py:428
MeasurementTrackerEvent.h
input
static const std::string input
Definition: EdmProvDump.cc:48
MessageLogger.h
GeometricSearchTracker::tobLayers
std::vector< BarrelDetLayer const * > const & tobLayers() const
Definition: GeometricSearchTracker.h:39
TrajectorySeedCollection
std::vector< TrajectorySeed > TrajectorySeedCollection
Definition: TrajectorySeedCollection.h:6
edm::Handle::product
T const * product() const
Definition: Handle.h:70
SeedingOTEDProducer::magFieldToken_
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_
Definition: SeedingOTEDProducer.cc:88
DetLayer
Definition: DetLayer.h:21
ESInputTag
SeedingOTEDProducer::printVHsOnLayer
void printVHsOnLayer(const edmNew::DetSetVector< VectorHit > &, unsigned int)
Definition: SeedingOTEDProducer.cc:277
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
edm::EDGetTokenT
Definition: EDGetToken.h:33
SeedingOTEDProducer::magField_
const MagneticField * magField_
Definition: SeedingOTEDProducer.cc:79
VectorHit::localDirection
virtual LocalVector localDirection() const
Definition: VectorHit.h:75
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::EDPutTokenT< TrajectorySeedCollection >
TrackerTopology
Definition: TrackerTopology.h:16
digitizers_cfi.strip
strip
Definition: digitizers_cfi.py:19
trajectoryStateTransform::persistentState
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
Definition: TrajectoryStateTransform.cc:14
VectorHit::localPosition
LocalPoint localPosition() const override
Definition: VectorHit.h:74
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
TrackingRecHit::det
const GeomDet * det() const
Definition: TrackingRecHit.h:122
StripSubdetector
Definition: StripSubdetector.h:12
SeedingOTEDProducer::updator_
const TrajectoryStateUpdator * updator_
Definition: SeedingOTEDProducer.cc:80
SeedingOTEDProducer::tkMeasEventToken_
const edm::EDGetTokenT< MeasurementTrackerEvent > tkMeasEventToken_
Definition: SeedingOTEDProducer.cc:81
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:85964
SeedingOTEDProducer::isInvalid::operator()
bool operator()(const TrajectoryMeasurement &measurement)
Definition: SeedingOTEDProducer.cc:66
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
MeasurementTracker::geometricSearchTracker
const GeometricSearchTracker * geometricSearchTracker() const
Definition: MeasurementTracker.h:38
oppositeToMomentum
Definition: PropagationDirection.h:4
EDProducer.h
SeedingOTEDProducer::beamSpot_
const reco::BeamSpot * beamSpot_
Definition: SeedingOTEDProducer.cc:83
funct::derivative
Derivative< X, A >::type derivative(const A &_)
Definition: Derivative.h:18
TrackerTopology::layer
unsigned int layer(const DetId &id) const
Definition: TrackerTopology.cc:47
SeedingOTEDProducer::isInvalid
Definition: SeedingOTEDProducer.cc:65
CkfComponentsRecord.h
SeedingOTEDProducer::updatorToken_
edm::ESGetToken< TrajectoryStateUpdator, TrackingComponentsRecord > updatorToken_
Definition: SeedingOTEDProducer.cc:89
SeedingOTEDProducer::tkTopo_
const TrackerTopology * tkTopo_
Definition: SeedingOTEDProducer.cc:74
PV3DBase::mag2
T mag2() const
Definition: PV3DBase.h:63
edm::Handle
Definition: AssociativeIterator.h:50
ESGetToken.h
SeedingOTEDProducer::vhProducerToken_
edm::EDGetTokenT< VectorHitCollection > vhProducerToken_
Definition: SeedingOTEDProducer.cc:73
TrajectoryStateUpdator.h
TrajectoryMeasurementGroup.h
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
LocalTrajectoryParameters
Definition: LocalTrajectoryParameters.h:25
SeedingOTEDProducer::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: SeedingOTEDProducer.cc:120
Propagator
Definition: Propagator.h:44
DetId
Definition: DetId.h:17
MeasurementTracker
Definition: MeasurementTracker.h:21
reco::BeamSpot::sigmaZ
double sigmaZ() const
sigma z
Definition: BeamSpot.h:76
UNLIKELY
#define UNLIKELY(x)
Definition: Likely.h:21
LocalTrajectoryParameters.h
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
MakerMacros.h
TrackerTopology.h
VectorHit::momentum
float momentum(float magField) const
Definition: VectorHit.cc:161
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
TrackerTopologyRcd.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
SeedingOTEDProducer::buildInitialTSOS
const TrajectoryStateOnSurface buildInitialTSOS(const VectorHit *) const
Definition: SeedingOTEDProducer.cc:290
BeamSpot.h
SeedingOTEDProducer::propagatorToken_
edm::ESGetToken< Propagator, TrackingComponentsRecord > propagatorToken_
Definition: SeedingOTEDProducer.cc:87
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
SeedingOTEDProducer::createSeed
TrajectorySeed createSeed(const TrajectoryStateOnSurface &tsos, const edm::OwnVector< TrackingRecHit > &container, const DetId &id, const Propagator &prop) const
Definition: SeedingOTEDProducer.cc:365
SeedingOTEDProducer::checkLayer
unsigned int checkLayer(unsigned int iidd)
Definition: SeedingOTEDProducer.cc:252
LayerMeasurements.h
Propagator::propagationDirection
virtual PropagationDirection propagationDirection() const final
Definition: Propagator.h:139
reco::BeamSpot
Definition: BeamSpot.h:21
edm::ESHandle< MeasurementTracker >
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
Point3DBase< float, GlobalTag >
Propagator::setPropagationDirection
virtual void setPropagationDirection(PropagationDirection dir)
Definition: Propagator.h:130
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SeedingOTEDProducer::SeedingOTEDProducer
SeedingOTEDProducer(const edm::ParameterSet &)
Definition: SeedingOTEDProducer.cc:95
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
LocalTrajectoryError
Definition: LocalTrajectoryError.h:20
TrajectoryStateUpdator::update
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
SeedingOTEDProducer::propagateAndUpdate
std::pair< bool, TrajectoryStateOnSurface > propagateAndUpdate(const TrajectoryStateOnSurface initialTSOS, const Propagator &, const TrackingRecHit &hit) const
Definition: SeedingOTEDProducer.cc:335
MeasurementTrackerEvent
Definition: MeasurementTrackerEvent.h:16
edm::ParameterSet
Definition: ParameterSet.h:47
SeedingOTEDProducer::estToken_
edm::ESGetToken< Chi2MeasurementEstimatorBase, TrackingComponentsRecord > estToken_
Definition: SeedingOTEDProducer.cc:91
Event.h
VectorHit::covMatrix
const AlgebraicSymMatrix44 & covMatrix() const
Definition: VectorHit.cc:171
BaseTrackerRecHit::globalPosition
GlobalPoint globalPosition() const final
Definition: BaseTrackerRecHit.h:85
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
VectorHit::transverseMomentum
float transverseMomentum(float magField) const
Definition: VectorHit.cc:156
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:148
edm::stream::EDProducer
Definition: EDProducer.h:38
PVValHelper::dy
Definition: PVValidationHelpers.h:49
MagneticField.h
edm::EventSetup
Definition: EventSetup.h:57
SeedingOTEDProducer::measurementTracker_
const MeasurementTracker * measurementTracker_
Definition: SeedingOTEDProducer.cc:75
Propagator::propagate
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
TrackingRecHit::clone
virtual TrackingRecHit * clone() const =0
TrajectorySeedCollection.h
SeedingOTEDProducer
Definition: SeedingOTEDProducer.cc:37
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd >
BarrelDetLayer
Definition: BarrelDetLayer.h:22
SeedingOTEDProducer::~SeedingOTEDProducer
~SeedingOTEDProducer() override
Definition: SeedingOTEDProducer.cc:109
SeedingOTEDProducer::computeGlobalThetaError
float computeGlobalThetaError(const VectorHit *vh, const double sigmaZ_beamSpot) const
Definition: SeedingOTEDProducer.cc:346
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:120
AlgebraicSymMatrix44
ROOT::Math::SMatrix< double, 4, 4, ROOT::Math::MatRepSym< double, 4 > > AlgebraicSymMatrix44
Definition: AlgebraicROOTObjects.h:22
SeedingOTEDProducer::estimator_
const MeasurementEstimator * estimator_
Definition: SeedingOTEDProducer.cc:77
TrackingRecHit
Definition: TrackingRecHit.h:21
TrajectoryMeasurement::recHit
ConstRecHitPointer const & recHit() const
Definition: TrajectoryMeasurement.h:190
VectorHit::lowerGlobalPosErr
GlobalError lowerGlobalPosErr() const
Definition: VectorHit.cc:123
VectorHit
Definition: VectorHit.h:28
TrajectoryStateOnSurface::globalMomentum
GlobalVector globalMomentum() const
Definition: TrajectoryStateOnSurface.h:66
edmNew::DetSetVector
Definition: DetSetNew.h:13
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
SeedingOTEDProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &)
Definition: SeedingOTEDProducer.cc:111
Propagator::clone
virtual Propagator * clone() const =0
Frameworkfwd.h
SeedingOTEDProducer::computeInverseMomentumError
float computeInverseMomentumError(const VectorHit *vh, const float globalTheta, const double sigmaZ_beamSpot, const double transverseMomentum) const
Definition: SeedingOTEDProducer.cc:352
GloballyPositioned::toLocal
LocalPoint toLocal(const GlobalPoint &gp) const
Definition: GloballyPositioned.h:98
SeedingOTEDProducer::collectVHsOnLayer
std::vector< const VectorHit * > collectVHsOnLayer(const edmNew::DetSetVector< VectorHit > &, unsigned int)
Definition: SeedingOTEDProducer.cc:261
SeedingOTEDProducer::updatorName_
std::string updatorName_
Definition: SeedingOTEDProducer.cc:84
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
TrajectorySeed
Definition: TrajectorySeed.h:18
EventSetup.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
TrajectoryStateTransform.h
SeedingOTEDProducer::measurementTrackerToken_
edm::ESGetToken< MeasurementTracker, CkfComponentsRecord > measurementTrackerToken_
Definition: SeedingOTEDProducer.cc:90
SeedingOTEDProducer::layerMeasurements_
std::unique_ptr< LayerMeasurements > layerMeasurements_
Definition: SeedingOTEDProducer.cc:76
edm::OwnVector::push_back
void push_back(D *&d)
Definition: OwnVector.h:326
GlobalErrorBase::czz
T czz() const
Definition: GlobalErrorBase.h:107
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
HLT_FULL_cff.measurementTrackerEvent
measurementTrackerEvent
Definition: HLT_FULL_cff.py:15231
mps_fire.result
result
Definition: mps_fire.py:311
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
TrajectoryStateUpdator
Definition: TrajectoryStateUpdator.h:14
PTrajectoryStateOnDet
Definition: PTrajectoryStateOnDet.h:10
ParameterSet.h
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
MagneticField
Definition: MagneticField.h:19
AlgebraicSymMatrix55
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
Definition: AlgebraicROOTObjects.h:23
TrajectoryMeasurement
Definition: TrajectoryMeasurement.h:25
SeedingOTEDProducer::putToken_
edm::EDPutTokenT< TrajectorySeedCollection > putToken_
Definition: SeedingOTEDProducer.cc:92
SeedingOTEDProducer::assign44To55
AlgebraicSymMatrix55 assign44To55(const AlgebraicSymMatrix44 &) const
Definition: SeedingOTEDProducer.cc:325
StripSubdetector.h
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
edm::InputTag
Definition: InputTag.h:15
PVValHelper::dx
Definition: PVValidationHelpers.h:48
alongMomentum
Definition: PropagationDirection.h:4
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
hit
Definition: SiStripHitEffFromCalibTree.cc:88
SeedingOTEDProducer::beamSpotToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: SeedingOTEDProducer.cc:82
edm::OwnVector< TrackingRecHit >
MeasurementTracker.h
VectorHit.h