CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
SeedFromGenericPairOrTriplet Class Reference

#include <SeedFromGenericPairOrTriplet.h>

Public Member Functions

bool momentumFromPSet ()
 
std::vector< TrajectorySeed * > seed (const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, const edm::EventSetup &iSetup)
 
 SeedFromGenericPairOrTriplet (const MagneticField *mf, const TrackerGeometry *geom, const TransientTrackingRecHitBuilder *builder, const Propagator *propagatorAlong, const Propagator *propagatorOpposite, const std::vector< int > &charges, bool momFromPSet, double errorRescaling)
 
TrajectorySeedseedFromPair (const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, int charge=-1) const
 
TrajectorySeedseedFromTriplet (const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, const edm::EventSetup &iSetup, int charge=-1) const
 
void setMomentumTo (double mom)
 
 ~SeedFromGenericPairOrTriplet ()
 

Private Member Functions

TrajectorySeedbuildSeed (const GlobalVector &momentum, int charge, std::vector< const BaseTrackerRecHit *> &trHits, const PropagationDirection &dir) const
 
bool qualityFilter (const SeedingHitSet &hits) const
 
bool qualityFilter (const GlobalVector &momentum) const
 

Private Attributes

const TransientTrackingRecHitBuildertheBuilder
 
std::vector< int > theCharges
 
double theErrorRescaling
 
const MagneticFieldtheMagfield
 
float theP
 
const PropagatorthePropagatorAlong
 
const PropagatorthePropagatorOpposite
 
bool theSetMomentum
 
const TrackerGeometrytheTracker
 

Detailed Description

Definition at line 30 of file SeedFromGenericPairOrTriplet.h.

Constructor & Destructor Documentation

◆ SeedFromGenericPairOrTriplet()

SeedFromGenericPairOrTriplet::SeedFromGenericPairOrTriplet ( const MagneticField mf,
const TrackerGeometry geom,
const TransientTrackingRecHitBuilder builder,
const Propagator propagatorAlong,
const Propagator propagatorOpposite,
const std::vector< int > &  charges,
bool  momFromPSet,
double  errorRescaling 
)

Definition at line 11 of file SeedFromGenericPairOrTriplet.cc.

19  : theMagfield(mf),
21  theBuilder(builder),
24  theSetMomentum(momFromPSet),
const TransientTrackingRecHitBuilder * theBuilder
charges
only generated particles of these IDs are considered

◆ ~SeedFromGenericPairOrTriplet()

SeedFromGenericPairOrTriplet::~SeedFromGenericPairOrTriplet ( )
inline

Definition at line 40 of file SeedFromGenericPairOrTriplet.h.

40 {};

Member Function Documentation

◆ buildSeed()

TrajectorySeed * SeedFromGenericPairOrTriplet::buildSeed ( const GlobalVector momentum,
int  charge,
std::vector< const BaseTrackerRecHit *> &  trHits,
const PropagationDirection dir 
) const
private

Definition at line 205 of file SeedFromGenericPairOrTriplet.cc.

References ALCARECOTkAlJpsiMuMu_cff::charge, DeadROC_duringRun::dir, dqmdumpme::first, TrackerGeometry::idToDet(), TrajectoryStateOnSurface::isValid(), LogDebug, PV3DBase< T, PVType, FrameType >::mag(), oppositeToMomentum, trajectoryStateTransform::persistentState(), TrackCandidateProducer_cfi::propagator, edm::OwnVector< T, P >::push_back(), TrajectoryStateOnSurface::rescaleError(), edm::second(), seed(), GeomDet::surface(), theErrorRescaling, thePropagatorAlong, thePropagatorOpposite, theTracker, Surface::toGlobal(), HLT_2023v12_cff::updator, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by seedFromPair(), and seedFromTriplet().

