101 toGlobal((*(
HitTriplets[it].middle())).localPosition());
111 if (
positiveYOnly && (outrhit->globalPosition().y()<0 || innrhit->globalPosition().y()<0
112 || outrhit->globalPosition().y() < innrhit->globalPosition().y()
114 if (
negativeYOnly && (outrhit->globalPosition().y()>0 || innrhit->globalPosition().y()>0
115 || outrhit->globalPosition().y() > innrhit->globalPosition().y()
123 float ch=helix.stateAtVertex().charge();
124 float Mom =
sqrt( gv.x()*gv.x() + gv.y()*gv.y() + gv.z()*gv.z() );
137 if((outer.
y()-inner.
y())>0){
138 const TSOS outerState =
142 LogDebug(
"CosmicSeedFinder") <<
"outerState "<<outerState;
145 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated "<<outerUpdated;
151 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
158 const TSOS outerState =
162 LogDebug(
"CosmicSeedFinder") <<
"outerState "<<outerState;
165 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated "<<outerUpdated;
171 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
188 LogDebug(
"CosmicSeedFinder") <<
"inner point of the seed "<<inner <<
" outer point of the seed "<<
outer;
193 if (
positiveYOnly && (outrhit->globalPosition().y()<0 || innrhit->globalPosition().y()<0
194 || outrhit->globalPosition().y() < innrhit->globalPosition().y()
196 if (
negativeYOnly && (outrhit->globalPosition().y()>0 || innrhit->globalPosition().y()>0
197 || outrhit->globalPosition().y() > innrhit->globalPosition().y()
205 for (
int i=0;
i<2;
i++){
207 int predsign=(2*
i)-1;
208 if((outer.y()-inner.
y())>0){
210 (inner-outer)*(
seedpt/(inner-outer).
mag()),
218 LogDebug(
"CosmicSeedFinder") <<
" FirstTSOS "<<CosmicSeed;
220 const TSOS outerState =
222 tracker->idToDet((*(
HitPairs[is].outer())).geographicalId())->surface());
224 LogDebug(
"CosmicSeedFinder") <<
"outerState "<<outerState;
227 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated "<<outerUpdated;
235 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
240 }
else edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first update failed ";
241 }
else edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first propagation failed ";
247 (outer-inner)*(
seedpt/(outer-inner).
mag()),
252 LogDebug(
"CosmicSeedFinder") <<
" FirstTSOS "<<CosmicSeed;
254 const TSOS outerState =
256 tracker->idToDet((*(
HitPairs[is].outer())).geographicalId())->surface());
259 LogDebug(
"CosmicSeedFinder") <<
"outerState "<<outerState;
262 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated "<<outerUpdated;
270 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
275 }
else edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first update failed ";
276 }
else edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first propagation failed ";
virtual FreeTrajectoryState propagate(const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const final
edm::ESHandle< TrackerGeometry > tracker
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
virtual unsigned int size() const
PropagatorWithMaterial * thePropagatorOp
OrderedHitTriplets HitTriplets
BaseTrackerRecHit const * ConstRecHitPointer
PropagatorWithMaterial * thePropagatorAl
TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
virtual unsigned int size() const
edm::ESHandle< MagneticField > magfield