CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
LayerCollector.h
Go to the documentation of this file.
1 #ifndef TkNavigation_LayerCollector_H_
2 #define TkNavigation_LayerCollector_H_
3 
18 
19 
20 
21 
23 
24 private:
25 
28  typedef std::pair<float, float> Range;
29 
30 public:
31 
32  LayerCollector(const Propagator* aPropagator,
33  const StartingLayerFinder* aFinder,
34  float dr,
35  float dz) :
36  thePropagator(aPropagator),
37  theStartingLayerFinder(aFinder),
38  theDeltaR(dr),
39  theDeltaZ(dz) { }
40 
42 
43  std::vector<const DetLayer*> allLayers(const FTS& aFts) const;
44  std::vector<const BarrelDetLayer*> barrelLayers(const FTS& aFts) const;
45  std::vector<const ForwardDetLayer*> forwardLayers(const FTS& aFts) const;
46 
47  const Propagator* propagator() const {return thePropagator;}
49  float deltaR() const {return theDeltaR;}
50  float deltaZ() const {return theDeltaZ;}
51 
52 private:
53 
56  float theDeltaR;
57  float theDeltaZ;
58 
59 
60 
61  inline bool rangesIntersect( const Range& a, const Range& b) const {
62  if ( a.first > b.second || b.first > a.second) return false;
63  else return true;
64  }
65 
66 
67 };
68 
69 #endif //TR_LayerCollector_H_
const Propagator * thePropagator
float deltaR() const
std::vector< const ForwardDetLayer * > forwardLayers(const FTS &aFts) const
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:120
double a
Definition: hdecay.h:121
FreeTrajectoryState FTS
LayerCollector(const Propagator *aPropagator, const StartingLayerFinder *aFinder, float dr, float dz)