209  {
211  if (dir == oppositeToMomentum)
213 
214  //debug
215  GlobalPoint first = theTracker->idToDet(trHits[0]->geographicalId())->surface().toGlobal(trHits[0]->localPosition());
216  GlobalPoint second = theTracker->idToDet(trHits[1]->geographicalId())->surface().toGlobal(trHits[1]->localPosition());
217  LogDebug("SeedFromGenericPairOrTriplet")
218  << "Using the following hits: first(r, phi, theta) (" << first.perp() << ", " << first.phi() << ","
219  << first.theta() << ") second (" << second.perp() << ", " << second.phi() << "," << second.theta() << ")";
220  //build an initial trajectory state with big errors,
221  //then update it with the first hit
222  auto transHit = trHits[0];
223  LocalVector lmom = transHit->surface()->toLocal(momentum);
224  LocalTrajectoryParameters ltp(charge / momentum.mag(),
225  lmom.x() / lmom.z(),
226  lmom.y() / lmom.z(),
227  transHit->localPosition().x(),
228  transHit->localPosition().y(),
229  lmom.z() > 0. ? 1. : -1.);
230 
231  LocalTrajectoryError lte(100.,
232  100.,
233  (1. + (lmom.x() / lmom.z()) * (lmom.x() / lmom.z())),
234  (1. + (lmom.y() / lmom.z()) * (lmom.y() / lmom.z())),
235  1. / momentum.mag());
236 
237  TrajectoryStateOnSurface initialState(ltp, lte, *transHit->surface(), &(*theMagfield));
239  TrajectoryStateOnSurface startingState = updator.update(initialState, *transHit);
240 
241  auto transHit2 = trHits[1];
242 
243  //TrajectoryStateOnSurface seedTSOS(*startingState, *plane);
244  const TrajectoryStateOnSurface propTSOS = propagator->propagate(startingState, *(transHit2->surface()));
245  if (!propTSOS.isValid()) {
246  LogDebug("SeedFromGenericPairOrTriplet") << "first propagation failed";
247  return nullptr;
248  }
249  TrajectoryStateOnSurface seedTSOS = updator.update(propTSOS, *transHit2);
250  if (!seedTSOS.isValid()) {
251  LogDebug("SeedFromGenericPairOrTriplet") << "first update failed";
252  return nullptr;
253  }
254  LogDebug("SeedFromGenericPairOrTriplet") << "starting TSOS " << seedTSOS;
256  PTrajectoryStateOnDet PTraj =
257  trajectoryStateTransform::persistentState(seedTSOS, trHits[1]->geographicalId().rawId());
259  //build the transientTrackingRecHit for the starting hit, then call the method clone to rematch if needed
260  for (auto ihits = trHits.begin(); ihits != trHits.end(); ihits++) {
261  seed_hits.push_back((*ihits)->clone());
262  }
263  TrajectorySeed* seed = new TrajectorySeed(PTraj, seed_hits, dir);
264  return seed;
265 }
T z() const
Definition: PV3DBase.h:61
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
U second(std::pair< T, U > const &p)
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
void push_back(D *&d)
Definition: OwnVector.h:326
T mag() const
Definition: PV3DBase.h:64
const TrackerGeomDet * idToDet(DetId) const override
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
std::vector< TrajectorySeed * > seed(const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, const edm::EventSetup &iSetup)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
#define LogDebug(id)

◆ momentumFromPSet()

bool SeedFromGenericPairOrTriplet::momentumFromPSet ( )
inline

Definition at line 42 of file SeedFromGenericPairOrTriplet.h.

References theSetMomentum.

◆ qualityFilter() [1/2]

bool SeedFromGenericPairOrTriplet::qualityFilter ( const SeedingHitSet hits) const
private

Definition at line 292 of file SeedFromGenericPairOrTriplet.cc.

References hfClusterShapes_cfi::hits, LogDebug, nHits, FastCircle::rho(), StripSubdetector::TEC, theSetMomentum, and StripSubdetector::TID.

Referenced by seedFromTriplet().

