41 : maxSeeds_(conf.getParameter<int32_t>(
"maxSeeds")),
47 float originradius = conf.
getParameter<
double>(
"originRadius");
48 float halflength = conf.
getParameter<
double>(
"originHalfLength");
49 float originz = conf.
getParameter<
double>(
"originZPosition");
56 <<
" PtMin of track is " <<
ptmin <<
" The Radius of the cylinder for seeds is " << originradius <<
"cm" 57 <<
" The set Seed Momentum" <<
seedpt;
70 init(collstereo, collrphi, collmatched,
c);
107 if (
positiveYOnly && (outrhit->globalPosition().y() < 0 || innrhit->globalPosition().y() < 0 ||
108 outrhit->globalPosition().y() < innrhit->globalPosition().y()))
110 if (
negativeYOnly && (outrhit->globalPosition().y() > 0 || innrhit->globalPosition().y() > 0 ||
111 outrhit->globalPosition().y() > innrhit->globalPosition().y()))
119 float ch = helix.stateAtVertex().charge();
120 float mom2 = gv.
x() * gv.x() + gv.y() * gv.y() + gv.z() * gv.z();
135 LogDebug(
"CosmicSeedFinder") <<
"outerState " << outerState;
138 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated " << outerUpdated;
146 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
156 LogDebug(
"CosmicSeedFinder") <<
"outerState " << outerState;
159 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated " << outerUpdated;
167 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
184 LogDebug(
"CosmicSeedFinder") <<
"inner point of the seed " <<
inner <<
" outer point of the seed " <<
outer;
188 if (
positiveYOnly && (outrhit->globalPosition().y() < 0 || innrhit->globalPosition().y() < 0 ||
189 outrhit->globalPosition().y() < innrhit->globalPosition().y()))
191 if (
negativeYOnly && (outrhit->globalPosition().y() > 0 || innrhit->globalPosition().y() > 0 ||
192 outrhit->globalPosition().y() > innrhit->globalPosition().y()))
200 for (
int i = 0;
i < 2;
i++) {
202 int predsign = (2 *
i) - 1;
209 LogDebug(
"CosmicSeedFinder") <<
" FirstTSOS " << CosmicSeed;
214 LogDebug(
"CosmicSeedFinder") <<
"outerState " << outerState;
217 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated " << outerUpdated;
220 outerUpdated, (*(
HitPairs[is].
outer())).geographicalId().rawId());
225 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
231 edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first update failed ";
233 edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first propagation failed ";
239 LogDebug(
"CosmicSeedFinder") <<
" FirstTSOS " << CosmicSeed;
244 LogDebug(
"CosmicSeedFinder") <<
"outerState " << outerState;
247 LogDebug(
"CosmicSeedFinder") <<
"outerUpdated " << outerUpdated;
250 outerUpdated, (*(
HitPairs[is].
outer())).geographicalId().rawId());
255 edm::LogError(
"TooManySeeds") <<
"Found too many seeds, bailing out.\n";
261 edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first update failed ";
263 edm::LogWarning(
"CosmicSeedFinder") <<
" SeedForCosmics first propagation failed ";
T getParameter(std::string const &) const
void hitTriplets(const TrackingRegion ®, OrderedHitTriplets &prs)
edm::ESHandle< TrackerGeometry > tracker
constexpr bool isNotFinite(T x)
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > theMagfieldToken
Log< level::Error, false > LogError
PropagatorWithMaterial * thePropagatorOp
OrderedHitTriplets HitTriplets
CosmicHitTripletGenerator * theTripletGenerator
T getUntrackedParameter(std::string const &, T const &) const
CosmicHitPairGenerator * thePairGenerator
BaseTrackerRecHit const * ConstRecHitPointer
GlobalTrackingRegion region
PropagatorWithMaterial * thePropagatorAl
TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const override
std::vector< TrajectorySeed > TrajectorySeedCollection
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > theTTopoToken
bool getData(T &iHolder) const
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
const TrackerGeomDet * idToDet(DetId) const override
unsigned int size() const override
bool seeds(TrajectorySeedCollection &output, const TrackingRegion ®ion)
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Log< level::Info, false > LogInfo
const Plane & surface() const
The nominal surface of the GeomDet.
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
SeedGeneratorForCosmics(const edm::ParameterSet &conf, edm::ConsumesCollector)
const edm::ESGetToken< GeometricSearchTracker, TrackerRecoGeometryRecord > theSearchTrackerToken
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
void run(const SiStripRecHit2DCollection &collstereo, const SiStripRecHit2DCollection &collrphi, const SiStripMatchedRecHit2DCollection &collmatched, const edm::EventSetup &c, TrajectorySeedCollection &)
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
void hitPairs(const TrackingRegion ®, OrderedHitPairs &pr)
form base class
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > theTrackerToken
int nominalValue() const
The nominal field value for this map in kGauss.
Log< level::Warning, false > LogWarning
unsigned int size() const override
edm::ESHandle< MagneticField > magfield
void init(const SiStripRecHit2DCollection &collstereo, const SiStripRecHit2DCollection &collrphi, const SiStripMatchedRecHit2DCollection &collmatched, const edm::EventSetup &c)