![]() |
![]() |
00001 #ifndef GEOMETRY_CALOGEOMETRY_CALOCELLCROSSING_H 00002 #define GEOMETRY_CALOGEOMETRY_CALOCELLCROSSING_H 1 00003 00004 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00005 #include "DataFormats/GeometryVector/interface/GlobalVector.h" 00006 00007 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" 00008 00009 #include <vector> 00010 #include <string> 00011 00012 class CaloCellCrossing 00013 { 00014 public: 00015 00016 typedef std::vector< DetId > DetIds ; 00017 typedef std::vector< GlobalPoint > Points; 00018 typedef std::vector< double > Lengths ; 00019 00020 CaloCellCrossing( const GlobalPoint& gp , 00021 const GlobalVector& gv , 00022 const DetIds* di , 00023 const CaloSubdetectorGeometry* sg , 00024 DetId::Detector det , 00025 int subdet, 00026 double small = 1.e-10, 00027 bool onewayonly = false ) ; 00028 00029 virtual ~CaloCellCrossing() {} ; 00030 00031 const GlobalPoint& gp() const { return m_gp ; } 00032 const GlobalVector& gv() const { return m_gv ; } 00033 00034 const DetIds& detIds() const { return m_detId ; } 00035 const Points& centers() const { return m_ctr ; } 00036 const Points& entrances() const { return m_entr ; } 00037 const Points& exits() const { return m_exit ; } 00038 const Lengths& lengths() const { return m_len ; } 00039 00040 private: 00041 00042 CaloCellCrossing( const CaloCellCrossing& ) ; 00043 CaloCellCrossing operator=( const CaloCellCrossing& ) ; 00044 00045 GlobalPoint m_gp ; 00046 GlobalVector m_gv ; 00047 00048 DetIds m_detId ; 00049 00050 Points m_ctr ; 00051 00052 Points m_entr ; 00053 Points m_exit ; 00054 Lengths m_len ; 00055 00056 }; 00057 00058 std::ostream& operator<<( std::ostream& s, const CaloCellCrossing& cell ) ; 00059 00060 #endif