Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:14:01

0001 //==========================================================================
0002 //  AIDA Detector description implementation 
0003 //--------------------------------------------------------------------------
0004 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
0005 // All rights reserved.
0006 //
0007 // For the licensing terms see $DD4hepINSTALL/LICENSE.
0008 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
0009 //
0010 // Author     : M.Frank
0011 //
0012 //==========================================================================
0013 
0014 // Framework include files
0015 #include <DD4hep/WaferGridXY.h>
0016 #include <DDSegmentation/WaferGridXY.h>
0017 
0018 using namespace dd4hep;
0019 
0020 /// determine the position based on the cell ID
0021 Position WaferGridXY::position(const CellID& id) const   {
0022   return Position(access()->implementation->position(id));
0023 }
0024 
0025 /// determine the cell ID based on the position
0026 dd4hep::CellID WaferGridXY::cellID(const Position& local,
0027                                    const Position& global,
0028                                    const VolumeID& volID) const
0029 {
0030   return access()->implementation->cellID(local, global, volID);
0031 }
0032 
0033 /// access the grid size in X
0034 double WaferGridXY::gridSizeX() const {
0035   return access()->implementation->gridSizeX();
0036 }
0037 
0038 /// access the grid size in Y
0039 double WaferGridXY::gridSizeY() const {
0040   return access()->implementation->gridSizeY();
0041 }
0042 
0043 /// access the coordinate offset in X
0044 double WaferGridXY::offsetX() const {
0045   return access()->implementation->offsetX();
0046 }
0047 
0048 /// access the coordinate offset in Y
0049 double WaferGridXY::offsetY() const {
0050   return access()->implementation->offsetY();
0051 }
0052 /// access the coordinate waferOffset for inGroup in X
0053 double WaferGridXY::waferOffsetX(int inGroup, int inWafer) const  {
0054   return access()->implementation->waferOffsetX(inGroup,inWafer);
0055 }
0056 
0057 /// access the coordinate waferOffset for inGroup in Y
0058 double WaferGridXY::waferOffsetY(int inGroup, int inWafer) const  {
0059   return access()->implementation->waferOffsetY(inGroup,inWafer);
0060 }
0061 
0062 /// access the field name used for X
0063 const std::string& WaferGridXY::fieldNameX() const {
0064   return access()->implementation->fieldNameX();
0065 }
0066 
0067 /// access the field name used for Y
0068 const std::string& WaferGridXY::fieldNameY() const {
0069   return access()->implementation->fieldNameY();
0070 }
0071 
0072 /** \brief Returns a vector<double> of the cellDimensions of the given cell ID
0073     in natural order of dimensions, e.g., dx/dy/dz, or dr/r*dPhi
0074 
0075     Returns a vector of the cellDimensions of the given cell ID
0076     \param cellID is ignored as all cells have the same dimension
0077     \return vector<double> size 2:
0078     -# size in x
0079     -# size in y
0080 */
0081 std::vector<double> WaferGridXY::cellDimensions(const CellID& id) const  {
0082   return access()->implementation->cellDimensions(id);
0083 }