292  {
293  //if we are setting the momentum with the PSet we look for aligned hits
294  if (theSetMomentum) {
295  if (hits.size() == 3) {
296  std::vector<GlobalPoint> gPoints;
297  unsigned int nHits = hits.size();
298  for (unsigned int iHit = 0; iHit < nHits; ++iHit)
299  gPoints.push_back(hits[iHit]->globalPosition());
300  unsigned int subid = (*hits[0]).geographicalId().subdetId();
301  if (subid == StripSubdetector::TEC || subid == StripSubdetector::TID) {
302  LogDebug("SeedFromGenericPairOrTriplet")
303  << "In the endcaps we cannot decide if hits are aligned with only phi and z";
304  return true;
305  }
306  FastCircle circle(gPoints[0], gPoints[1], gPoints[2]);
307  if (circle.rho() < 500 && circle.rho() != 0) {
308  LogDebug("SeedFromGenericPairOrTriplet") << "Seed qualityFilter rejected because rho = " << circle.rho();
309  return false;
310  }
311  }
312  }
313  return true;
314 }
static constexpr auto TEC
TupleMultiplicity< TrackerTraits > const *__restrict__ uint32_t nHits
static constexpr auto TID
#define LogDebug(id)

◆ qualityFilter() [2/2]

bool SeedFromGenericPairOrTriplet::qualityFilter ( const GlobalVector momentum) const
private

Definition at line 316 of file SeedFromGenericPairOrTriplet.cc.

References PV3DBase< T, PVType, FrameType >::perp(), theP, and theSetMomentum.

316  {
317  if (!theSetMomentum) {
318  if (momentum.perp() < theP)
319  return false;
320  }
321  return true;
322 }
T perp() const
Definition: PV3DBase.h:69

◆ seed()

std::vector< TrajectorySeed * > SeedFromGenericPairOrTriplet::seed ( const SeedingHitSet hits,
const PropagationDirection dir,
const NavigationDirection seedDir,
const edm::EventSetup iSetup 
)

Definition at line 28 of file SeedFromGenericPairOrTriplet.cc.

References DeadROC_duringRun::dir, Exception, hfClusterShapes_cfi::hits, seedFromPair(), seedFromTriplet(), DetachedQuadStep_cff::seeds, theCharges, and theSetMomentum.

Referenced by buildSeed(), seedFromPair(), and seedFromTriplet().

31  {
32  std::vector<TrajectorySeed*> seeds;
33  if (hits.size() == 3) {
34  if (!theSetMomentum) {
35  TrajectorySeed* seed = seedFromTriplet(hits, dir, seedDir, iSetup);
36  if (seed)
37  seeds.push_back(seed);
38  } else {
39  for (std::vector<int>::const_iterator iCh = theCharges.begin(); iCh != theCharges.end(); iCh++) {
40  TrajectorySeed* seed = seedFromTriplet(hits, dir, seedDir, iSetup, *iCh);
41  if (seed)
42  seeds.push_back(seed);
43  }
44  }
45 
46  } else if (hits.size() == 2) {
47  if (!theSetMomentum) {
48  TrajectorySeed* seed = seedFromPair(hits, dir, seedDir);
49  if (seed)
50  seeds.push_back(seed);
51  } else {
52  for (std::vector<int>::const_iterator iCh = theCharges.begin(); iCh != theCharges.end(); iCh++) {
53  TrajectorySeed* seed = seedFromPair(hits, dir, seedDir, *iCh);
54  if (seed)
55  seeds.push_back(seed);
56  }
57  }
58  } else {
59  throw cms::Exception("CombinatorialSeedGeneratorForCosmics")
60  << " Wrong number of hits in Set: " << hits.size() << ", should be 2 or 3 ";
61  }
62  return seeds;
63 }
TrajectorySeed * seedFromPair(const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, int charge=-1) const
TrajectorySeed * seedFromTriplet(const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, const edm::EventSetup &iSetup, int charge=-1) const
std::vector< TrajectorySeed * > seed(const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, const edm::EventSetup &iSetup)

◆ seedFromPair()

TrajectorySeed * SeedFromGenericPairOrTriplet::seedFromPair ( const SeedingHitSet hits,
const PropagationDirection dir,
const NavigationDirection seedDir,
int  charge = -1 
) const

Definition at line 150 of file SeedFromGenericPairOrTriplet.cc.

