CMS 3D CMS Logo

LayerCollector.h
Go to the documentation of this file.
1 #ifndef TkNavigation_LayerCollector_H_
2 #define TkNavigation_LayerCollector_H_
3 
16 
17 class NavigationSchool;
18 
20 private:
23  typedef std::pair<float, float> Range;
24 
25 public:
27  const Propagator* aPropagator,
28  const StartingLayerFinder* aFinder,
29  float dr,
30  float dz)
31  : theSchool(aSchool), thePropagator(aPropagator), theStartingLayerFinder(aFinder), theDeltaR(dr), theDeltaZ(dz) {}
32 
34 
35  std::vector<const DetLayer*> allLayers(const FTS& aFts) const;
36  std::vector<const BarrelDetLayer*> barrelLayers(const FTS& aFts) const;
37  std::vector<const ForwardDetLayer*> forwardLayers(const FTS& aFts) const;
38 
39  const Propagator* propagator() const { return thePropagator; }
41  float deltaR() const { return theDeltaR; }
42  float deltaZ() const { return theDeltaZ; }
43 
44 private:
48  float theDeltaR;
49  float theDeltaZ;
50 
51  inline bool rangesIntersect(const Range& a, const Range& b) const {
52  if (a.first > b.second || b.first > a.second)
53  return false;
54  else
55  return true;
56  }
57 };
58 
59 #endif //TR_LayerCollector_H_
const Propagator * thePropagator
float deltaR() const
std::vector< const ForwardDetLayer * > forwardLayers(const FTS &aFts) const
NavigationSchool const * theSchool
TrajectoryStateOnSurface TSOS
const StartingLayerFinder * finder() const
bool rangesIntersect(const Range &a, const Range &b) const
const StartingLayerFinder * theStartingLayerFinder
std::vector< const BarrelDetLayer * > barrelLayers(const FTS &aFts) const
std::pair< float, float > Range
float deltaZ() const
const Propagator * propagator() const
std::vector< const DetLayer * > allLayers(const FTS &aFts) const
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119
FreeTrajectoryState FTS
LayerCollector(NavigationSchool const *aSchool, const Propagator *aPropagator, const StartingLayerFinder *aFinder, float dr, float dz)