CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/Geometry/CaloGeometry/interface/CaloCellCrossing.h

Go to the documentation of this file.
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