References buildSeed(), ALCARECOTkAlJpsiMuMu_cff::charge, DeadROC_duringRun::dir, Exception, hfClusterShapes_cfi::hits, TrackerGeometry::idToDet(), SurfaceOrientation::inner, LogDebug, oppositeToMomentum, SurfaceOrientation::outer, outsideIn, seed(), theP, theTracker, GeomDet::toGlobal(), and unit().

Referenced by seed(), and seedFromTriplet().

153  {
154  if (hits.size() != 2) {
155  throw cms::Exception("CombinatorialSeedGeneratorForCosmics")
156  << "call to SeedFromGenericPairOrTriplet::seedFromPair with " << hits.size() << " hits ";
157  }
158  auto innerHit = hits[0];
159  auto outerHit = hits[1];
160  GlobalPoint inner = theTracker->idToDet(innerHit->geographicalId())->surface().toGlobal(innerHit->localPosition());
161  GlobalPoint outer = theTracker->idToDet(outerHit->geographicalId())->surface().toGlobal(outerHit->localPosition());
162  LogDebug("SeedFromGenericPairOrTriplet")
163  << "Using the following hits: outer(r, phi, theta) (" << outer.perp() << ", " << outer.phi() << ","
164  << outer.theta() << ") inner (" << inner.perp() << ", " << inner.phi() << "," << inner.theta() << ")";
165  GlobalPoint* firstPoint = nullptr;
166  GlobalPoint* secondPoint = nullptr;
167  int momentumSign = 1;
168  //const TrackingRecHit* firstHit = 0;
169  //const TrackingRecHit* secondHit = 0;
170  std::vector<const BaseTrackerRecHit*> trHits;
171  //choose the prop dir and hit order accordingly to where the seed is made
172  if (seedDir == outsideIn) {
173  LogDebug("SeedFromGenericPairOrTriplet") << "Seed from outsideIn alongMomentum OR insideOut oppositeToMomentum";
174  firstPoint = &outer;
175  secondPoint = &inner;
176  //firstHit = outerHit;
177  //secondHit = innerHit;
178  trHits.push_back(outerHit);
179  trHits.push_back(innerHit);
180  } else {
181  LogDebug("SeedFromGenericPairOrTriplet") << "Seed from outsideIn oppositeToMomentum OR insideOut alongMomentum";
182  firstPoint = &inner;
183  secondPoint = &outer;
184  momentumSign = -1;
185  //firstHit = innerHit;
186  //secondHit = outerHit;
187  trHits.push_back(innerHit);
188  trHits.push_back(outerHit);
189  }
190  if (dir == oppositeToMomentum)
191  momentumSign = -1;
192  GlobalVector momentum = momentumSign * theP * (*secondPoint - *firstPoint).unit();
193  /*GlobalTrajectoryParameters gtp(*firstPoint,
194  momentum,
195  charge,
196  &(*theMagfield));*/
197  //FreeTrajectoryState* startingState = new FreeTrajectoryState(gtp,initialError(trHits[0]));//trHits[1]));
198  //if (!qualityFilter(startingState, hits)) return 0;
199  //TrajectorySeed* seed = buildSeed(startingState, firstHit, dir);
200  //TrajectorySeed* seed = buildSeed(startingState, trHits, dir);
201  TrajectorySeed* seed = buildSeed(momentum, charge, trHits, dir);
202  return seed;
203 }
Basic3DVector unit() const
const TrackerGeomDet * idToDet(DetId) const override
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
TrajectorySeed * buildSeed(const GlobalVector &momentum, int charge, std::vector< const BaseTrackerRecHit *> &trHits, const PropagationDirection &dir) const
std::vector< TrajectorySeed * > seed(const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, const edm::EventSetup &iSetup)
#define LogDebug(id)

◆ seedFromTriplet()

TrajectorySeed * SeedFromGenericPairOrTriplet::seedFromTriplet ( const SeedingHitSet hits,
const PropagationDirection dir,
const NavigationDirection seedDir,
const edm::EventSetup iSetup,
int  charge = -1 
) const

Definition at line 65 of file SeedFromGenericPairOrTriplet.cc.

