|
|
Go to the documentation of this file.
17 :
ptMin(iConfig.getParameter<double>(
"ptMin")), thePropagator(prop), theTrackerGeom(
geom) {
19 initialTSOS_ = std::make_shared<TrajectoryStateOnSurface>();
20 updatedTSOS_ = std::make_shared<TrajectoryStateOnSurface>();
21 freeTS_ = std::make_shared<FreeTrajectoryState>();
53 const TSOS& inner_TSOS,
109 double p_max =
initialTSOS_->globalParameters().momentum().mag();
113 globalRotation.Place_at(
rot, 0, 0);
114 globalRotation.Place_at(
rot, 3, 3);
115 AlgebraicSymMatrix66 primaryErrorInNewFrame = ROOT::Math::Similarity(globalRotation, primaryError);
118 double p_perp_max = 2;
120 secondaryErrorInNewFrame(0, 0) = primaryErrorInNewFrame(0, 0) + helix.
vertexError() * p_perp_max / p_max;
121 secondaryErrorInNewFrame(1, 1) = primaryErrorInNewFrame(1, 1) + helix.
vertexError() * p_perp_max / p_max;
123 secondaryErrorInNewFrame(3, 3) = p_perp_max * p_perp_max;
124 secondaryErrorInNewFrame(4, 4) = p_perp_max * p_perp_max;
125 secondaryErrorInNewFrame(5, 5) = p_max * p_max;
127 AlgebraicSymMatrix66 secondaryError = ROOT::Math::SimilarityT(globalRotation, secondaryErrorInNewFrame);
139 LogDebug(
"NuclearSeedGenerator") <<
"Seed ** initial state " <<
freeTS_->cartesianError().matrix();
141 for (
unsigned int iHit = 0; iHit <
theHits.size(); iHit++) {
148 if (!
state.isValid())
155 LogDebug(
"NuclearSeedGenerator") <<
"Seed ** updated state " <<
updatedTSOS_->cartesianError().matrix();
164 for (ConstRecHitContainer::const_iterator it =
theHits.begin(); it !=
theHits.end(); it++) {
165 _hits.
push_back(it->get()->hit()->clone());
const TrackerGeomDet * idToDet(DetId) const override
void setMeasurements(const TSOS &tsosAtInteractionPoint, ConstRecHitPointer ihit, ConstRecHitPointer ohit)
Fill all data members from 2 TM's where the first one is supposed to be at the interaction point.
TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const override
ConstRecHitContainer theHits
ConstRecHitPointer outerHit_
AlgebraicMatrix33 rotationMatrix(const GlobalVector &perp) const
const TrackerGeometry * theTrackerGeom
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepStd< double, 3, 3 > > AlgebraicMatrix33
Global3DVector GlobalVector
SeedFromNuclearInteraction(const Propagator *prop, const TrackerGeometry *geom, const edm::ParameterSet &iConfig)
T perp() const
Magnitude of transverse component.
GlobalPoint vertexPoint() const
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
std::shared_ptr< TSOS > updatedTSOS_
const Propagator * thePropagator
PropagationDirection direction() const
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
ConstRecHitPointer innerHit_
recHitContainer hits() const
PTrajectoryStateOnDet pTraj
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
GlobalPoint outerHitPosition() const
DetId outerHitDetId() const
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
std::shared_ptr< TSOS > initialTSOS_
std::shared_ptr< FreeTrajectoryState > freeTS_
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Basic3DVector unit() const
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepStd< double, 6, 6 > > AlgebraicMatrix66
FreeTrajectoryState * stateWithError() const
GlobalVector directionAtVertex()