00001 #ifndef TkDetLayers_SubLayerCrossings_h 00002 #define TkDetLayers_SubLayerCrossings_h 00003 00004 #include "DataFormats/GeometryVector/interface/LocalPoint.h" 00005 00006 #pragma GCC visibility push(hidden) 00007 class SubLayerCrossing { 00008 public: 00009 SubLayerCrossing(){} 00010 SubLayerCrossing( int sli, int cdi, const GlobalPoint& pos) : 00011 subLayerIndex_(sli), closestDetIndex_(cdi), pos_(pos) {} 00012 00013 int subLayerIndex() const {return subLayerIndex_;} 00014 int closestDetIndex() const {return closestDetIndex_;} 00015 const GlobalPoint& position() const { return pos_;} 00016 00017 private: 00018 int subLayerIndex_; 00019 int closestDetIndex_; 00020 GlobalPoint pos_; 00021 }; 00022 00023 class SubLayerCrossings { 00024 public: 00025 SubLayerCrossings(): isValid_(false){} 00026 SubLayerCrossings( const SubLayerCrossing& c, const SubLayerCrossing& o, int ci) : 00027 isValid_(true),closest_(c), other_(o), closestIndex_(ci) {} 00028 00029 bool isValid() {return isValid_ ;} 00030 const SubLayerCrossing& closest() const {return closest_;} 00031 const SubLayerCrossing& other() const {return other_;} 00032 int closestIndex() const {return closestIndex_;} 00033 00034 private: 00035 bool isValid_; 00036 SubLayerCrossing closest_; 00037 SubLayerCrossing other_; 00038 int closestIndex_; 00039 00040 }; 00041 00042 #pragma GCC visibility pop 00043 #endif