Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:36:27

0001 #ifndef GEOMETRY_CALOGEOMETRY_CALOCELLCROSSING_H
0002 #define GEOMETRY_CALOGEOMETRY_CALOCELLCROSSING_H 1
0003 
0004 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0005 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
0006 
0007 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
0008 
0009 #include <vector>
0010 #include <string>
0011 
0012 class CaloCellCrossing {
0013 public:
0014   typedef std::vector<DetId> DetIds;
0015   typedef std::vector<GlobalPoint> Points;
0016   typedef std::vector<double> Lengths;
0017 
0018   CaloCellCrossing(const GlobalPoint& gp,
0019                    const GlobalVector& gv,
0020                    const DetIds* di,
0021                    const CaloSubdetectorGeometry* sg,
0022                    DetId::Detector det,
0023                    int subdet,
0024                    double small = 1.e-10,
0025                    bool onewayonly = false);
0026 
0027   virtual ~CaloCellCrossing() {}
0028 
0029   const GlobalPoint& gp() const { return m_gp; }
0030   const GlobalVector& gv() const { return m_gv; }
0031 
0032   const DetIds& detIds() const { return m_detId; }
0033   const Points& centers() const { return m_ctr; }
0034   const Points& entrances() const { return m_entr; }
0035   const Points& exits() const { return m_exit; }
0036   const Lengths& lengths() const { return m_len; }
0037 
0038   CaloCellCrossing(const CaloCellCrossing&) = delete;
0039   CaloCellCrossing operator=(const CaloCellCrossing&) = delete;
0040 
0041 private:
0042   GlobalPoint m_gp;
0043   GlobalVector m_gv;
0044 
0045   DetIds m_detId;
0046 
0047   Points m_ctr;
0048 
0049   Points m_entr;
0050   Points m_exit;
0051   Lengths m_len;
0052 };
0053 
0054 std::ostream& operator<<(std::ostream& s, const CaloCellCrossing& cell);
0055 
0056 #endif