102 toGlobal((*(
HitTriplets[it].middle())).localPosition());
112 if (
positiveYOnly && (outrhit->globalPosition().y()<0 || innrhit->globalPosition().y()<0
113 || outrhit->globalPosition().y() < innrhit->globalPosition().y()
115 if (
negativeYOnly && (outrhit->globalPosition().y()>0 || innrhit->globalPosition().y()>0
116 || outrhit->globalPosition().y() > innrhit->globalPosition().y()
122 FastHelix helix(inner, middle, outer,iSetup);
123 GlobalVector gv=helix.stateAtVertex().parameters().momentum();
124 float ch=helix.stateAtVertex().parameters().charge();
125 float Mom =
sqrt( gv.
x()*gv.
x() + gv.
y()*gv.
y() + gv.
z()*gv.
z() );
138 if((outer.
y()-inner.
y())>0){
139 const TSOS outerState =
143 LogDebug(
"CosmicSeedFinder") <<
"outerState "<<outerState;
146 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated "<<outerUpdated;
148 std::auto_ptr<PTrajectoryStateOnDet> PTraj(
154 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
161 const TSOS outerState =
165 LogDebug(
"CosmicSeedFinder") <<
"outerState "<<outerState;
168 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated "<<outerUpdated;
170 std::auto_ptr<PTrajectoryStateOnDet> PTraj(
176 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
193 LogDebug(
"CosmicSeedFinder") <<
"inner point of the seed "<<inner <<
" outer point of the seed "<<
outer;
198 if (
positiveYOnly && (outrhit->globalPosition().y()<0 || innrhit->globalPosition().y()<0
199 || outrhit->globalPosition().y() < innrhit->globalPosition().y()
201 if (
negativeYOnly && (outrhit->globalPosition().y()>0 || innrhit->globalPosition().y()>0
202 || outrhit->globalPosition().y() > innrhit->globalPosition().y()
210 for (
int i=0;
i<2;
i++){
212 int predsign=(2*
i)-1;
213 if((outer.y()-inner.
y())>0){
215 (inner-outer)*(
seedpt/(inner-outer).
mag()),
223 LogDebug(
"CosmicSeedFinder") <<
" FirstTSOS "<<CosmicSeed;
225 const TSOS outerState =
227 tracker->idToDet((*(
HitPairs[is].outer())).geographicalId())->surface());
229 LogDebug(
"CosmicSeedFinder") <<
"outerState "<<outerState;
232 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated "<<outerUpdated;
234 std::auto_ptr<PTrajectoryStateOnDet> PTraj(
241 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
246 }
else edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first update failed ";
247 }
else edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first propagation failed ";
253 (outer-inner)*(
seedpt/(outer-inner).
mag()),
258 LogDebug(
"CosmicSeedFinder") <<
" FirstTSOS "<<CosmicSeed;
260 const TSOS outerState =
262 tracker->idToDet((*(
HitPairs[is].outer())).geographicalId())->surface());
265 LogDebug(
"CosmicSeedFinder") <<
"outerState "<<outerState;
268 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated "<<outerUpdated;
270 std::auto_ptr<PTrajectoryStateOnDet> PTraj(
276 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
281 }
else edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first update failed ";
282 }
else edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first propagation failed ";
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
PropagatorWithMaterial * thePropagatorAl
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
TrajectoryStateTransform transformer
virtual TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Plane &plane) const
TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TransientTrackingRecHit &) const
virtual unsigned int size() const
const TransientTrackingRecHitBuilder * TTTRHBuilder
edm::ESHandle< MagneticField > magfield