References buildSeed(), ALCARECOTkAlJpsiMuMu_cff::charge, DeadROC_duringRun::dir, Exception, hfClusterShapes_cfi::hits, TrackerGeometry::idToDet(), SurfaceOrientation::inner, LogDebug, MagneticField::nominalValue(), oppositeToMomentum, SurfaceOrientation::outer, outsideIn, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), qualityFilter(), seed(), seedFromPair(), theMagfield, theSetMomentum, PV3DBase< T, PVType, FrameType >::theta(), theTracker, GeomDet::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by seed().

69  {
70  if (hits.size() != 3) {
71  throw cms::Exception("CombinatorialSeedGeneratorForCosmics")
72  << "call to SeedFromGenericPairOrTriplet::seedFromTriplet with " << hits.size() << " hits ";
73  }
74 
75  auto innerHit = hits[0];
76  auto middleHit = hits[1];
77  auto outerHit = hits[2];
78  GlobalPoint inner = theTracker->idToDet(innerHit->geographicalId())->surface().toGlobal(innerHit->localPosition());
79  GlobalPoint middle = theTracker->idToDet(middleHit->geographicalId())->surface().toGlobal(middleHit->localPosition());
80  GlobalPoint outer = theTracker->idToDet(outerHit->geographicalId())->surface().toGlobal(outerHit->localPosition());
81  if (theSetMomentum) {
82  LogDebug("SeedFromGenericPairOrTriplet")
83  << "Using the following hits: outer(r, phi, theta) " << outerHit->geographicalId().subdetId() << " ("
84  << outer.perp() << ", " << outer.phi() << "," << outer.theta() << ") "
85  << middleHit->geographicalId().subdetId() << " middle (" << middle.perp() << ", " << middle.phi() << ","
86  << middle.theta() << ") " << innerHit->geographicalId().subdetId() << " inner (" << inner.perp() << ", "
87  << inner.phi() << "," << inner.theta() << ") "
88  << " (x, y, z) outer (" << inner.x() << ", " << inner.y() << ", " << inner.z() << ") middle ("
89  << middle.x() << ", " << middle.y() << ", " << middle.z() << ")";
90  if (!qualityFilter(hits))
91  return nullptr;
92  bool sdir = (seedDir == outsideIn);
93  SeedingHitSet newSet(sdir ? hits[1] : hits[0], sdir ? hits[2] : hits[1]);
94  TrajectorySeed* seed = seedFromPair(newSet, dir, seedDir, charge);
95  return seed;
96  }
97  GlobalPoint* firstPoint = nullptr;
98  GlobalPoint* secondPoint = nullptr;
99  GlobalPoint* thirdPoint = nullptr;
100  int momentumSign = 1;
101  //const TrackingRecHit* firstHit = 0;
102  //const TrackingRecHit* secondHit = 0;
103  //choose the prop dir and hit order accordingly to where the seed is made
104  std::vector<const BaseTrackerRecHit*> trHits;
105  if (seedDir == outsideIn) {
106  LogDebug("SeedFromGenericPairOrTriplet") << "Seed from outsideIn alongMomentum OR insideOut oppositeToMomentum";
107  firstPoint = &outer;
108  secondPoint = &middle;
109  thirdPoint = &inner;
110  trHits.push_back(outerHit);
111  trHits.push_back(middleHit);
112  //firstHit = outerHit;
113  //secondHit = middleHit;
114  } else {
115  LogDebug("SeedFromGenericPairOrTriplet") << "Seed from outsideIn oppositeToMomentum OR insideOut alongMomentum";
116  firstPoint = &inner;
117  secondPoint = &middle;
118  thirdPoint = &outer;
119  trHits.push_back(innerHit);
120  trHits.push_back(middleHit);
121  //firstHit = innerHit;
122  //secondHit = middleHit;
123  }
124  if (dir == oppositeToMomentum)
125  momentumSign = -1;
126  FastHelix helix(*thirdPoint, *secondPoint, *firstPoint, theMagfield->nominalValue(), theMagfield);
127  FreeTrajectoryState originalStartingState = helix.stateAtVertex();
128  LogDebug("SeedFromGenericPairOrTriplet") << "originalStartingState " << originalStartingState;
129  /*GlobalTrajectoryParameters originalPar = originalStartingState.parameters();
130  GlobalTrajectoryParameters newPar = GlobalTrajectoryParameters(originalPar.position(),
131  momentumSign*originalPar.momentum(),
132  originalPar.charge(),
133  &originalPar.magneticField());
134  */
135 
136  /*FastCircle helix(*thirdPoint, *secondPoint, *firstPoint);
137  GlobalTrajectoryParameters newPar = GlobalTrajectoryParameters(*secondPoint,
138  momentumSign*originalPar.momentum(),
139  originalPar.charge(),
140  &originalPar.magneticField());*/
141  //FreeTrajectoryState* startingState = new FreeTrajectoryState(newPar, initialError(trHits[0]));//trHits[1]));
142  if (!qualityFilter(momentumSign * originalStartingState.momentum()))
143  return nullptr;
144  //TrajectorySeed* seed = buildSeed(startingState, trHits, dir);
146  buildSeed(momentumSign * originalStartingState.momentum(), originalStartingState.charge(), trHits, dir);
147  return seed;
148 }
TrajectorySeed * seedFromPair(const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, int charge=-1) const
T perp() const
Definition: PV3DBase.h:69
T z() const
Definition: PV3DBase.h:61
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
bool qualityFilter(const SeedingHitSet &hits) const
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
const TrackerGeomDet * idToDet(DetId) const override
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
TrajectorySeed * buildSeed(const GlobalVector &momentum, int charge, std::vector< const BaseTrackerRecHit *> &trHits, const PropagationDirection &dir) const
std::vector< TrajectorySeed * > seed(const SeedingHitSet &hits, const PropagationDirection &dir, const NavigationDirection &seedDir, const edm::EventSetup &iSetup)
int nominalValue() const
The nominal field value for this map in kGauss.
Definition: MagneticField.h:49
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72
#define LogDebug(id)

