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()
124 float ch=helix.stateAtVertex().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;
144 const TSOS outerUpdated=
theUpdator->update( outerState,*outrhit);
146 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated "<<outerUpdated;
152 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
159 const TSOS outerState =
163 LogDebug(
"CosmicSeedFinder") <<
"outerState "<<outerState;
164 const TSOS outerUpdated=
theUpdator->update( outerState,*outrhit);
166 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated "<<outerUpdated;
172 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
189 LogDebug(
"CosmicSeedFinder") <<
"inner point of the seed "<<inner <<
" outer point of the seed "<<
outer;
194 if (
positiveYOnly && (outrhit->globalPosition().y()<0 || innrhit->globalPosition().y()<0
195 || outrhit->globalPosition().y() < innrhit->globalPosition().y()
197 if (
negativeYOnly && (outrhit->globalPosition().y()>0 || innrhit->globalPosition().y()>0
198 || outrhit->globalPosition().y() > innrhit->globalPosition().y()
206 for (
int i=0;
i<2;
i++){
208 int predsign=(2*
i)-1;
209 if((outer.y()-inner.
y())>0){
211 (inner-outer)*(
seedpt/(inner-outer).
mag()),
219 LogDebug(
"CosmicSeedFinder") <<
" FirstTSOS "<<CosmicSeed;
221 const TSOS outerState =
223 tracker->idToDet((*(
HitPairs[is].outer())).geographicalId())->surface());
225 LogDebug(
"CosmicSeedFinder") <<
"outerState "<<outerState;
226 const TSOS outerUpdated=
theUpdator->update( outerState,*outrhit);
228 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated "<<outerUpdated;
236 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
241 }
else edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first update failed ";
242 }
else edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first propagation failed ";
248 (outer-inner)*(
seedpt/(outer-inner).
mag()),
253 LogDebug(
"CosmicSeedFinder") <<
" FirstTSOS "<<CosmicSeed;
255 const TSOS outerState =
257 tracker->idToDet((*(
HitPairs[is].outer())).geographicalId())->surface());
260 LogDebug(
"CosmicSeedFinder") <<
"outerState "<<outerState;
261 const TSOS outerUpdated=
theUpdator->update( outerState,*outrhit);
263 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated "<<outerUpdated;
271 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
276 }
else edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first update failed ";
277 }
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
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
virtual unsigned int size() const
const TransientTrackingRecHitBuilder * TTTRHBuilder
edm::ESHandle< MagneticField > magfield