◆ setMomentumTo()

void SeedFromGenericPairOrTriplet::setMomentumTo ( double  mom)
inline

Definition at line 41 of file SeedFromGenericPairOrTriplet.h.

References theP.

Member Data Documentation

◆ theBuilder

const TransientTrackingRecHitBuilder* SeedFromGenericPairOrTriplet::theBuilder
private

Definition at line 72 of file SeedFromGenericPairOrTriplet.h.

◆ theCharges

std::vector<int> SeedFromGenericPairOrTriplet::theCharges
private

Definition at line 78 of file SeedFromGenericPairOrTriplet.h.

Referenced by seed().

◆ theErrorRescaling

double SeedFromGenericPairOrTriplet::theErrorRescaling
private

Definition at line 79 of file SeedFromGenericPairOrTriplet.h.

Referenced by buildSeed().

◆ theMagfield

const MagneticField* SeedFromGenericPairOrTriplet::theMagfield
private

Definition at line 70 of file SeedFromGenericPairOrTriplet.h.

Referenced by seedFromTriplet().

◆ theP

float SeedFromGenericPairOrTriplet::theP
private

Definition at line 76 of file SeedFromGenericPairOrTriplet.h.

Referenced by qualityFilter(), seedFromPair(), and setMomentumTo().

◆ thePropagatorAlong

const Propagator* SeedFromGenericPairOrTriplet::thePropagatorAlong
private

Definition at line 73 of file SeedFromGenericPairOrTriplet.h.

Referenced by buildSeed().

◆ thePropagatorOpposite

const Propagator* SeedFromGenericPairOrTriplet::thePropagatorOpposite
private

Definition at line 74 of file SeedFromGenericPairOrTriplet.h.

Referenced by buildSeed().

◆ theSetMomentum

bool SeedFromGenericPairOrTriplet::theSetMomentum
private

◆ theTracker

const TrackerGeometry* SeedFromGenericPairOrTriplet::theTracker
private

Definition at line 71 of file SeedFromGenericPairOrTriplet.h.

Referenced by buildSeed(), seedFromPair(), and seedFromTriplet().