From 6dca5b39a86d5ab0783b0e9ceac0a741d967bd1a Mon Sep 17 00:00:00 2001 From: Nicholas Styles <nicholas.styles@desy.de> Date: Thu, 30 Jan 2020 14:49:32 +0100 Subject: [PATCH] move remaining client code to use classes from PixelReadoutGeometry, remove duplicates from InDetReadoutGeometry --- .../GeoModel/GeoAdaptors/CMakeLists.txt | 3 +- .../GeoAdaptors/GeoAdaptors/GeoSiHit.icc | 2 +- .../PixelDetectorManager.h | 195 ----- .../InDetReadoutGeometry/PixelDiodeMap.h | 196 ----- .../InDetReadoutGeometry/PixelDiodeMatrix.h | 202 ------ .../InDetReadoutGeometry/PixelModuleDesign.h | 354 --------- .../PixelMultipleConnection1D.h | 128 ---- .../InDetReadoutGeometry/PixelReadoutScheme.h | 157 ---- .../src/PixelDetectorManager.cxx | 684 ------------------ .../src/PixelDiodeMap.cxx | 297 -------- .../src/PixelDiodeMatrix.cxx | 338 --------- .../src/PixelModuleDesign.cxx | 245 ------- .../src/PixelMultipleConnection1D.cxx | 141 ---- .../src/PixelReadoutScheme.cxx | 104 --- .../MuonCnv/MuonEventTPCnv/CMakeLists.txt | 3 +- .../MuonCnv/MuonEventTPCnv/test/make_dd.icc | 2 +- .../iPat/iPatTrackFinder/CMakeLists.txt | 3 +- .../iPatTrackFinder/src/FinderTolerances.cxx | 2 +- Tracking/Acts/ActsGeometry/CMakeLists.txt | 1 + .../ActsGeometry/src/ActsAlignmentCondAlg.cxx | 2 +- .../ActsGeometry/src/GeomShiftCondAlg.cxx | 2 +- .../FTK_DataProviderSvc/CMakeLists.txt | 5 +- .../src/FTK_DataProviderSvc.cxx | 2 +- Trigger/TrigFTK/FTK_RecTools/CMakeLists.txt | 5 +- .../FTK_RecTools/src/FTK_HashIDTool.cxx | 2 +- .../src/FTK_PixelClusterOnTrackTool.cxx | 2 +- .../TrigFTK_RawDataAlgs/CMakeLists.txt | 5 +- .../src/FTKTrackMakerMT.cxx | 2 +- .../src/FTK_RDO_MonitorAlgo.cxx | 2 +- .../TrigFTKTrackConverter/CMakeLists.txt | 3 +- .../src/TrigFTKClusterConverterTool.cxx | 2 +- .../src/TrigFTKTrackConverter.cxx | 2 +- .../TrigInDetRecoTools/CMakeLists.txt | 3 +- .../src/TrigL2LayerSetPredictorTool.cxx | 2 +- .../TrigOnlineSpacePointTool/CMakeLists.txt | 3 +- .../src/FastPixelClusterization.h | 2 +- .../src/PixelClusterCacheTool.cxx | 2 +- .../src/TrigL2LayerNumberTool.cxx | 2 +- graphics/GeometryJiveXML/CMakeLists.txt | 3 +- .../GeometryJiveXML/src/GeometryWriter.cxx | 2 +- .../VP12DGeometrySystems/CMakeLists.txt | 3 +- .../src/StoreGateGeometryReader.cxx | 2 +- .../VP1RawDataSystems/CMakeLists.txt | 3 +- .../src/VP1RawDataHandle_PixelRDO.cxx | 2 +- .../VP1Systems/VP1TrackSystems/CMakeLists.txt | 3 +- .../src/SimHitHandle_SiHit.cxx | 2 +- graphics/VP1/VP1Utils/CMakeLists.txt | 3 +- graphics/VP1/VP1Utils/src/VP1DetInfo.cxx | 2 +- 48 files changed, 53 insertions(+), 3079 deletions(-) delete mode 100755 InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h delete mode 100755 InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDiodeMap.h delete mode 100755 InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDiodeMatrix.h delete mode 100755 InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelModuleDesign.h delete mode 100755 InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelMultipleConnection1D.h delete mode 100755 InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelReadoutScheme.h delete mode 100755 InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDetectorManager.cxx delete mode 100755 InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDiodeMap.cxx delete mode 100755 InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDiodeMatrix.cxx delete mode 100755 InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelModuleDesign.cxx delete mode 100755 InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelMultipleConnection1D.cxx delete mode 100755 InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelReadoutScheme.cxx diff --git a/DetectorDescription/GeoModel/GeoAdaptors/CMakeLists.txt b/DetectorDescription/GeoModel/GeoAdaptors/CMakeLists.txt index 476207e339f..4af992852cc 100644 --- a/DetectorDescription/GeoModel/GeoAdaptors/CMakeLists.txt +++ b/DetectorDescription/GeoModel/GeoAdaptors/CMakeLists.txt @@ -15,6 +15,7 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/GeoPrimitives InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelReadoutGeometry InnerDetector/InDetSimEvent LArCalorimeter/LArSimEvent MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry @@ -31,5 +32,5 @@ atlas_add_library( GeoAdaptors PUBLIC_HEADERS GeoAdaptors INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} CaloIdentifier CaloSimEvent Identifier InDetIdentifier InDetReadoutGeometry InDetSimEvent LArSimEvent MuonReadoutGeometry MuonPrepRawData MuonSimEvent CaloDetDescrLib StoreGateLib SGtests MuonIdHelpersLib ) + LINK_LIBRARIES ${CLHEP_LIBRARIES} CaloIdentifier CaloSimEvent Identifier InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry InDetSimEvent LArSimEvent MuonReadoutGeometry MuonPrepRawData MuonSimEvent CaloDetDescrLib StoreGateLib SGtests MuonIdHelpersLib ) diff --git a/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoSiHit.icc b/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoSiHit.icc index 2a6c9edbdd7..807ecad9de3 100755 --- a/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoSiHit.icc +++ b/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoSiHit.icc @@ -5,7 +5,7 @@ #include "InDetSimEvent/SiHit.h" #include "InDetReadoutGeometry/SiDetectorElement.h" #include "InDetReadoutGeometry/SCT_DetectorManager.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "StoreGate/StoreGateSvc.h" #include "StoreGate/StoreGate.h" #include "InDetIdentifier/PixelID.h" diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h deleted file mode 100755 index 5954b00277d..00000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h +++ /dev/null @@ -1,195 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// PixelDectorManager.h -/////////////////////////////////////////////////////////////////// -// (c) ATLAS Detector software -/////////////////////////////////////////////////////////////////// - -#ifndef InDetReadoutGeometry_PixelDetectorManager_h -#define InDetReadoutGeometry_PixelDetectorManager_h 1 - -#include "GeoPrimitives/GeoPrimitives.h" -#include "GeoModelKernel/GeoVPhysVol.h" - -#include "InDetReadoutGeometry/SiDetectorManager.h" -#include "InDetReadoutGeometry/SiDetectorElementCollection.h" -#include "InDetReadoutGeometry/InDetDD_Defs.h" - -#include "InDetIdentifier/PixelID.h" - -#include <map> - -class StoreGateSvc; -class Identifier; -class IdentifierHash; -class GeoAlignableTransform; -class GeoVFullPhysVol; -class GeoVPhysVol; -class GeoVAlignmentStore; -class CondAttrListCollection; - -namespace InDetDD { - - class PixelModuleDesign; - class SiDetectorElement; - class ExtendedAlignableTransform; - - /** @class PixelDetectorManager - - Dedicated detector manager extending the functionality of the SiDetectorManager - with dedicated pixel information, access. - - @author: Grant Gorfine - - modified and maintained by Nick Styles & Andreas Salzburger - */ - - class PixelDetectorManager : public SiDetectorManager { - - public: - - /** Constructor */ - PixelDetectorManager(StoreGateSvc* detStore); - - /** Destructor */ - ~PixelDetectorManager(); - - /** Access to raw geometry: */ - virtual unsigned int getNumTreeTops() const override; - virtual PVConstLink getTreeTop(unsigned int i) const override; - - /** Add a Tree top: */ - void addTreeTop(PVLink); - - // - // Access Readout Elements - // - /** access to individual elements : via Identifier */ - virtual SiDetectorElement * getDetectorElement(const Identifier &id) const override; - - /** access to individual elements : via IdentifierHash */ - virtual SiDetectorElement * getDetectorElement(const IdentifierHash &idHash) const override; - - /** access to individual elements : via element identification */ - SiDetectorElement * getDetectorElement(int barrel_endcap, - int layer_wheel, - int phi_module, - int eta_module) const; - - /** access to whole collection via Iterators */ - virtual const SiDetectorElementCollection * getDetectorElementCollection() const override; - virtual SiDetectorElementCollection::const_iterator getDetectorElementBegin() const override; - virtual SiDetectorElementCollection::const_iterator getDetectorElementEnd() const override; - - /** Add elememts */ - virtual void addDetectorElement(SiDetectorElement * element) override; - - /** Add alignable transforms. No access to these, they will be changed by manager: */ - virtual void addAlignableTransform (int level, - const Identifier &id, - GeoAlignableTransform *xf, - const GeoVFullPhysVol * child); - - /** As above but does a dynamic_cast to GeoVFullPhysVol */ - virtual void addAlignableTransform (int level, - const Identifier &id, - GeoAlignableTransform *xf, - const GeoVPhysVol * child); - - // DEPRECATED - virtual void addAlignableTransform (int, - const Identifier &, - GeoAlignableTransform *) override {}; // For backward compatibility - - - /** Initialize the neighbours. This can only be done when all elements are built. */ - virtual void initNeighbours() override; - - /** Methods to query which manager we have */ - virtual bool isPixel() const override {return true;} - - /** Check identifier is for this detector */ - virtual bool identifierBelongs(const Identifier & id) const override; - - - /** Layers built. Deprecated. Recommend to access via numerology (see SiDetectorManager) - Warning: decodes in "human-readable", e.g. using 3 out of 3 pixel layers yiels 111, the laset two out of 3 in 110, etc. - */ - unsigned int getBarrelLayers() const ; - - /** Layers built. Deprecated. Recommend to access via numerology (see SiDetectorManager) - Warning: decodes in "human-readable", e.g. using 3 out of 3 pixel layers yiels 111, the laset two out of 3 in 110, etc. - */ - unsigned int getEndcapLayers() const; - - /** Access to module design, Casts to PixelModuleDesign */ - virtual const PixelModuleDesign * getPixelDesign(int i) const; - - /** Process new IBLDist DB folder **/ - bool processSpecialAlignment(const std::string &, InDetDD::AlignFolderType) const override; - - bool processSpecialAlignment(const std::string& key, - const CondAttrListCollection* obj=nullptr, - GeoVAlignmentStore* alignStore=nullptr) const override; - - /** Process new global DB folders for L1 and L2 **/ - virtual - bool processGlobalAlignment(const std::string &, int level, FrameType frame, - const CondAttrListCollection* obj, - GeoVAlignmentStore* alignStore) const override; - - private: - - /** implements the main alignment update for delta transforms in different frames, - it translates into the LocalDelta or GlobalDelta function of SiDetectorManager - */ - virtual bool setAlignableTransformDelta(int level, - const Identifier & id, - const Amg::Transform3D & delta, - FrameType frame, - GeoVAlignmentStore* alignStore) const override; - - - /** prevent copy and assignment */ - const PixelDetectorManager & operator=(const PixelDetectorManager &right); - PixelDetectorManager(const PixelDetectorManager &right); - - - virtual const PixelID * getIdHelper() const override; - - // data members - std::vector<PVLink> m_volume; - SiDetectorElementCollection m_elementCollection; - typedef std::map<Identifier, ExtendedAlignableTransform *> AlignableTransformMap; - std::vector< AlignableTransformMap > m_higherAlignableTransforms; - std::vector< ExtendedAlignableTransform *> m_alignableTransforms; - const PixelID* m_idHelper; - - // Helpful function for debugging of transforms - void printTransform(const Amg::Transform3D & tr) const; - - - /** This variable switches the how the local alignment corrections are applied - If true they will be calcualted on top of all of other corrections but in the default reference frame - If false they will be calcualted on top of all of other corrections but in the globally aligned reference frame - */ - bool m_isLogical; - - }; - -} // namespace InDetDD - -#ifndef GAUDI_NEUTRAL -#include "AthenaKernel/CLASS_DEF.h" -CLASS_DEF(InDetDD::PixelDetectorManager, 18429566, 1) - -#endif - -#endif - - - - - diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDiodeMap.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDiodeMap.h deleted file mode 100755 index a6da4c18983..00000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDiodeMap.h +++ /dev/null @@ -1,196 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// PixelDiodeMap.h -/////////////////////////////////////////////////////////////////// -// (c) ATLAS Pixel Detector software -/////////////////////////////////////////////////////////////////// - -#ifndef INDETREADOUTGEOMETRY_PIXELDIODEMAP_H -#define INDETREADOUTGEOMETRY_PIXELDIODEMAP_H - -// STL classes -#include <list> -#include <memory> -#include <vector> - -// Data member classes -#include "PixelReadoutGeometry/PixelDiodeMatrix.h" - -// Input/output classes -#include "InDetReadoutGeometry/SiCellId.h" -#include "InDetReadoutGeometry/SiDiodesParameters.h" - -namespace InDetDD { - -class SiCellId; -class PixelDiodeMatrix; - - /** @class PixelDiodeMap - - Class used to describe the diode segmentation of a pixel module - - to get the position and size of a PixelDiode object - - to get a PixelDiode object containing a space point - - to get a PixelDiode object from a PixelModulePosition - - @author: David Calvet - - modified Davide Costanzo. Replace PixelModulePosition with SiCellId - - modified: Grant Gorfine, Andreas Salzburger - */ - - class PixelDiodeMap { - - public: - - /** Constructor from Diode matrix description */ - PixelDiodeMap(std::shared_ptr<const PixelDiodeMatrix> diodeMatrix); - - /** Copy constructor: */ - PixelDiodeMap(const PixelDiodeMap &map); - - /** Destructor */ - ~PixelDiodeMap(); - - /** Assignment operator */ - PixelDiodeMap &operator=(const PixelDiodeMap &map); - - /////////////////////////////////////////////////////////////////// - // Const methods: - /////////////////////////////////////////////////////////////////// - - /** Get diodes parameters (position and size): */ - SiDiodesParameters parameters(const SiCellId & diodeId) const; - - /** cell id for a given local position */ - SiCellId cellIdOfPosition(const Amg::Vector2D & localPosition) const; - - /** Check if cellId is within range */ - SiCellId cellIdInRange(const SiCellId & cellId) const; - - /** Get the neighbouring PixelDiodes of a given PixelDiode: - Cell for which the neighbours must be found - List of cells which are neighbours of the given one */ - void neighboursOfCell(const SiCellId & cellId, - std::vector<SiCellId> &neighbours) const; - - /** Compute the intersection length of two diodes: - return: the intersection length when the two diodes are projected on one - of the two axis, or 0 in case of no intersection or problem - nput: the two diodes for which the intersection length is computed */ - double intersectionLength(const SiCellId &diode1, const SiCellId &diode2) const; - - // Global sensor size: - double leftColumn() const; - double rightColumn() const; - double leftRow() const; - double rightRow() const; - - double width() const; - double length() const; - - // Number of cells in each direction. - int phiDiodes() const; - int etaDiodes() const; - - // Total number of diodes: - int diodes() const; - - /////////////////////////////////////////////////////////////////// - // Non-const methods: - /////////////////////////////////////////////////////////////////// - /** Set general layout flag. This can be set to true to allow handling - of more complex layouts where cells are not lined up with each other - such as bricking. Probably never will be needed. */ - void setGeneralLayout() {m_generalLayout = true;} - - /////////////////////////////////////////////////////////////////// - // Private methods: - /////////////////////////////////////////////////////////////////// - private: - - /** Compute the intersection length along one direction: - return 0 if no intersection - x1,x2 are the centers - dx1,dx2 are the full lengths */ - double intersectionLength1D(const double x1,const double dx1, - const double x2,const double dx2) const; - - /** Slower method. Called by neighboursOfCell if m_generalLayout set. */ - void neighboursOfCellGeneral(const SiCellId & cellId, - std::vector<SiCellId> &neighbours) const; - - /** Slower method. Called by intersectionLength if m_generalLayout set. */ - double intersectionLengthGeneral(const SiCellId &diode1, - const SiCellId &diode2) const; - - - /////////////////////////////////////////////////////////////////// - // Private data: - /////////////////////////////////////////////////////////////////// - private: - std::shared_ptr<const PixelDiodeMatrix> m_matrix; //!< diode matrix - bool m_generalLayout; //!< Flag set to allow for dealing wth more general layouts. - }; - - /////////////////////////////////////////////////////////////////// - // Inline methods: - /////////////////////////////////////////////////////////////////// - - inline double PixelDiodeMap::length() const - { - return m_matrix->etaWidth(); - } - - inline double PixelDiodeMap::width() const - { - return m_matrix->phiWidth(); - } - - inline double PixelDiodeMap::leftColumn() const - { - return -0.5*length(); - } - - inline double PixelDiodeMap::rightColumn() const - { - return 0.5*length(); - } - - inline double PixelDiodeMap::leftRow() const - { - return -0.5*width(); - } - - inline double PixelDiodeMap::rightRow() const - { - return 0.5*width(); - } - - inline int PixelDiodeMap::diodes() const - { - return phiDiodes() * etaDiodes(); - } - - inline int PixelDiodeMap::phiDiodes() const - { - return m_matrix->phiCells(); - } - - inline int PixelDiodeMap::etaDiodes() const - { - return m_matrix->etaCells(); - } - - inline SiCellId PixelDiodeMap::cellIdInRange(const SiCellId & cellId) const - { - if (!cellId.isValid() || - cellId.phiIndex() <0 || cellId.phiIndex() >= phiDiodes() || - cellId.etaIndex() <0 || cellId.etaIndex() >= etaDiodes()) return SiCellId(); // Invalid - return cellId; - } - -} // namespace InDetDD - -#endif // INDETREADOUTGEOMETRY_PIXELDIODEMAP_H diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDiodeMatrix.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDiodeMatrix.h deleted file mode 100755 index 53ec66cc27b..00000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDiodeMatrix.h +++ /dev/null @@ -1,202 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// PixelDiodeMatrix.h -/////////////////////////////////////////////////////////////////// - -#ifndef INDETREADOUTGEOMETRY_PIXELDIODEMATRIX_H -#define INDETREADOUTGEOMETRY_PIXELDIODEMATRIX_H - -#include "InDetReadoutGeometry/SiCellId.h" -#include "GeoPrimitives/GeoPrimitives.h" -#include "TrkDetElementBase/TrkDetElementBase.h" - -#include <memory> - -namespace InDetDD { - - /** @class PixelDiodeMatrix - - Class used to describe the segmentation of the pixel and allow for conversion between cell id and position. - - The class PixelDiodeMatrix represents what it calls a cell. In the context - of this class a cell can either be just a simple cell as one would normally - think of a pixel cell (eg a 50x400um or 50x600um cell) or it can be a - container of multiple cells. To allow for different size cells and layout, - it contains a lower cell, an upper cell and multiple middle - cells. The middle cells are all the same (so all have the same size), but - the upper and lower cells can be different and can have different size or be left out - if they are not needed. The direction of replication is also specified (eta - or phi direction). The size of the cells in the direction orthoganal to the - replication direction must all be the same (there is no check for this though). - - To help understand the structure and its use, consider the current pixel - geometry. The pixel module has two cell sizes short and long cells. These - are refered to as normal and big bellow. The long cells are in the region - at the edge of the the FE chips in order to cover the gap between FE chips. - - The assembly of this structure is done when building the sensitive detector - in GeoModel in the class GeoPixelSiCrystal. - - - normalCell (short pixel cell) 50x400um - - bigCell (long pixel cell): 50x600um - - - singleChipRow (represents one row associated to a FE) - - Size: phiWidth = 50um, etaWidth = 600*2+400*16) um = 7.6 CLHEP::mm - - upper cell: bigCell - - middle cells: 16 x normalCell - - lower cell: bigcell - - direction: eta - - - singleRow (represents a row of cells covering the full length of the - module) - - Size: phiWidth = 50um, etaWidth = 8 * (600*2+400*16) um = 60.8 CLHEP::mm - - upper cell: none - - middle cells: 8 x singleChipRow - - lower cell: none - - direction: eta - - - fullMatrix (represents the full module) - - Size: phiWidth = 50 * 328 um = 16.4 CLHEP::mm, etaWidth = 60.8 CLHEP::mm - - upper cell: none - - middle cells: 328 x singleRow - - lower cell: non - - direction: phi - - Each cell knows its total size and total number of child cells in the phi and eta - direction. This is determined by totaling up these quantities - when the object is constructed. - - The structure allows for efficient navigation from cell number to - position and vice-versa. There are two main methods which allow for this navigation: - cellIdOfPosition() (from cell id to position) and positionOfCell() (from position to cell id). - - As it is assumed that child cells fill up completely its parent, there is - no range check in these methods. The methods are called from PixelDiodeMap - where it first checks that is within range of the top level cell (refered to - as the top level matrix). - - PixelDiodeMatrix might inherit std::shared_ptr but needs to return std::shared_ptr of this pointer. - To do this, std::enable_shared_from_this and shared_from_this() have to be used. - https://en.cppreference.com/w/cpp/memory/enable_shared_from_this - - See the description of these methods for more details. - - @image html pixeldiodematrix.gif - - @author Grant Gorfine - - modified & maintained: Nick Styles, Andreas Salzburger - **/ - - class PixelDiodeMatrix : public std::enable_shared_from_this<PixelDiodeMatrix> { - - public: - - enum Direction {phiDir, etaDir}; - - /// Destructor - ~PixelDiodeMatrix() = default; - - /// Construct method for just a single cell. - static std::shared_ptr<const PixelDiodeMatrix> construct(double phiWidth, double etaWidth); - - /** Construct method with multiple matrices. - There may be zero or one lower matrix (pointer can be 0). - Multiple (numCells) middle matrics (must pass a non zero pointer). - There may be zero or one upper matrix (pointer can be 0). - These must all have the same width and cells in the non replicating direction. */ - static std::shared_ptr<const PixelDiodeMatrix> construct(Direction direction, // phi or eta - std::shared_ptr<const PixelDiodeMatrix> lowerCell, - std::shared_ptr<const PixelDiodeMatrix> middleCells, - int numCells, - std::shared_ptr<const PixelDiodeMatrix> upperCells); - - /** Return cell Id corresponding to a relative position within the matrix. - The cellId is modified and returns the id relative to the passed cellId. - That is, it adds the relative cellId to the cellId passed to the function. - A pointer to the correspond cell is returned. This can be used to get the - size of the cell. */ - std::shared_ptr<const PixelDiodeMatrix> cellIdOfPosition(const Amg::Vector2D & position, SiCellId & cellId) const; - - /** Return position correspong to cell with relative id withing the matrix. - Returns the relative position added to the position passed in. - A pointer to the correspond cell is returned. This can be used to get the - size of the cell. */ - std::shared_ptr<const PixelDiodeMatrix> positionOfCell(const SiCellId & cellId, Amg::Vector2D & position) const; - - /** Width in phi (x) direction.*/ - double phiWidth() const; - - /** Width in eta (y) direction. */ - double etaWidth() const; - - /** Number of cells in phi (x) direction. */ - int phiCells() const; - - /** Number of cells in eta (y) direction. */ - int etaCells() const; - - /** Query wether the matrix is just a single cell. Mainly for internal use. */ - bool singleCell() const; - - private: - /** Hidden constructor */ - PixelDiodeMatrix() {}; - - /// Initialize for just a single cell. - void initialize(double phiWidth, double etaWidth); - - /** Initialize for multiple matrices. - There may be zero or one lower matrix (pointer can be 0). - Multiple (numCells) middle matrics (must pass a non zero pointer). - There may be zero or one upper matrix (pointer can be 0). - These must all have the same width and cells in the non replicating direction. */ - void initialize(Direction direction, // phi or eta - std::shared_ptr<const PixelDiodeMatrix> lowerCell, - std::shared_ptr<const PixelDiodeMatrix> middleCells, - int numCells, - std::shared_ptr<const PixelDiodeMatrix> upperCells); - - double m_phiWidth; - double m_etaWidth; - int m_phiCells; - int m_etaCells; - Direction m_direction; - int m_numCells; // number of MiddleCells along m_direction direction. - std::shared_ptr<const PixelDiodeMatrix> m_lowerCell; - std::shared_ptr<const PixelDiodeMatrix> m_middleCells; - std::shared_ptr<const PixelDiodeMatrix> m_upperCell; - bool m_singleCell; - - }; - - inline double PixelDiodeMatrix::phiWidth() const - { - return m_phiWidth; - } - - inline double PixelDiodeMatrix::etaWidth() const - { - return m_etaWidth; - } - - inline int PixelDiodeMatrix::phiCells() const - { - return m_phiCells; - } - - inline int PixelDiodeMatrix::etaCells() const - { - return m_etaCells; - } - - inline bool PixelDiodeMatrix::singleCell() const - { - return m_singleCell; - } - -} // end namespace - -#endif //INDETREADOUTGEOMETRY_PIXELDIODEMATRIX_H diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelModuleDesign.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelModuleDesign.h deleted file mode 100755 index 400f00af8ae..00000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelModuleDesign.h +++ /dev/null @@ -1,354 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// PixelModuleDesign.h -/////////////////////////////////////////////////////////////////// -// (c) ATLAS Pixel Detector software -/////////////////////////////////////////////////////////////////// - - -#ifndef INDETREADOUTGEOMETRY_PIXELMODULEDESIGN_H -#define INDETREADOUTGEOMETRY_PIXELMODULEDESIGN_H - -// Base class -#include "InDetReadoutGeometry/SiDetectorDesign.h" - -// Data member classes -#include "PixelReadoutGeometry/PixelDiodeMap.h" -#include "PixelReadoutGeometry/PixelReadoutScheme.h" - -// Other includes -#include "CxxUtils/CachedUniquePtr.h" -#include "InDetIdentifier/PixelID.h" - -#include <memory> - -namespace Trk{ - class RectangleBounds; - class SurfaceBounds; -} - -namespace InDetDD { - - class PixelDiodeMatrix; - - /** @class PixelModuleDesign - Class used to describe the design of a module - (diode segmentation and readout scheme) - - - to get the PixelReadoutCell connected to a PixelDiode - - to get the list of PixelDiodes connected to a PixelReadoutCell - - @author Alessandro Fornaini - - modified: Grant Gorfine, Nick Styles, Andreas Salzburger - */ - class PixelModuleDesign : public SiDetectorDesign { - - /////////////////////////////////////////////////////////////////// - // Public methods: - /////////////////////////////////////////////////////////////////// - public: - - /////////////////////////////////////////////////////////////////// - // Constructors/destructor: - /////////////////////////////////////////////////////////////////// - - /** Constructor with parameters: - local axis corresponding to eta direction - local axis corresponding to phi direction - local axis corresponding to depth direction - thickness of silicon sensor - number of circuits in one circuit column - number of circuits in one circuit row - number of cell columns per circuit - number of cell rows per circuit - number of diode columns connected to one circuit - number of diode rows connected to one circuit */ - - PixelModuleDesign(const double thickness, - const int circuitsPerColumn, - const int circuitsPerRow, - const int cellColumnsPerCircuit, - const int cellRowsPerCircuit, - const int diodeColumnsPerCircuit, - const int diodeRowsPerCircuit, - std::shared_ptr<const PixelDiodeMatrix> matrix, - InDetDD::CarrierType carrierType, - int readoutSide = -1, - bool is3D=false); - - // Destructor: - virtual ~PixelModuleDesign() = default; - - /////////////////////////////////////////////////////////////////// - // Const methods: - /////////////////////////////////////////////////////////////////// - - /** Returns distance to nearest detector active edge - +ve = inside - -ve = outside */ - virtual void distanceToDetectorEdge(const SiLocalPosition & localPosition, - double & etaDist, double & phiDist) const; - - /** readout or diode id -> position, size */ - virtual SiDiodesParameters parameters(const SiCellId & cellId) const; - virtual SiLocalPosition localPositionOfCell(const SiCellId & cellId) const; - - /** readout id -> id of connected diodes */ - virtual int numberOfConnectedCells(const SiReadoutCellId & readoutId) const; - virtual SiCellId connectedCell(const SiReadoutCellId & readoutId, int number) const; - - /** If cell is ganged return the other cell, otherwise return an invalid id. */ - virtual SiCellId gangedCell(const SiCellId & cellId) const; - - /** diode id -> readout id */ - virtual SiReadoutCellId readoutIdOfCell(const SiCellId & cellId) const; - - /** position -> id */ - virtual SiReadoutCellId readoutIdOfPosition(const SiLocalPosition & localPos) const; - virtual SiCellId cellIdOfPosition(const SiLocalPosition & localPos) const; - - /** Check if cell is in range. Returns the original cellId if it is in range, otherwise it returns an invalid id. */ - virtual SiCellId cellIdInRange(const SiCellId & cellId) const; - - /** Helper method for stereo angle computation */ - virtual HepGeom::Vector3D<double> phiMeasureSegment(const SiLocalPosition&) const; - - /** Special method for SCT (irrelevant here): */ - virtual std::pair<SiLocalPosition,SiLocalPosition> endsOfStrip(const SiLocalPosition &position) const; - - /** Given row and column index of a diode, return position of diode center - ALTERNATIVE/PREFERED way is to use localPositionOfCell(const SiCellId & cellId) or - rawLocalPositionOfCell method in SiDetectorElement. - DEPRECATED */ - SiLocalPosition positionFromColumnRow(const int column, const int row) const; - - /** Get the neighbouring diodes of a given diode: - Cell for which the neighbours must be found - List of cells which are neighbours of the given one */ - virtual void neighboursOfCell(const SiCellId & cellId, - std::vector<SiCellId> &neighbours) const; - - /** Compute the intersection length of two diodes: - return: the intersection length when the two diodes are projected on one - of the two axis, or 0 in case of no intersection or problem - input: the two diodes for which the intersection length is computed */ - double intersectionLength(const SiCellId &diode1, const SiCellId &diode2) const; - - /** Global sensor size: */ - double sensorLeftColumn() const; - double sensorRightColumn() const; - double sensorLeftRow() const; - double sensorRightRow() const; - - /** Total number of diodes: */ - int numberOfDiodes() const; - - /** Total number of circuits:*/ - int numberOfCircuits() const; - - /** Number of cell columns per circuit:*/ - int columnsPerCircuit() const; - - /** Number of cell rows per circuit:*/ - int rowsPerCircuit() const; - - /** Number of cell columns per module:*/ - int columns() const; - - /** Number of cell rows per module:*/ - int rows() const; - - /** Method to calculate length of a module*/ - virtual double length() const; - - /** Method to calculate average width of a module*/ - virtual double width() const; - - /** Method to calculate minimum width of a module*/ - virtual double minWidth() const; - - /** Method to calculate maximum width of a module*/ - virtual double maxWidth() const; - - /** Pitch in phi direction*/ - virtual double phiPitch() const; - - /** Pitch in phi direction*/ - virtual double phiPitch(const SiLocalPosition & localPosition) const; - - /** Pitch in eta direction*/ - virtual double etaPitch() const; - - /** Method to calculate eta width from a column range*/ - double widthFromColumnRange(const int colMin, const int colMax) const; - - /** Method to calculate phi width from a row range*/ - double widthFromRowRange(const int rowMin, const int rowMax) const; - - /** Test if near bond gap within tolerances - Only relevant for SCT. Always returns false for pixels.*/ - virtual bool nearBondGap(const SiLocalPosition & localPosition, double etaTol) const; - - /** Return true if hit local direction is the same as readout direction.*/ - virtual bool swapHitPhiReadoutDirection() const; - virtual bool swapHitEtaReadoutDirection() const; - - /** Element boundary*/ - virtual const Trk::SurfaceBounds & bounds() const; - - virtual bool is3D() const; - - enum ReadoutTechnology{FEI3,FEI4,RD53}; - ReadoutTechnology getReadoutTechnology() const; - - - /////////////////////////////////////////////////////////////////// - // Non-const methods: - /////////////////////////////////////////////////////////////////// - - - /** Add a new multiple connection for rows: - lower diode row for which the connection scheme is given - vector containing, for each diode, the readout cell row number - to which the corresponding diode is connected */ - void addMultipleRowConnection(const int lowerRow, - const std::vector<int> &connections); - - /** Indicate that it is a more complex layout where cells are not - lined up with each other. Eg bricking. Probably never will be needed. */ - void setGeneralLayout(); - - /////////////////////////////////////////////////////////////////// - // Private methods: - /////////////////////////////////////////////////////////////////// - private: - - PixelModuleDesign(); - - // Copy constructor: - PixelModuleDesign(const PixelModuleDesign &design); - - // Assignment operator: - PixelModuleDesign &operator=(const PixelModuleDesign &design); - - - /////////////////////////////////////////////////////////////////// - // Private data: - /////////////////////////////////////////////////////////////////// - private: - PixelDiodeMap m_diodeMap; - PixelReadoutScheme m_readoutScheme; - CxxUtils::CachedUniquePtr<Trk::RectangleBounds> m_bounds; - bool m_is3D; - - }; - - /////////////////////////////////////////////////////////////////// - // Inline methods: - /////////////////////////////////////////////////////////////////// - - inline void PixelModuleDesign::addMultipleRowConnection(const int lowerRow, - const std::vector<int> &connections) - { - m_readoutScheme.addMultipleRowConnection(lowerRow,connections); - } - - inline double PixelModuleDesign::sensorLeftColumn() const - { - return m_diodeMap.leftColumn(); - } - - inline double PixelModuleDesign::sensorRightColumn() const - { - return m_diodeMap.rightColumn(); - } - - inline double PixelModuleDesign::sensorLeftRow() const - { - return m_diodeMap.leftRow(); - } - - inline double PixelModuleDesign::sensorRightRow() const - { - return m_diodeMap.rightRow(); - } - - inline int PixelModuleDesign::numberOfDiodes() const - { - return m_diodeMap.diodes(); - } - - inline int PixelModuleDesign::numberOfCircuits() const - { - return m_readoutScheme.numberOfCircuits(); - } - - inline int PixelModuleDesign::columnsPerCircuit() const - { - return m_readoutScheme.columnsPerCircuit(); - } - - inline int PixelModuleDesign::rowsPerCircuit() const - { - return m_readoutScheme.rowsPerCircuit(); - } - - inline int PixelModuleDesign::columns() const - { - return m_readoutScheme.columns(); - } - - inline int PixelModuleDesign::rows() const - { - return m_readoutScheme.rows(); - } - - inline bool PixelModuleDesign::nearBondGap(const SiLocalPosition &, double) const - { - // No bond gap in pixel module - return false; - } - - inline bool PixelModuleDesign::swapHitPhiReadoutDirection() const - { - return true; - } - - inline bool PixelModuleDesign::swapHitEtaReadoutDirection() const - { - return true; - } - - - inline void PixelModuleDesign::neighboursOfCell(const SiCellId & cellId, - std::vector<SiCellId> &neighbours) const - { - return m_diodeMap.neighboursOfCell(cellId, neighbours); - } - - inline double PixelModuleDesign::intersectionLength(const SiCellId &diode1, - const SiCellId &diode2) const - { - return m_diodeMap.intersectionLength(diode1, diode2); - } - - - - inline bool PixelModuleDesign::is3D() const - { - return m_is3D; - } - - inline PixelModuleDesign::ReadoutTechnology PixelModuleDesign::getReadoutTechnology() const { - const int maxRow = m_readoutScheme.rowsPerCircuit(); - const int maxCol = m_readoutScheme.columnsPerCircuit(); - if (maxRow*maxCol>26000) { return FEI4; } - else { return FEI3; } - } - -} // namespace InDetDD - -#endif // INDETREADOUTGEOMETRY_PIXELMODULEDESIGN_H diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelMultipleConnection1D.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelMultipleConnection1D.h deleted file mode 100755 index 1e605eaceee..00000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelMultipleConnection1D.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// PixelMultipleConnection1D.h -/////////////////////////////////////////////////////////////////// -// (c) ATLAS Pixel Detector software -/////////////////////////////////////////////////////////////////// - - -#ifndef INDETREADOUTGEOMETRY_PIXELMULTIPLECONNECTION1D_H -#define INDETREADOUTGEOMETRY_PIXELMULTIPLECONNECTION1D_H - -#include <vector> - -namespace InDetDD { - - /** @class PixelMultipleConnection1D - - Class used to handle connection of multiple diodes to the same readout cell - - @author: David Calvet - @note: modifed by Grant Gorfine, Andreas Salzburger - */ - - class PixelMultipleConnection1D { - - /////////////////////////////////////////////////////////////////// - // Public methods: - /////////////////////////////////////////////////////////////////// - public: - - PixelMultipleConnection1D(); - - /** Constructor with parameters: - lower diode index for which the connection scheme is given - vector containing, for each diode, the readout cell number to which - the corresponding diode is connected */ - PixelMultipleConnection1D(const int lowerIndex, const std::vector<int> &connections); - - - void set(const int lowerIndex, const std::vector<int> &connections); - - - /////////////////////////////////////////////////////////////////// - // Const methods: - /////////////////////////////////////////////////////////////////// - - /** Check if the readout cell is in the range; Also for index of gangedCell. */ - bool outsideReadout(const int index) const; - - /** Check if the diode is in the range: */ - bool outsideDiode(const int cell) const; - - /** Return the number of diodes that are connected to this readout cell, Must check outsideReadout first. */ - int numberOfConnectedCells(const int index) const; - - /** Return the diode index corresponding the this readout. - number 0 will return the primary cell (ie diode index = readout cell index) - Must check outsideReadout first.*/ - int connectedCell(const int index, unsigned int number) const; - - /** Return readout cell id of this diode, Must check outsideDiode first. */ - int readoutOfDiode(const int index) const; - - /** If the diode is gnaged return the other diode. If the diode is not ganged return the same diode. - Must check outsideReadout first. */ - int gangedCell(const int index) const; - - /////////////////////////////////////////////////////////////////// - // Private data: - /////////////////////////////////////////////////////////////////// - private: - int m_lowerDiode; //!< lower diode index to which it applies - int m_upperDiode; //!< upper diode index to which it applies - int m_lowerReadout; //!< lower cell to which it applies - int m_upperReadout; //!< upper cell to which it applies - std::vector< std::vector<int> > m_readoutToDiode; //!< connection table readout -> diodes - std::vector<int> m_diodeToReadout; //!< connection table diode -> readout - std::vector<int> m_diodeGanged; //!< connection table diode -> other diode. - - /////////////////////////////////////////////////////////////////// - // Private methods: - /////////////////////////////////////////////////////////////////// - void debugPrintout(); - -}; - -/////////////////////////////////////////////////////////////////// -// Inline methods: -/////////////////////////////////////////////////////////////////// - -inline bool PixelMultipleConnection1D::outsideReadout(const int readout) const -{ - return (readout<m_lowerReadout || readout>m_upperReadout); -} - - -inline bool PixelMultipleConnection1D::outsideDiode(const int diode) const -{ - return (diode<m_lowerDiode || diode>m_upperDiode); -} - - -inline int PixelMultipleConnection1D::numberOfConnectedCells(const int index) const -{ - return m_readoutToDiode[index - m_lowerReadout].size(); -} - -inline int PixelMultipleConnection1D::connectedCell(const int index, unsigned int number) const -{ - return m_readoutToDiode[index - m_lowerReadout][number]; -} - -inline int PixelMultipleConnection1D::readoutOfDiode(const int index) const -{ - return m_diodeToReadout[index - m_lowerDiode]; -} - -inline int PixelMultipleConnection1D::gangedCell(const int index) const -{ - return m_diodeGanged[index - m_lowerReadout]; -} - -} // namespace InDetDD - -#endif // INDETREADOUTGEOMETRY_PIXELMULTIPLECONNECTION1D_H diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelReadoutScheme.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelReadoutScheme.h deleted file mode 100755 index ad377034ed7..00000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelReadoutScheme.h +++ /dev/null @@ -1,157 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// PixelReadoutScheme.h -/////////////////////////////////////////////////////////////////// -// (c) ATLAS Pixel Detector software -/////////////////////////////////////////////////////////////////// - -#ifndef INDETREADOUTGEOMETRY_PIXELREADOUTSCHEME_H -#define INDETREADOUTGEOMETRY_PIXELREADOUTSCHEME_H - -// Data member classes -#include "PixelReadoutGeometry/PixelMultipleConnection1D.h" - -// Input and output classes -#include "InDetReadoutGeometry/SiReadoutCellId.h" -#include "InDetReadoutGeometry/SiCellId.h" - -namespace InDetDD { - - /** @class PixelReadoutScheme - - Class used to describe the connection scheme of a diode matrix - to a set of readout circuits - - to get the readout cell connected to a diode - - to get the list of diodes connected to a readout cell - - @author David Calvet - - modified on 5/10/04 Davide Costanzo. Replace PixelModulePosition with SiCellId - - modified: Grant Gorfine, Andreas Salzburger - */ - - class PixelReadoutScheme { - - /////////////////////////////////////////////////////////////////// - // Public methods: - /////////////////////////////////////////////////////////////////// - public: - - /////////////////////////////////////////////////////////////////// - // Constructors/destructor: - /////////////////////////////////////////////////////////////////// - - /** Constructor with parameters: - - number of circuits in one circuit column - number of circuits in one circuit row - number of cell columns per circuit - number of cell rows per circuit - number of diode columns connected to one circuit - number of diode rows connected to one circuit */ - PixelReadoutScheme(const int circuitsPerColumn,const int circuitsPerRow, - const int cellColumnsPerCircuit, - const int cellRowsPerCircuit, - const int diodeColumnsPerCircuit, - const int diodeRowsPerCircuit); - - /** Destructor: */ - ~PixelReadoutScheme(); - - /////////////////////////////////////////////////////////////////// - // Const methods: - /////////////////////////////////////////////////////////////////// - - /** total number of circuits: */ - int numberOfCircuits() const; - - /** number of cell columns per circuit: */ - int columnsPerCircuit() const; - - /** number of cell rows per circuit:*/ - int rowsPerCircuit() const; - - /** number of cell columns per module:*/ - int columns() const; - - /** number of cell rows per module:*/ - int rows() const; - - /** number of cells connected to this readout.*/ - int numberOfConnectedCells(const SiReadoutCellId & readoutId) const; - - /** Cell ids of cell connected to this readout.*/ - SiCellId connectedCell(const SiReadoutCellId & readoutId, unsigned int number) const; - - /** Readout id of this diode.*/ - SiReadoutCellId readoutIdOfCell(const SiCellId & cellId) const; - - /** If cell is ganged return the other cell, otherwise return an invalid id.*/ - SiCellId gangedCell(const SiCellId & cellId) const; - - /////////////////////////////////////////////////////////////////// - // Non-const methods: - /////////////////////////////////////////////////////////////////// - - /** Add a new multiple connection for rows: - lower diode row for which the connection scheme is given - vector containing, for each diode, the readout cell row number - to which the corresponding diode is connected */ - void addMultipleRowConnection(const int lowerRow, const std::vector<int> &connections); - - /////////////////////////////////////////////////////////////////// - // Private methods: - /////////////////////////////////////////////////////////////////// - private: - - PixelReadoutScheme(); - - /////////////////////////////////////////////////////////////////// - // Private data: - /////////////////////////////////////////////////////////////////// - private: - PixelMultipleConnection1D m_rowConnections; //!< multiple connections for rows - int m_numberOfCircuits; //!< total number of circuits - int m_columnsPerCircuit; //!< number of cell columns per circuit - int m_rowsPerCircuit; //!< number of cell rows per circuit - int m_columns; //!< Number of columns - int m_rows; //!< Number of rows - -}; - -/////////////////////////////////////////////////////////////////// -// Inline methods: -/////////////////////////////////////////////////////////////////// -inline PixelReadoutScheme::~PixelReadoutScheme() -{} - -inline int PixelReadoutScheme::numberOfCircuits() const -{ - return m_numberOfCircuits; -} - -inline int PixelReadoutScheme::columnsPerCircuit() const -{ - return m_columnsPerCircuit; -} - -inline int PixelReadoutScheme::rowsPerCircuit() const -{ - return m_rowsPerCircuit; -} - -inline int PixelReadoutScheme::columns() const -{ - return m_columns; -} - -inline int PixelReadoutScheme::rows() const -{ - return m_rows; -} - -} // namespace InDetDD - -#endif // INDETREADOUTGEOMETRY_PIXELREADOUTSCHEME_H diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDetectorManager.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDetectorManager.cxx deleted file mode 100755 index b6152e76bd0..00000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDetectorManager.cxx +++ /dev/null @@ -1,684 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -#include "DetDescrConditions/AlignableTransformContainer.h" -#include "DetDescrConditions/AlignableTransform.h" -#include "AthenaPoolUtilities/CondAttrListCollection.h" - -#include "InDetReadoutGeometry/PixelDetectorManager.h" -#include "InDetIdentifier/PixelID.h" -#include "Identifier/Identifier.h" -#include "Identifier/IdentifierHash.h" -#include "InDetReadoutGeometry/SiDetectorElementCollection.h" -#include "InDetReadoutGeometry/SiDetectorElement.h" -#include "InDetReadoutGeometry/ExtendedAlignableTransform.h" -#include "InDetReadoutGeometry/PixelModuleDesign.h" -#include "StoreGate/StoreGateSvc.h" - -#include "GeoModelKernel/GeoVAlignmentStore.h" -#include "AthenaBaseComps/AthMsgStreamMacros.h" -#include "GeoPrimitives/GeoPrimitivesHelpers.h" - -namespace InDetDD { - - const int FIRST_HIGHER_LEVEL = 1; - - - PixelDetectorManager::PixelDetectorManager(StoreGateSvc* detStore) - : SiDetectorManager(detStore, "Pixel"), - m_idHelper(0), - m_isLogical(false) // Change to true to change the definition of local module corrections - { - - // - // Initialized the Identifier helper. - // - - StatusCode sc = detStore->retrieve(m_idHelper,"PixelID"); - if (sc.isFailure() ) { - msg(MSG::ERROR) << "Could not retrieve Pixel id helper" << endmsg; - } - - // Initialize the collections. - if (m_idHelper) { - m_elementCollection.resize(m_idHelper->wafer_hash_max()); - m_alignableTransforms.resize(m_idHelper->wafer_hash_max()); - } - } - - - PixelDetectorManager::~PixelDetectorManager() - { - // Clean up - for (size_t i=0; i < m_volume.size(); i++) { - m_volume[i]->unref(); - } - - for (size_t j=0; j < m_higherAlignableTransforms.size(); j++){ - AlignableTransformMap::iterator iterMap; - for (iterMap = m_higherAlignableTransforms[j].begin(); - iterMap != m_higherAlignableTransforms[j].end(); - ++iterMap) { - delete iterMap->second; - } - } - - for (size_t k=0; k < m_alignableTransforms.size(); k++){ - delete m_alignableTransforms[k]; - } - } - - - - unsigned int PixelDetectorManager::getNumTreeTops() const - { - return m_volume.size(); - } - - PVConstLink PixelDetectorManager::getTreeTop(unsigned int i) const - { - return m_volume[i]; - } - - void PixelDetectorManager::addTreeTop(PVLink vol){ - vol->ref(); - m_volume.push_back(vol); - } - - - SiDetectorElement* PixelDetectorManager::getDetectorElement(const Identifier & id) const - { - // NB the id helpers implementation for getting a hash is not optimal. - // Essentially does a binary search. - // Make sure it is a wafer Id - Identifier waferId = id; -#ifndef __IDENTIFIER_64BIT__ - // pixel ids have special treatement. It is possible to distinguish between - // a wafer id and a pixel cell id by checking bit 32, which is set for a pixel cell id. - if (id.is_valid() && (id.get_compact() & 0x80000000)) { - waferId = m_idHelper->wafer_id(id); - } -#else - waferId = m_idHelper->wafer_id(id); -#endif /* __IDENTIFIER_64BIT__ */ - IdentifierHash idHash = m_idHelper->wafer_hash(waferId); - if (idHash.is_valid()) { - return m_elementCollection[idHash]; - } else { - return 0; - } - } - - - SiDetectorElement* PixelDetectorManager::getDetectorElement(const IdentifierHash & idHash) const - { - return m_elementCollection[idHash]; - } - - SiDetectorElement* PixelDetectorManager::getDetectorElement(int barrel_endcap, int layer_wheel, int phi_module, int eta_module) const - { - return getDetectorElement(m_idHelper->wafer_id(barrel_endcap, layer_wheel, phi_module, eta_module)); - } - - const SiDetectorElementCollection* PixelDetectorManager::getDetectorElementCollection() const - { - return &m_elementCollection; - } - - SiDetectorElementCollection::const_iterator PixelDetectorManager::getDetectorElementBegin() const - { - return m_elementCollection.begin(); - } - - SiDetectorElementCollection::const_iterator PixelDetectorManager::getDetectorElementEnd() const - { - return m_elementCollection.end(); - } - - - void PixelDetectorManager::addDetectorElement(SiDetectorElement * element) - { - IdentifierHash idHash = element->identifyHash(); - if (idHash >= m_elementCollection.size()) - throw std::runtime_error("PixelDetectorManager: Error adding detector element."); - m_elementCollection[idHash] = element; - } - - void PixelDetectorManager::initNeighbours() - { - SiDetectorElementCollection::iterator iter; - - // Loop over all elements and set the neighbours - for (iter = m_elementCollection.begin(); iter != m_elementCollection.end(); ++iter){ - - SiDetectorElement * element = *iter; - if (element) { - - IdentifierHash idHash = element->identifyHash(); - IdentifierHash idHashOther; - - int result; - // If no neighbour, result != 0 in which case we leave neighbour as null - result = m_idHelper->get_next_in_eta(idHash, idHashOther); - if (result==0) element->setNextInEta(m_elementCollection[idHashOther]); - - result = m_idHelper->get_prev_in_eta(idHash, idHashOther); - if (result==0) element->setPrevInEta(m_elementCollection[idHashOther]); - - result = m_idHelper->get_next_in_phi(idHash, idHashOther); - if (result==0) element->setNextInPhi(m_elementCollection[idHashOther]); - - result = m_idHelper->get_prev_in_phi(idHash, idHashOther); - if (result==0) element->setPrevInPhi(m_elementCollection[idHashOther]); - } - } - } - - - const PixelID* PixelDetectorManager::getIdHelper() const - { - return m_idHelper; - } - - unsigned int PixelDetectorManager::getBarrelLayers() const - { - unsigned int barrelLayers = 0; - for (int i = numerology().numLayers() - 1; i >= 0; --i) { - barrelLayers *= 10; - barrelLayers += numerology().useLayer(i); - } - return barrelLayers; - } - - unsigned int PixelDetectorManager::getEndcapLayers() const - { - unsigned int endcapLayers = 0; - for (int i = numerology().numDisks() - 1; i >= 0; --i) { - endcapLayers *= 10; - endcapLayers += numerology().useDisk(i); - } - return endcapLayers; - } - - - bool PixelDetectorManager::setAlignableTransformDelta(int level, - const Identifier & id, - const Amg::Transform3D & delta, - FrameType frame, - GeoVAlignmentStore* alignStore) const - { - - if (level == 0) { // At the element level - local shift - - // We retrieve it via a hashId. - IdentifierHash idHash = m_idHelper->wafer_hash(id); - if (!idHash.is_valid()) return false; - - if (frame == InDetDD::global) { - - return setAlignableTransformGlobalDelta(m_alignableTransforms[idHash], delta, alignStore); - - } else if (frame == InDetDD::local) { - - SiDetectorElement * element = m_elementCollection[idHash]; - if (!element) return false; - - // Its a local transform - //See header file for definition of m_isLogical - if( m_isLogical ){ - //Ensure cache is up to date and use the alignment corrected local to global transform - element->setCache(); - return setAlignableTransformLocalDelta(m_alignableTransforms[idHash], element->transform(), delta, alignStore); - } else - //Use default local to global transform - return setAlignableTransformLocalDelta(m_alignableTransforms[idHash], element->defTransform(), delta, alignStore); - } else { - // other not supported - msg(MSG::WARNING) << "Frames other than global or local are not supported." << endmsg; - return false; - } - - } else { // higher level - - if (frame != InDetDD::global) { - msg(MSG::WARNING) << "Non global shift at higher levels is not possible." << endmsg; - return false; - } - - int index = level - FIRST_HIGHER_LEVEL; // level 0 is treated separately. - if (index >= static_cast<int>(m_higherAlignableTransforms.size())) return false; - - // We retrieve it from a map. - AlignableTransformMap::const_iterator iter; - iter = m_higherAlignableTransforms[index].find(id); - if (iter == m_higherAlignableTransforms[index].end()) return false; - - // Its a global transform - return setAlignableTransformGlobalDelta(iter->second, delta, alignStore); - } - - } - - - void PixelDetectorManager::addAlignableTransform (int level, - const Identifier & id, - GeoAlignableTransform *transform, - const GeoVPhysVol * child) - { - if (m_idHelper) { - - const GeoVFullPhysVol * childFPV = dynamic_cast<const GeoVFullPhysVol *>(child); - if (!childFPV) { - msg(MSG::ERROR) << "Child of alignable transform is not a full physical volume" - << endmsg; - } else { - addAlignableTransform (level, id, transform, childFPV); - } - } - } - - void PixelDetectorManager::addAlignableTransform (int level, - const Identifier & id, - GeoAlignableTransform *transform, - const GeoVFullPhysVol * child) - { - if (m_idHelper) { - if (level == 0) { - IdentifierHash idHash = m_idHelper->wafer_hash(id); - if (idHash.is_valid()) { - m_alignableTransforms[idHash]= new ExtendedAlignableTransform(transform, child); - } - } else { - // Higher levels are saved in a map. NB the index is level-1 as level=0 is treated above. - int index = level - FIRST_HIGHER_LEVEL; - if (index >= static_cast<int>(m_higherAlignableTransforms.size())) m_higherAlignableTransforms.resize(index+1); - m_higherAlignableTransforms[index][id] = new ExtendedAlignableTransform(transform, child); - } - } - } - - bool PixelDetectorManager::identifierBelongs(const Identifier & id) const - { - return getIdHelper()->is_pixel(id); - } - - - - const PixelModuleDesign* PixelDetectorManager::getPixelDesign(int i) const - { - return dynamic_cast<const PixelModuleDesign *>(getDesign(i)); - } - - - - // The implementation of the new IBLDist DB; - // Specific for IBL -> maybe make it different function in future to be more general - bool PixelDetectorManager::processSpecialAlignment(const std::string & key, InDetDD::AlignFolderType alignfolderType) const - { - - bool alignmentChange = false; - - std::string alignfolder; - if (alignfolderType == InDetDD::static_run1) alignfolder = "/Indet/Align"; - if (alignfolderType == InDetDD::timedependent_run2) alignfolder = "/Indet/AlignL3"; - - if(msgLvl(MSG::INFO)) - msg(MSG::INFO) << "Processing IBLDist alignment container with key (" << - key << ") and alignment folder pointing to " << alignfolder << endmsg; - - int nstaves = 0; - if (numerology().numPhiModulesForLayer(0)<14) nstaves = 14; - else nstaves = numerology().numPhiModulesForLayer(0); - - std::vector<float> ibldist; - std::vector<float> iblbaseline; - ibldist.resize(nstaves); - iblbaseline.resize(nstaves); - - const CondAttrListCollection* atrlistcol=0; - if (StatusCode::SUCCESS==m_detStore->retrieve(atrlistcol,key)) { - // loop over objects in collection - for (CondAttrListCollection::const_iterator citr=atrlistcol->begin(); citr!=atrlistcol->end();++citr) { - - const coral::AttributeList& atrlist=citr->second; - ibldist[atrlist["stave"].data<int>()] = atrlist["mag"].data<float>(); - iblbaseline[atrlist["stave"].data<int>()] = atrlist["base"].data<float>(); - - msg(MSG::VERBOSE) << "IBLDist DB -- channel: " << citr->first - << " ,stave: " << atrlist["stave"].data<int>() - << " ,mag: " << atrlist["mag"].data<float>() - << " ,base: " << atrlist["base"].data<float>() << endmsg; - } - } - else { - if (msgLvl(MSG::INFO)) - msg(MSG::INFO) << "Cannot find IBLDist Container for key " - << key << " - no IBL bowing alignment " << endmsg; - return alignmentChange; - } - - /** - Matthias D. (Oct. 2016): - The idea of this first implementation is to get the AlignTransforms for IBL modules from their folder; - Calculate from the new DB entries the Tx displacement for this module; - Make a simple transfrom in local frame; - Add the Tx to the aligntransform; - Apply this new transform with the setAlignableTransformDelta() function; - This is non-optimal as it simply overrides the previous Delta (these are included in total Delta); - Possibly we could extend this in future to add tweak() functionality to GeoAlignableTransform? - **/ - - const AlignableTransformContainer* container; - if (StatusCode::SUCCESS!=m_detStore->retrieve(container, alignfolder)) { - msg(MSG::ERROR) << "Cannot find AlignableTransformContainer for key " - << key << " - no misalignment" << endmsg; - // This should not occur in normal situations so we force job to abort. - throw std::runtime_error("Unable to apply Inner Detector alignments"); - } - // Check if container is empty - this can occur if it is an invalid IOV. - if (container->empty()) { - msg(MSG::ERROR) << "AlignableTransformContainer for key " - << key << " is empty. Probably due to out of range IOV" << endmsg; - // This should not occur in normal situations so we force job to abort. - throw std::runtime_error("Unable to apply Inner Detector alignments."); - } - // loop over all the AlignableTransform objects in the collection - std::string IBLalignfolder = alignfolder; - IBLalignfolder.append("/PIXB1");// "/Indet/Align/PIXB1" - for (DataVector<AlignableTransform>::const_iterator pat=container->begin(); - pat!=container->end();++pat) { - if (!( (*pat)->tag()==IBLalignfolder && - numerology().numPhiModulesForLayer(0)==14 && - numerology().numLayers()==4) ){ // hard-coded to IBL for now; no other geometry should really apply this! - msg(MSG::DEBUG) << "IBLDist; ignoring collections " << (*pat)->tag() << endmsg; - } - else{ - const AlignableTransform* transformCollection = *pat; - for (AlignableTransform::AlignTransMem_citr trans_iter = transformCollection->begin(); - trans_iter != transformCollection->end(); - ++trans_iter) { - if (msgLvl(MSG::DEBUG)) { - msg(MSG::DEBUG) << "IBLDist alignment for identifier " - << getIdHelper()->show_to_string(trans_iter->identify()) << endmsg; - } - - IdentifierHash idHash = getIdHelper()->wafer_hash(trans_iter->identify()); - if (!idHash.is_valid()){ - msg(MSG::WARNING) << "Invalid HashID for identifier " - << getIdHelper()->show_to_string(trans_iter->identify()) << endmsg; - msg(MSG::WARNING) << "No IBLDist corrections can be applied for invalid HashID's - exiting " << endmsg; - return false; - } - SiDetectorElement * sielem = m_elementCollection[idHash]; - //This should work as Bowing is in L3 frame, i.e. local module frame - Amg::Vector3D center = sielem->defTransform() * Amg::Vector3D{0, 0, 0}; - double z = center[2]; - const double y0y0 = 366.5*366.5; - - double bowx = ibldist[getIdHelper()->phi_module(trans_iter->identify())] * ( z*z - y0y0 ) / y0y0; - double basex= iblbaseline[getIdHelper()->phi_module(trans_iter->identify())]; - // This is in the module frame, as bowing corrections are directly L3 - - msg(MSG::DEBUG) << "Total IBL-module Tx shift (baseline+bowing): " << basex+bowx << endmsg; - if ( (basex+bowx)==0 ) continue; // make sure we ignore NULL corrections - - Amg::Transform3D shift = Amg::Translation3D(basex+bowx,0,0) * Amg::RotationMatrix3D::Identity(); - - const AlignableTransform* cpat = *pat; - AlignableTransform::AlignTransMem_citr this_trans=cpat->findIdent(trans_iter->identify()); - HepGeom::Transform3D newtrans = Amg::EigenTransformToCLHEP(shift)*this_trans->transform(); - - /** Verbose level debug section for transforms **/ - if (msgLvl(MSG::VERBOSE)) { - msg(MSG::VERBOSE) << "Bowing Transformation only:" << endmsg; - printTransform(shift); - msg(MSG::VERBOSE) << "Original alignable Transformation from StoreGate:" << endmsg; - printTransform(Amg::CLHEPTransformToEigen(this_trans->transform())); - msg(MSG::VERBOSE) << "Final mModified Transformation:" << endmsg; - printTransform(Amg::CLHEPTransformToEigen(newtrans)); - } - /** End of verbose level debug section **/ - - // Set the new transform; Will replace existing one with updated transform - bool status = setAlignableTransformDelta(0, - trans_iter->identify(), - Amg::CLHEPTransformToEigen(newtrans), - InDetDD::local, - nullptr); - - if (!status) { - if (msgLvl(MSG::DEBUG)) { - msg(MSG::DEBUG) << "Cannot set AlignableTransform for identifier." - << getIdHelper()->show_to_string(trans_iter->identify()) - << " at level 0 for IBLDist bowing deformation " << endmsg; - } - } - - alignmentChange = (alignmentChange || status); - } - } - } - - return alignmentChange; - } - - bool PixelDetectorManager::processSpecialAlignment(const std::string& key, - const CondAttrListCollection* obj, - GeoVAlignmentStore* alignStore) const { - bool alignmentChange = false; - - ATH_MSG_INFO("Processing IBLDist alignment container with key " << key); - if(numerology().numLayers() != 4) { - // this doesn't appear to be Run 2, i.e. the IBL isn't there. Bailing - return alignmentChange; - } - - int nstaves = 0; - if (numerology().numPhiModulesForLayer(0) < 14) - nstaves = 14; - else - nstaves = numerology().numPhiModulesForLayer(0); - - std::vector<float> ibldist; - std::vector<float> iblbaseline; - ibldist.resize(nstaves); - iblbaseline.resize(nstaves); - - // loop over objects in collection - for (CondAttrListCollection::const_iterator citr = obj->begin(); - citr != obj->end(); ++citr) { - - const coral::AttributeList &atrlist = citr->second; - ibldist[atrlist["stave"].data<int>()] = atrlist["mag"].data<float>(); - iblbaseline[atrlist["stave"].data<int>()] = atrlist["base"].data<float>(); - - ATH_MSG_VERBOSE("IBLDist DB -- channel: " << citr->first - << ", stave: " << atrlist["stave"].data<int>() - << ", mag: " << atrlist["mag"].data<float>() - << ", base: " << atrlist["base"].data<float>()); - } - - /** - * Paul Gessinger (Jun 2019): For MT, we won't retrieve the underlying actual - * alignable transform container, since that's hard to come by. - * We loop over all detector elements, check if they match the - * detector elements we have IBL dist info for, retrieve the actual transform - * from the provided GeoAlignmentStore, and re-set it to the corrected - * value including IBL bowing. - * - * The calculation of the bowing is taken from the non-MT implementation above. - */ - - - for(const auto* detElem : *getDetectorElementCollection()) { - if(!detElem->isInnermostPixelLayer()) { - // skip non-IBL elements. This only works if the innermost pixel layer is in fact - // the IBL. That should be the case for Run2 until replacement of the ID. - continue; - } - std::string repr = getIdHelper()->show_to_string(detElem->identify()); - ATH_MSG_DEBUG("IBLDist alignment for identifier " << repr); - - - IdentifierHash idHash = getIdHelper()->wafer_hash(detElem->identify()); - if (!idHash.is_valid()) { - ATH_MSG_WARNING("Invalid HashID for identifier " << repr); - ATH_MSG_WARNING("No IBLDist corrections can be applied for " - "invalid HashID's - exiting "); - return false; - } - - // extract the stave number - int stave = getIdHelper()->phi_module(detElem->identify()); - - Amg::Vector3D center = detElem->defTransform() * Amg::Vector3D{0, 0, 0}; - double z = center[2]; - const double y0y0 = 366.5 * 366.5; - - double bowx = ibldist[stave] * (z * z - y0y0) / y0y0; - double basex = iblbaseline[stave]; - // This is in the module frame, as bowing corrections are directly L3 - - ATH_MSG_DEBUG("Total IBL-module Tx shift (baseline+bowing): " << basex + bowx); - - if ((basex + bowx) == 0) { - continue; // make sure we ignore NULL corrections - } - - Amg::Transform3D shift = Amg::Translation3D(basex + bowx, 0, 0) * - Amg::RotationMatrix3D::Identity(); - - // now we need to get the original alignment delta to apply this additional - // shift to - ExtendedAlignableTransform* eat = m_alignableTransforms[idHash]; - const GeoTrf::Transform3D* currentDelta = alignStore->getDelta(eat->alignableTransform()); - if (currentDelta == nullptr) { - ATH_MSG_ERROR("Have IBL Dist for element which does not have an alignment delta." - << " This indicates inconsistent alignment data"); - return false; - } - - HepGeom::Transform3D recoToHitTransform = detElem->recoToHitTransform(); - Amg::Transform3D r2h = Amg::CLHEPTransformToEigen(recoToHitTransform); - - ATH_MSG_VERBOSE("Previous delta for " << repr << ":\n" << currentDelta->matrix()); - ATH_MSG_VERBOSE("Bowing-only delta for " << repr << ":\n" << shift.matrix()); - Amg::Transform3D newDelta = shift * r2h.inverse() * (*currentDelta) * r2h; - - // We can probably just write it back to the geo alignment store. - // The IBL bowing is always at the module level, and that's the delta that - // we retrieved from the geo alignment store. - - bool status = setAlignableTransformDelta(0, - detElem->identify(), - newDelta, - InDetDD::local, - alignStore); - - - ATH_MSG_VERBOSE("New delta for " << repr << ":\n" - << alignStore->getDelta(eat->alignableTransform())->matrix()); - - alignmentChange |= status; - } - - return alignmentChange; - } - - // New global alignment folders - bool PixelDetectorManager::processGlobalAlignment(const std::string & key, int level, FrameType frame, const CondAttrListCollection* /*obj*/, GeoVAlignmentStore* alignStore) const - { - - bool alignmentChange = false; - - if(msgLvl(MSG::INFO)) - msg(MSG::INFO) << "Processing new global alignment containers with key " << key << " in the " << frame << " frame at level " << level << endmsg; - - Identifier ident=Identifier(); - const CondAttrListCollection* atrlistcol=0; - if (StatusCode::SUCCESS==m_detStore->retrieve(atrlistcol,key)) { - // loop over objects in collection - for (CondAttrListCollection::const_iterator citr=atrlistcol->begin(); citr!=atrlistcol->end();++citr) { - const coral::AttributeList& atrlist=citr->second; - // We are in the Pixel manager, therefore ignore all that is not Pixel Identifier - if (atrlist["det"].data<int>()!=1) continue; - - ident = getIdHelper()->wafer_id(atrlist["bec"].data<int>(), - atrlist["layer"].data<int>(), - atrlist["ring"].data<int>(), - atrlist["sector"].data<int>()); - - // Make sure we have valid HashID (This ONLY works here as the 0-modules exist) - // Precaution which does not work for e.g. SCT - if (!(getIdHelper()->wafer_hash(ident)).is_valid()){ - msg(MSG::WARNING) << "Invalid HashID for identifier " - << getIdHelper()->show_to_string(ident) << endmsg; - msg(MSG::WARNING) << "No global alignment corrections can be applied for invalid HashID's - exiting " << endmsg; - return false; - } - - // construct new transform - // Order of rotations is defined as around z, then y, then x. - Amg::Translation3D newtranslation(atrlist["Tx"].data<float>(),atrlist["Ty"].data<float>(),atrlist["Tz"].data<float>()); - Amg::Transform3D newtrans = newtranslation * Amg::RotationMatrix3D::Identity(); - newtrans *= Amg::AngleAxis3D(atrlist["Rz"].data<float>()*CLHEP::mrad, Amg::Vector3D(0.,0.,1.)); - newtrans *= Amg::AngleAxis3D(atrlist["Ry"].data<float>()*CLHEP::mrad, Amg::Vector3D(0.,1.,0.)); - newtrans *= Amg::AngleAxis3D(atrlist["Rx"].data<float>()*CLHEP::mrad, Amg::Vector3D(1.,0.,0.)); - - msg(MSG::DEBUG) << "New global DB -- channel: " << citr->first - << " ,det: " << atrlist["det"].data<int>() - << " ,bec: " << atrlist["bec"].data<int>() - << " ,layer: " << atrlist["layer"].data<int>() - << " ,ring: " << atrlist["ring"].data<int>() - << " ,sector: " << atrlist["sector"].data<int>() - << " ,Tx: " << atrlist["Tx"].data<float>() - << " ,Ty: " << atrlist["Ty"].data<float>() - << " ,Tz: " << atrlist["Tz"].data<float>() - << " ,Rx: " << atrlist["Rx"].data<float>() - << " ,Ry: " << atrlist["Ry"].data<float>() - << " ,Rz: " << atrlist["Rz"].data<float>() << endmsg; - - // Set the new transform; Will replace existing one with updated transform - bool status = setAlignableTransformDelta(level, - ident, - newtrans, - frame, - alignStore); - - if (!status) { - if (msgLvl(MSG::DEBUG)) { - msg(MSG::DEBUG) << "Cannot set AlignableTransform for identifier." - << getIdHelper()->show_to_string(ident) - << " at level " << level << " for new global DB " << endmsg; - } - } - - alignmentChange = (alignmentChange || status); - } - } - else { - if (msgLvl(MSG::INFO)) - msg(MSG::INFO) << "Cannot find new global align Container for key " - << key << " - no new global alignment " << endmsg; - return alignmentChange; - } - return alignmentChange; - } - - - // Helpful function for debugging of transforms - void PixelDetectorManager::printTransform(const Amg::Transform3D & tr) const - { - msg(MSG::DEBUG) <<" - translation: "<<tr.translation().x()<<" "<<tr.translation().y()<<" "<<tr.translation().z() << endmsg; - msg(MSG::DEBUG) <<" - rotation:"<< endmsg; - msg(MSG::DEBUG) <<" "<<tr(0,0)<<" "<<tr(0,1)<<" "<<tr(0,2)<< endmsg; - msg(MSG::DEBUG) <<" "<<tr(1,0)<<" "<<tr(1,1)<<" "<<tr(1,2)<< endmsg; - msg(MSG::DEBUG) <<" "<<tr(2,0)<<" "<<tr(2,1)<<" "<<tr(2,2)<< endmsg; - return; - } - - -} // namespace InDetDD - - diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDiodeMap.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDiodeMap.cxx deleted file mode 100755 index 36abc6626cf..00000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDiodeMap.cxx +++ /dev/null @@ -1,297 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// PixelDiodeMap.cxx -// Implementation file for class PixelDiodeMap -/////////////////////////////////////////////////////////////////// -// (c) ATLAS Pixel Detector software -/////////////////////////////////////////////////////////////////// -// Version 4.2 14/08/2001 David Calvet -// Modified: Grant Gorfine -/////////////////////////////////////////////////////////////////// - -#include "InDetReadoutGeometry/PixelDiodeMap.h" -#include "InDetReadoutGeometry/PixelDiodeMatrix.h" -#include "InDetReadoutGeometry/SiCellId.h" - -#include <cmath> -#include <algorithm> - -namespace InDetDD { - - - -// Implicit constructor: -PixelDiodeMap::PixelDiodeMap(std::shared_ptr<const PixelDiodeMatrix> matrix) : - m_matrix(matrix), - m_generalLayout(false) -{ -} - -PixelDiodeMap::~PixelDiodeMap() -{ -} - - - SiCellId PixelDiodeMap::cellIdOfPosition(const Amg::Vector2D & localPos) const -{ - using std::abs; - using Trk::distPhi; - using Trk::distEta; - - // Check that we are in the bounds of the top level matrix - // NB. edge is included in bounds. - - double halfWidth = 0.5*width(); - double halfLength = 0.5*length(); - if ( (abs(localPos[distPhi]) > halfWidth) || - (abs(localPos[distEta]) > halfLength) ) { - return SiCellId(); // Invalid Id. - } - - // position relative to bottom left corner. - Amg::Vector2D relativePos = localPos + Amg::Vector2D(halfWidth, halfLength); - - // The cellId returned will be added to this so we must start with 0,0. - SiCellId cellId(0,0); - - std::shared_ptr<const PixelDiodeMatrix> cell = m_matrix->cellIdOfPosition(relativePos, cellId); - - // return invalid Id if there was a problem (don't expect this to be the case). - if (cell==nullptr) { - return SiCellId(); // Invalid id. - } - - return cellId; - -} - - -// Get diodes parameters (position and size): -SiDiodesParameters -PixelDiodeMap::parameters(const SiCellId & cellId) const -{ - - // Check we are in range - - if (!cellId.isValid() || - (cellId.phiIndex() < 0) || - (cellId.phiIndex() >= m_matrix->phiCells()) || - (cellId.etaIndex() < 0) || - (cellId.etaIndex() >= m_matrix->etaCells())) { - return SiDiodesParameters(); - } - - double halfWidth = 0.5*width(); - double halfLength = 0.5*length(); - - // - // Position is relative to left bottom corner. - // - Amg::Vector2D position(-halfWidth, -halfLength); - std::shared_ptr<const PixelDiodeMatrix> cell = m_matrix->positionOfCell(cellId, position); - - if (cell) { - - // get size - Amg::Vector2D size(cell->phiWidth(), cell->etaWidth()); - - // return parameters - return SiDiodesParameters(position,size); - } - - // return something in case of failure. - return SiDiodesParameters(); -} - -void PixelDiodeMap::neighboursOfCell(const SiCellId & cellId, - std::vector<SiCellId> &neighbours) const -{ - neighbours.clear(); - - if (!cellId.isValid()) return; - - // If non regular layout revert to slower method - if (m_generalLayout) return neighboursOfCellGeneral(cellId, neighbours); - - neighbours.reserve(8); - // neighbours easily determined from cell number - // normally 8 neighbours 4 edge and 4 corners - - int phiIndex = cellId.phiIndex(); - int etaIndex = cellId.etaIndex(); - - // M = minus - // P = plus - int phiM = phiIndex-1; - int phiP = phiIndex+1; - int etaM = etaIndex-1; - int etaP = etaIndex+1; - - // -,0 - if (phiM >= 0) neighbours.push_back(SiCellId(phiM,etaIndex)); - // -,- - if (phiM >= 0 && etaM >= 0) neighbours.push_back(SiCellId(phiM,etaM)); - // 0,- - if (etaM >= 0) neighbours.push_back(SiCellId(phiIndex,etaM)); - // +,- - if (phiP < phiDiodes() && etaM >= 0) neighbours.push_back(SiCellId(phiP,etaM)); - // +,0 - if (phiP < phiDiodes()) neighbours.push_back(SiCellId(phiP,etaIndex)); - // -,+ - if (phiM >= 0 && etaP < etaDiodes()) neighbours.push_back(SiCellId(phiM,etaP)); - // 0,+ - if (etaP < etaDiodes()) neighbours.push_back(SiCellId(phiIndex,etaP)); - // +,+ - if (phiP < phiDiodes() && etaP < etaDiodes()) neighbours.push_back(SiCellId(phiP,etaP)); -} - -// Get the neighbouring PixelDiodes of a given PixelDiode: -// This will work for more complex layouts such as bricking. Probably never really needed but -// since the code was here I keep it available. -void PixelDiodeMap::neighboursOfCellGeneral(const SiCellId & cellId, - std::vector<SiCellId> &neighbours) const -{ - // extract the diode spatial parameters - const SiDiodesParameters params=parameters(cellId); - const SiLocalPosition diodeCenter=params.centre(); - const SiLocalPosition diodeSize=params.width(); - const double ¢erColumn=diodeCenter.xColumn(); - const double ¢erRow=diodeCenter.xRow(); - const double halfSizeColumn=diodeSize.xColumn()/2; - const double halfSizeRow=diodeSize.xRow()/2; - - // parameter - const double epsilon=0.01; - - // compute the points to check - const double left1=centerColumn-halfSizeColumn*(1+epsilon); - const double right1=centerColumn+halfSizeColumn*(1+epsilon); - const double left2=centerColumn-halfSizeColumn*(1-epsilon); - const double right2=centerColumn+halfSizeColumn*(1-epsilon); - const double top1=centerRow+halfSizeRow*(1+epsilon); - const double bot1=centerRow-halfSizeRow*(1+epsilon); - const double top2=centerRow+halfSizeRow*(1-epsilon); - const double bot2=centerRow-halfSizeRow*(1-epsilon); - - // build the list of positions to check - std::vector<SiLocalPosition> positions; - positions.reserve(12); - SiLocalPosition position; - position.xRow(bot1); position.xColumn(left2); positions.push_back(position); - position.xRow(bot1); position.xColumn(left1); positions.push_back(position); - position.xRow(bot2); position.xColumn(left1); positions.push_back(position); - position.xRow(top2); position.xColumn(left1); positions.push_back(position); - position.xRow(top1); position.xColumn(left1); positions.push_back(position); - position.xRow(top1); position.xColumn(left2); positions.push_back(position); - position.xRow(bot1); position.xColumn(right2); positions.push_back(position); - position.xRow(bot1); position.xColumn(right1); positions.push_back(position); - position.xRow(bot2); position.xColumn(right1); positions.push_back(position); - position.xRow(top2); position.xColumn(right1); positions.push_back(position); - position.xRow(top1); position.xColumn(right1); positions.push_back(position); - position.xRow(top1); position.xColumn(right2); positions.push_back(position); - - // build the list of neighbours - neighbours.reserve(8); - - // loop on all positions to check - for(std::vector<SiLocalPosition>::const_iterator p_position=positions.begin() ; - p_position!=positions.end() ; ++p_position) { - - // get the PixelDiode for this position - SiCellId cellId_neighb = cellIdOfPosition(*p_position); - - if (cellId.isValid()) { - // check if the diode is already in the list - //bool found=false; - std::vector<SiCellId>::const_iterator foundIter - = std::find(neighbours.begin(), neighbours.end(), cellId_neighb ); - - // If not found add this diode to the list - if (foundIter == neighbours.end()) neighbours.push_back(cellId_neighb); - - } - } -} - - -// Compute the intersection length of two diodes: -double PixelDiodeMap::intersectionLength(const SiCellId &diode1, - const SiCellId &diode2) const -{ - if(!diode1.isValid() || !diode2.isValid()) return 0; - // If non regular layout revert to slower method - if (m_generalLayout) return intersectionLengthGeneral(diode1, diode2); - - const SiLocalPosition size = parameters(diode1).width(); - - int phiIndexDelta = std::abs(diode1.phiIndex() - diode2.phiIndex()); - int etaIndexDelta = std::abs(diode1.etaIndex() - diode2.etaIndex()); - - // Intersection length is just the length or width of the diode depending on which neighbour. - if (phiIndexDelta == 1 && etaIndexDelta == 0) return size.xEta(); - if (phiIndexDelta == 0 && etaIndexDelta == 1) return size.xPhi(); - // Will return 0 if it is a corner neighbour or if its not a neighbour or if they are oth the same diode. - return 0; -} - -// Compute the intersection length of two diodes: -// This will work for more complex layouts such as bricking. Probably never really needed but -// since the code was here I keep it available. -double PixelDiodeMap::intersectionLengthGeneral(const SiCellId &diode1, - const SiCellId &diode2) const - -{ - const SiDiodesParameters params1=parameters(diode1); - const SiDiodesParameters params2=parameters(diode2); - const SiLocalPosition center1=params1.centre(); - const SiLocalPosition center2=params2.centre(); - const SiLocalPosition size1=params1.width(); - const SiLocalPosition size2=params2.width(); - - // compute intersection length on column direction - const double intersectionColumn=intersectionLength1D(center1.xColumn(), - size1.xColumn(), - center2.xColumn(), - size2.xColumn()); - // compute intersection length on row direction - const double intersectionRow=intersectionLength1D(center1.xRow(), - size1.xRow(), - center2.xRow(), - size2.xRow()); - - // return the real intersection - // (if both directions intersect, there is a problem) - if (intersectionColumn>0) { - if (intersectionRow>0) return 0; - return intersectionColumn; - } else { - return intersectionRow; - } -} - -// Compute the intersection length along one direction: -double PixelDiodeMap::intersectionLength1D(const double x1,const double dx1, - const double x2,const double dx2) const -{ - // compute distance between the two centers - double distance=std::abs(x1-x2); - - // compute theoretical intersection - double intersection=(dx1+dx2)/2-distance; - - // if intersection if negative, no intersection - if (intersection<-1e-10) return intersection; - else if (intersection<1e-10) return 0; - else { - // intersection cannot exceed size - if (intersection>dx1) intersection=dx1; - if (intersection>dx2) intersection=dx2; - return intersection; - } -} - -} // namespace InDetDD - diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDiodeMatrix.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDiodeMatrix.cxx deleted file mode 100755 index 9b663572257..00000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDiodeMatrix.cxx +++ /dev/null @@ -1,338 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -#include "InDetReadoutGeometry/PixelDiodeMatrix.h" -#include "InDetReadoutGeometry/SiCellId.h" -#include "TrkEventPrimitives/ParamDefs.h" - -#include <cassert> - -namespace InDetDD { - -std::shared_ptr<const PixelDiodeMatrix> PixelDiodeMatrix::construct(double phiWidth, double etaWidth) -{ - class Helper : public PixelDiodeMatrix{}; - std::shared_ptr<PixelDiodeMatrix> ptr = std::make_shared<Helper>(); - ptr->initialize(phiWidth, etaWidth); - return ptr; -} - -void PixelDiodeMatrix::initialize(double phiWidth, double etaWidth) -{ - m_phiWidth = phiWidth; - m_etaWidth = etaWidth; - m_phiCells = 1; - m_etaCells = 1; - m_direction = phiDir; // Irrelevant - m_numCells = 0; - m_lowerCell = nullptr; - m_middleCells = nullptr; - m_upperCell = nullptr; - m_singleCell = true; -} - -std::shared_ptr<const PixelDiodeMatrix> PixelDiodeMatrix::construct(Direction direction, // phi or eta - std::shared_ptr<const PixelDiodeMatrix> lowerCell, - std::shared_ptr<const PixelDiodeMatrix> middleCells, - int numCells, - std::shared_ptr<const PixelDiodeMatrix> upperCell) -{ - class Helper : public PixelDiodeMatrix{}; - std::shared_ptr<PixelDiodeMatrix> ptr = std::make_shared<Helper>(); - ptr->initialize(direction, - lowerCell, - middleCells, - numCells, - upperCell); - return ptr; -} - -void PixelDiodeMatrix::initialize(Direction direction, // phi or eta - std::shared_ptr<const PixelDiodeMatrix> lowerCell, - std::shared_ptr<const PixelDiodeMatrix> middleCells, - int numCells, - std::shared_ptr<const PixelDiodeMatrix> upperCell) -{ - m_phiWidth = 0; - m_etaWidth = 0; - m_phiCells = 0; - m_etaCells = 0; - m_direction = direction; - m_numCells = numCells; - m_lowerCell = lowerCell; - m_middleCells = middleCells; - m_upperCell = upperCell; - m_singleCell = false; - - // middleCells must be non zero. - assert(m_middleCells); - - if (m_direction == phiDir) { - - // In eta direction widths must be all the same. - if (m_middleCells){ - m_etaWidth = m_middleCells->etaWidth(); - m_etaCells = m_middleCells->etaCells(); - } - // Check lower and upper are consistent - // TODO. - - if (m_lowerCell) { - m_phiWidth += m_lowerCell->phiWidth(); - m_phiCells += m_lowerCell->phiCells(); - } - - if (m_middleCells){ - m_phiWidth += m_numCells * m_middleCells->phiWidth(); - m_phiCells += m_numCells * m_middleCells->phiCells(); - } - - if (m_upperCell) { - m_phiWidth += m_upperCell->phiWidth(); - m_phiCells += m_upperCell->phiCells(); - } - - } else { // eta Direction - - // In phi direction widths must be all the same. - if (m_middleCells){ - m_phiWidth = m_middleCells->phiWidth(); - m_phiCells = m_middleCells->phiCells(); - } - // Check lower and upper are consistent - // TODO. - - if (m_lowerCell) { - m_etaWidth += m_lowerCell->etaWidth(); - m_etaCells += m_lowerCell->etaCells(); - } - - if (m_middleCells){ - m_etaWidth += m_numCells * m_middleCells->etaWidth(); - m_etaCells += m_numCells * m_middleCells->etaCells(); - } - - if (m_upperCell) { - m_etaWidth += m_upperCell->etaWidth(); - m_etaCells += m_upperCell->etaCells(); - } - - } - -} - -std::shared_ptr<const PixelDiodeMatrix> -PixelDiodeMatrix::cellIdOfPosition(const Amg::Vector2D & relPosition, SiCellId & cellId) const - - /// Description. - /// Overview of algoritm: - /// - /// - Before calling this method on the top level matrix the 2D position is - /// calculated relative to the bottom left corner. - /// - The method cellIdOfPosition is always called with the position relative to - /// bottom left of the cell and the cell id of bottom left child cell. - /// For the top level matrix this is the position (-halfWidth, -halfLength) and a starting - /// cell id of (0,0). - /// - It first checks if it is in the lower cell (if it exists). - /// - If not, it determines which cell by dividing the position relative to - /// the start of the cell array by the pitch in that direction. - /// - If it is beyond the range of the middle cells it is taken as being in - /// the upper cell. - /// - The cell number is added to the cellId that is passed to the method - /// - Once the cell is determined the function is called recursively until it - /// reaches a single cell. - /// - -{ - using Trk::distPhi; - using Trk::distEta; - - if (m_singleCell) { - return shared_from_this(); - } - - double relPosDir = 0; // Relative position along m_direction - int startIndex = 0; - double pitch = 0; - int middleCells = 0; - - if (m_direction == phiDir) { - - relPosDir = relPosition[distPhi]; - pitch = m_middleCells->phiWidth(); - middleCells = m_middleCells->phiCells(); - - if (m_lowerCell) { - if (relPosDir < m_lowerCell->phiWidth()) { - return m_lowerCell->cellIdOfPosition(relPosition, cellId); - } else { - relPosDir -= m_lowerCell->phiWidth(); - startIndex += m_lowerCell->phiCells(); - } - } - } else { // etaDir - - relPosDir = relPosition[distEta]; - pitch = m_middleCells->etaWidth(); - middleCells = m_middleCells->etaCells(); - - if (m_lowerCell) { - if (relPosDir < m_lowerCell->etaWidth()) { - return m_lowerCell->cellIdOfPosition(relPosition, cellId); - } else { - relPosDir -= m_lowerCell->etaWidth(); - startIndex += m_lowerCell->etaCells(); - } - } - } - - - int index = static_cast<int>((relPosDir) / pitch); - - if (index < 0) index = 0; // Make sure its in range (in case of rounding errors) - std::shared_ptr<const PixelDiodeMatrix> nextCell = nullptr; - - if (m_upperCell && (index >= m_numCells)) { - // We are in the upper cell. - index = m_numCells; - nextCell = m_upperCell; - } else { - // We are in the middle cells - // Make sure its in range (in case of rounding errors) - if (index >= m_numCells) index = m_numCells - 1; - nextCell = m_middleCells; - } - - - relPosDir -= index * pitch; - startIndex += index * middleCells; - - int newPhiIndex = cellId.phiIndex(); - int newEtaIndex = cellId.etaIndex(); - std::shared_ptr<const PixelDiodeMatrix> cell = nullptr; - - if (m_direction == phiDir) { - if (nextCell->singleCell()) { - newPhiIndex += startIndex; - cell = nextCell; - } else { - Amg::Vector2D newRelPos(relPosDir, relPosition[distEta]); - SiCellId relId(0,0); - cell = nextCell->cellIdOfPosition(newRelPos, relId); - newPhiIndex += startIndex + relId.phiIndex(); - newEtaIndex += relId.etaIndex(); - } - } else { - if (nextCell->singleCell()) { - newEtaIndex += startIndex; - cell = nextCell; - } else { - Amg::Vector2D newRelPos(relPosition[distPhi], relPosDir); - SiCellId relId(0,0); - cell = nextCell->cellIdOfPosition(newRelPos, relId); - newPhiIndex += relId.phiIndex(); - newEtaIndex += startIndex + relId.etaIndex(); - } - } - - cellId = SiCellId(newPhiIndex, newEtaIndex); - return cell; -} - - - -std::shared_ptr<const PixelDiodeMatrix> -PixelDiodeMatrix::positionOfCell(const SiCellId & cellId, Amg::Vector2D & position) const - - /// Description. - /// Overview of algoritm: - /// - /// - It starts with the position of the bottom left corner of the cell. - /// For the full matrix this is (-halfwidth,-halflength) - /// - It first checks if is in the lower cell (if it exists). - /// - If not it determines the bottom edge of the cell by multiplying the cell - /// number by the pitch. - /// - If it is beyond the range of the middle cells it is taken as being in - /// the upper cell. - /// - This position is then passed recursively to the same method until it - /// reaches a single cell. - /// - At the end the 2D position is then transformed to the position - /// relative to the module center. - -{ - using Trk::distPhi; - using Trk::distEta; - - if (m_singleCell) { - position[distPhi] += 0.5*m_phiWidth; - position[distEta] += 0.5*m_etaWidth; - return shared_from_this(); - } - - int relIndex = 0; // Relative index along m_direction - double pitch = 0; - int middleCells = 0; - double startPos = 0; - - if (m_direction == phiDir) { - - relIndex = cellId.phiIndex(); - pitch = m_middleCells->phiWidth(); - middleCells = m_middleCells->phiCells(); - - if (m_lowerCell) { - if (relIndex < m_lowerCell->phiCells()) { - return m_lowerCell->positionOfCell(cellId, position); - } else { - relIndex -= m_lowerCell->phiCells(); - startPos += m_lowerCell->phiWidth(); - } - } - - } else { // etaDir - - relIndex = cellId.etaIndex(); - pitch = m_middleCells->etaWidth(); - middleCells = m_middleCells->etaCells(); - - if (m_lowerCell) { - if (relIndex < m_lowerCell->etaCells()) { - return m_lowerCell->positionOfCell(cellId, position); - } else { - relIndex -= m_lowerCell->etaCells(); - startPos += m_lowerCell->etaWidth(); - } - } - } - - int index = relIndex / middleCells; - if (index > m_numCells) index = m_numCells; - relIndex -= index * middleCells; - startPos += index * pitch; - - std::shared_ptr<const PixelDiodeMatrix> nextCell = nullptr; - - if (m_upperCell && (index == m_numCells)) { - // We are in the upper cell. - nextCell = m_upperCell; - } else { - // We are in the middle cells - nextCell = m_middleCells; - } - - std::shared_ptr<const PixelDiodeMatrix> cell = nullptr; - if (m_direction == phiDir) { - SiCellId relId(relIndex,cellId.etaIndex()); - position[distPhi] += startPos; - cell = nextCell->positionOfCell(relId, position); - } else { - SiCellId relId(cellId.phiIndex(),relIndex); - position[distEta] += startPos; - cell = nextCell->positionOfCell(relId, position); - } - - return cell; -} - -} // end namespace diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelModuleDesign.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelModuleDesign.cxx deleted file mode 100755 index 3ff60a34d60..00000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelModuleDesign.cxx +++ /dev/null @@ -1,245 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// PixelModuleDesign.cxx -// Implementation file for class PixelModuleDesign -/////////////////////////////////////////////////////////////////// -// (c) ATLAS Pixel Detector software -/////////////////////////////////////////////////////////////////// -// Version 1.9 18/03/2002 Alessandro Fornaini -// Modified: Grant Gorfine -/////////////////////////////////////////////////////////////////// - -#include "InDetReadoutGeometry/PixelModuleDesign.h" -#include "Identifier/Identifier.h" -#include "InDetReadoutGeometry/SiCellId.h" -#include "InDetReadoutGeometry/SiReadoutCellId.h" -#include "TrkSurfaces/RectangleBounds.h" - -#include <cmath> - -namespace InDetDD { - -using std::abs; - -// Constructor with parameters: - -PixelModuleDesign::PixelModuleDesign(const double thickness, - const int circuitsPerColumn, - const int circuitsPerRow, - const int cellColumnsPerCircuit, - const int cellRowsPerCircuit, - const int diodeColumnsPerCircuit, - const int diodeRowsPerCircuit, - std::shared_ptr<const PixelDiodeMatrix> matrix, - InDetDD::CarrierType carrierType, - int readoutSide, - bool is3D) : - - SiDetectorDesign(thickness, - true, true, true, // phi,eta,depth axes symmetric - carrierType, - readoutSide), - m_diodeMap(matrix), - m_readoutScheme(circuitsPerColumn,circuitsPerRow, - cellColumnsPerCircuit,cellRowsPerCircuit, - diodeColumnsPerCircuit,diodeRowsPerCircuit), - m_bounds(), - m_is3D(is3D) -{ -} - -// Returns distance to nearest detector edge -// +ve = inside -// -ve = outside -void -PixelModuleDesign::distanceToDetectorEdge(const SiLocalPosition & localPosition, - double & etaDist, double & phiDist) const -{ - // This assume element is centered at 0,0 - // As the calculation is symmetric around 0,0 we only have to test it for one side. - double xEta = abs(localPosition.xEta()); - double xPhi = abs(localPosition.xPhi()); - - double xEtaEdge = 0.5*length(); - double xPhiEdge = 0.5*width(); - - // Distance to top/bottom - etaDist = xEtaEdge - xEta; - - // Distance to right/left edge - phiDist = xPhiEdge - xPhi; - -} - -SiDiodesParameters PixelModuleDesign::parameters(const SiCellId & cellId) const -{ - return m_diodeMap.parameters(cellId); -} - -SiLocalPosition PixelModuleDesign::localPositionOfCell(const SiCellId & cellId) const -{ - return m_diodeMap.parameters(cellId).centre(); -} - - -// Helper method for stereo angle computation -HepGeom::Vector3D<double> PixelModuleDesign::phiMeasureSegment(const SiLocalPosition&) const -{ - HepGeom::Vector3D<double> segment; - segment[etaAxis()]=1; - return segment; -} - -// Special method for SCT (irrelevant here): -std::pair<SiLocalPosition,SiLocalPosition> PixelModuleDesign::endsOfStrip(const SiLocalPosition &position) const -{ - return std::pair<SiLocalPosition,SiLocalPosition>(position,position); -} - - -// Methods to calculate length of a module -double PixelModuleDesign::length() const -{ - return m_diodeMap.length(); -} - -// Methods to calculate average width of a module -double PixelModuleDesign::width() const -{ - return m_diodeMap.width(); -} - -// Methods to calculate minimum width of a module -double PixelModuleDesign::minWidth() const -{ - return width(); -} - -// Methods to calculate maximum width of a module -double PixelModuleDesign::maxWidth() const -{ - return width(); -} - - -// Method to calculate eta width from a column range -double PixelModuleDesign::widthFromColumnRange(const int colMin, const int colMax) const -{ - SiCellId idMin(0, colMin); - SiCellId idMax(0, colMax); - - double minEta = parameters(idMin).xEtaMin(); - double maxEta = parameters(idMax).xEtaMax(); - - return fabs(maxEta-minEta); -} - -// Method to calculate phi width from a row range -double PixelModuleDesign::widthFromRowRange(const int rowMin, const int rowMax) const -{ - - SiCellId idMin(rowMin, 0); - SiCellId idMax(rowMax, 0); - double minPhi = parameters(idMin).xPhiMin(); - double maxPhi = parameters(idMax).xPhiMax(); - - return fabs(maxPhi-minPhi); -} - -// Pitch in phi direction -double -PixelModuleDesign::phiPitch() const -{ - // Average pitch. - return width() / rows(); -} - -// Pitch in phi direction -double -PixelModuleDesign::phiPitch(const SiLocalPosition &) const -{ - // Cheat since we know its constant. - return phiPitch(); -} - -// Pitch in eta direction -double -PixelModuleDesign::etaPitch() const -{ - // Average pitch - return length() / columns(); -} - -SiCellId PixelModuleDesign::cellIdOfPosition(const SiLocalPosition & localPosition) const -{ - return m_diodeMap.cellIdOfPosition(localPosition); -} - - -int PixelModuleDesign::numberOfConnectedCells(const SiReadoutCellId & readoutId) const -{ - return m_readoutScheme.numberOfConnectedCells(readoutId); -} - -SiCellId -PixelModuleDesign::connectedCell(const SiReadoutCellId & readoutId, int number) const -{ - return m_readoutScheme.connectedCell(readoutId, number); -} - -SiCellId -PixelModuleDesign::gangedCell(const SiCellId & cellId) const -{ - return m_readoutScheme.gangedCell(cellId); -} - -SiReadoutCellId -PixelModuleDesign::readoutIdOfCell(const SiCellId & cellId) const -{ - return m_readoutScheme.readoutIdOfCell(cellId); -} - - -SiReadoutCellId -PixelModuleDesign::readoutIdOfPosition(const SiLocalPosition & localPos) const -{ - return m_readoutScheme.readoutIdOfCell(m_diodeMap.cellIdOfPosition(localPos)); -} - -// Given row and column index of diode, returns position of diode center -// ALTERNATIVE/PREFERED way is to use localPositionOfCell(const SiCellId & cellId) or -// rawLocalPositionOfCell method in SiDetectorElement. -// DEPRECATED (but used in numerous places) -SiLocalPosition PixelModuleDesign::positionFromColumnRow(const int column, const int row) const -{ - return localPositionOfCell(SiCellId(row,column)); -} - - -const Trk::SurfaceBounds & -PixelModuleDesign::bounds() const -{ - // We create on demand as width and length are 0 when PixeModuleDesign first gets - // created. - if (not m_bounds) m_bounds.set(std::make_unique<Trk::RectangleBounds>(0.5*width(), 0.5*length())); - return *m_bounds; -} - - - -void PixelModuleDesign::setGeneralLayout() -{ - m_diodeMap.setGeneralLayout(); -} - -SiCellId -PixelModuleDesign::cellIdInRange(const SiCellId & cellId) const -{ - return m_diodeMap.cellIdInRange(cellId); -} - - -} // namespace InDetDD diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelMultipleConnection1D.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelMultipleConnection1D.cxx deleted file mode 100755 index d2f6d11c815..00000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelMultipleConnection1D.cxx +++ /dev/null @@ -1,141 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// PixelMultipleConnection1D.cxx -// Implementation file for class PixelMultipleConnection1D -/////////////////////////////////////////////////////////////////// -// (c) ATLAS Pixel Detector software -/////////////////////////////////////////////////////////////////// -// Version 1.1 05/04/2001 David Calvet -// 06/02/2008 Grant Gorfine -/////////////////////////////////////////////////////////////////// - -#include "InDetReadoutGeometry/PixelMultipleConnection1D.h" -#include <iostream> - -namespace InDetDD { - -// Constructor with parameters: -PixelMultipleConnection1D::PixelMultipleConnection1D(const int lowerIndex, - const std::vector<int> &connections) - : m_lowerDiode(0), - m_upperDiode(-1), - m_lowerReadout(0), - m_upperReadout(-1) -{ - set(lowerIndex, connections); -} - -PixelMultipleConnection1D::PixelMultipleConnection1D() - : m_lowerDiode(0), - m_upperDiode(-1), - m_lowerReadout(0), - m_upperReadout(-1) -{} - -void -PixelMultipleConnection1D::set(const int lowerIndex, - const std::vector<int> &connections) -{ - - // extract lower and upper diode and readout cell numbers from connections vector - bool firstDiode = true; - bool firstReadout = true; - for(unsigned int index = 0; index < connections.size(); ++index) { - int readout = connections[index]; - int diode = lowerIndex + index; - if (firstDiode && readout != diode) { - m_lowerDiode = diode; - m_upperDiode = diode; - firstDiode = false; - } - if (firstReadout) { - m_lowerReadout=readout; - m_upperReadout=readout; - firstReadout = false; - } - if (readout<m_lowerReadout) m_lowerReadout=readout; - if (readout>m_upperReadout) m_upperReadout=readout; - if (readout != diode && diode < m_lowerDiode) m_lowerDiode = diode; - if (readout != diode && diode > m_upperDiode) m_upperDiode = diode; - } - - // Fource readout range to be include diode range (this is generally already the case) - if (m_lowerReadout > m_lowerDiode) m_lowerReadout = m_lowerDiode; - if (m_upperReadout < m_upperDiode) m_upperReadout = m_upperDiode; - - m_diodeToReadout.resize(m_upperDiode - m_lowerDiode + 1); - m_readoutToDiode.resize(m_upperReadout - m_lowerReadout + 1); - - // First fill primary cell. ie diode and readout the same. - for(unsigned int index = 0; index < connections.size(); ++index) { - int readout = connections[index]; - int diode = lowerIndex + index; - if (readout == diode) m_readoutToDiode[readout-m_lowerReadout].push_back(diode); - } - - - // Now the rest of readoutToDiode ie diode and readout not the same. - // Fill also diodeToReadout - for(unsigned int index = 0; index < connections.size(); ++index) { - int readout = connections[index]; - int diode = lowerIndex + index; - if (readout != diode) m_readoutToDiode[readout - m_lowerReadout].push_back(diode); - if (diode >= m_lowerDiode && diode <= m_upperDiode) m_diodeToReadout[diode - m_lowerDiode] = readout; - } - - // Created ganged map. If the diode is ganged it points to the other diode. - m_diodeGanged.resize(m_upperReadout - m_lowerReadout + 1); - for(int iDiode = m_lowerReadout; iDiode <= m_upperReadout; iDiode++) { - // Fill with the same index which indicates its not ganged. - m_diodeGanged[iDiode - m_lowerReadout] = iDiode; - int readout = iDiode; - if (!outsideDiode(iDiode)) readout = readoutOfDiode(iDiode); - if (numberOfConnectedCells(readout) >= 2) { - int cell0 = connectedCell(readout, 0); - int cell1 = connectedCell(readout, 1); - if (iDiode == cell0) { - m_diodeGanged[iDiode - m_lowerReadout] = cell1; - } else { - m_diodeGanged[iDiode - m_lowerReadout] = cell0; - } - } - } - - // For debugging only - //debugPrintout(); -} - -void PixelMultipleConnection1D::debugPrintout() -{ - // Debug printout - std::cout << "m_lowerDiode = " << m_lowerDiode << std::endl; - std::cout << "m_upperDiode = " << m_upperDiode << std::endl; - std::cout << "m_lowerReadout = " << m_lowerReadout << std::endl; - std::cout << "m_upperReadout = " << m_upperReadout << std::endl; - std::cout << "m_readoutToDiode: "; - for (unsigned int i = 0; i < m_readoutToDiode.size(); i++) { - std::cout << "(" << m_lowerReadout + i << ": "; - for (unsigned int j = 0; j < m_readoutToDiode[i].size(); j++) { - std::cout << m_readoutToDiode[i][j] << " "; - } - std::cout << ") "; - } - std::cout << std::endl; - - for (unsigned int i = 0; i < m_diodeToReadout.size(); i++) { - std::cout << "(" << m_lowerDiode + i << ": " << m_diodeToReadout[i] << ") "; - } - std::cout << std::endl; - - for (unsigned int i = 0; i < m_diodeGanged.size(); i++) { - std::cout << "(" << m_lowerReadout + i << ": " << m_diodeGanged[i] << ") "; - } - std::cout << std::endl; -} - - - -} // namespace InDetDD diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelReadoutScheme.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelReadoutScheme.cxx deleted file mode 100755 index e0e80ff52f8..00000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelReadoutScheme.cxx +++ /dev/null @@ -1,104 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// PixelReadoutScheme.cxx -// Implementation file for class PixelReadoutScheme -/////////////////////////////////////////////////////////////////// -// (c) ATLAS Pixel Detector software -/////////////////////////////////////////////////////////////////// -// Version 2.1 08/06/2001 David Calvet -// Modified: Grant Gorfine -/////////////////////////////////////////////////////////////////// - -#include "InDetReadoutGeometry/PixelReadoutScheme.h" -#include "InDetReadoutGeometry/SiCellId.h" -#include "InDetReadoutGeometry/SiReadoutCellId.h" - -namespace InDetDD { - -// Constructor with parameters: -PixelReadoutScheme::PixelReadoutScheme(const int circuitsPerColumn, - const int circuitsPerRow, - const int cellColumnsPerCircuit, - const int cellRowsPerCircuit, - const int diodeColumnsPerCircuit, - const int diodeRowsPerCircuit) : - m_numberOfCircuits(circuitsPerColumn*circuitsPerRow), - m_columnsPerCircuit(cellColumnsPerCircuit), - m_rowsPerCircuit(cellRowsPerCircuit), - m_columns(circuitsPerRow*diodeColumnsPerCircuit), - m_rows(circuitsPerColumn*diodeRowsPerCircuit) -{} - - - -// Number of cells connected to this readout. 2 means its ganged. -int -PixelReadoutScheme::numberOfConnectedCells(const SiReadoutCellId & readoutId) const -{ - if (!readoutId.isValid()) return 0; - - // Do quick check to see if it is outside ganged pixel range. - int phiIndex = readoutId.phiIndex(); - if (m_rowConnections.outsideReadout(phiIndex)) return 1; - - return m_rowConnections.numberOfConnectedCells(phiIndex); - -} - -// Id of diodes connected to this readout. 0 is the primary cell. -SiCellId -PixelReadoutScheme::connectedCell(const SiReadoutCellId & readoutId, unsigned int number) const -{ - if (!readoutId.isValid()) return SiCellId(); - - // Do quick check to see if it is outside ganged pixel range. - int phiIndex = readoutId.phiIndex(); - if (m_rowConnections.outsideReadout(phiIndex)) return readoutId; - - int numConnected = m_rowConnections.numberOfConnectedCells(phiIndex); - if (!numConnected || static_cast<int>(number) >= numConnected) return SiCellId(); - - int newPhiIndex = m_rowConnections.connectedCell(phiIndex, number); - return SiCellId(newPhiIndex, readoutId.etaIndex()); -} - -// Id of the readout cell for this diode. -SiReadoutCellId -PixelReadoutScheme::readoutIdOfCell(const SiCellId & cellId) const -{ - if (!cellId.isValid()) return SiReadoutCellId(); - - int phiIndex = cellId.phiIndex(); - int newPhiIndex = phiIndex; - if (!m_rowConnections.outsideDiode(phiIndex)) { - newPhiIndex = m_rowConnections.readoutOfDiode(phiIndex); - } - - return SiReadoutCellId(newPhiIndex, cellId.etaIndex()); - -} - -SiCellId -PixelReadoutScheme::gangedCell(const SiCellId & cellId) const -{ - if (!cellId.isValid()) return cellId; - int phiIndex = cellId.phiIndex(); - if (m_rowConnections.outsideReadout(phiIndex)) return SiCellId(); // Invalid ID - int newPhiIndex = m_rowConnections.gangedCell(phiIndex); - if (newPhiIndex == phiIndex) return SiCellId(); // Invalid ID - return SiCellId(newPhiIndex, cellId.etaIndex()); -} - - -void PixelReadoutScheme::addMultipleRowConnection(const int lowerIndex, - const std::vector<int> &connections) -{ - - m_rowConnections.set(lowerIndex, connections); -} - - -} // namespace InDetDD diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/CMakeLists.txt b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/CMakeLists.txt index 586366eb529..2cfa3cf3e04 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/CMakeLists.txt +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/CMakeLists.txt @@ -44,6 +44,7 @@ atlas_depends_on_subdirs( Event/EventPrimitives InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixellReadoutGeometry MuonSpectrometer/MuonDetDescr/MuonAGDDDescription MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry MuonSpectrometer/MuonIdHelpers @@ -123,7 +124,7 @@ foreach( name CscMcDataCnv_p1_test CscSimDataCnv_p1_test SOURCES test/${name}.cxx LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} GaudiKernel TrkSurfaces TrkEventTPCnv TestTools StoreGateLib TPTools AGDDKernel AtlasDetDescr - IdDict IdDictDetDescr IdDictParser InDetIdentifier InDetReadoutGeometry + IdDict IdDictDetDescr IdDictParser InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry MuonAGDDDescription MuonReadoutGeometry MuonIdHelpersLib TrkEventPrimitives TrkPseudoMeasurementOnTrack MuonEventTPCnv AthenaKernel LOG_IGNORE_PATTERN "MultiRange built successfully|element hash max" diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/make_dd.icc b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/make_dd.icc index 265dfe3e4ec..c1589ca24c6 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/make_dd.icc +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/make_dd.icc @@ -18,7 +18,7 @@ #include "MuonReadoutGeometry/TgcReadoutElement.h" #include "MuonReadoutGeometry/sTgcReadoutElement.h" #include "MuonReadoutGeometry/MMReadoutElement.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "InDetReadoutGeometry/SCT_DetectorManager.h" #include "InDetReadoutGeometry/TRT_DetectorManager.h" #include "IdDictDetDescr/IdDictManager.h" diff --git a/Reconstruction/iPat/iPatTrackFinder/CMakeLists.txt b/Reconstruction/iPat/iPatTrackFinder/CMakeLists.txt index 93c1417b49c..e34fc393bf5 100644 --- a/Reconstruction/iPat/iPatTrackFinder/CMakeLists.txt +++ b/Reconstruction/iPat/iPatTrackFinder/CMakeLists.txt @@ -19,6 +19,7 @@ atlas_depends_on_subdirs( PUBLIC PRIVATE InnerDetector/InDetConditions/InDetBeamSpotService InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelReadoutGeometry MagneticField/MagFieldInterfaces Reconstruction/iPat/iPatGeometry Reconstruction/iPat/iPatTrackParameters @@ -41,7 +42,7 @@ atlas_add_component( iPatTrackFinder src/TrackFinder.cxx src/TrackManager.cxx src/components/*.cxx - LINK_LIBRARIES AthenaBaseComps Identifier EventPrimitives GaudiKernel InDetPrepRawData iPatInterfaces iPatTrack InDetReadoutGeometry MagFieldInterfaces iPatGeometry iPatTrackParameters iPatUtility TrkPrepRawData TrkSpacePoint VxVertex EventContainers) + LINK_LIBRARIES AthenaBaseComps Identifier EventPrimitives GaudiKernel InDetPrepRawData iPatInterfaces iPatTrack InDetReadoutGeometry PixelReadoutGeometry MagFieldInterfaces iPatGeometry iPatTrackParameters iPatUtility TrkPrepRawData TrkSpacePoint VxVertex EventContainers) # Install files from the package: atlas_install_headers( iPatTrackFinder ) diff --git a/Reconstruction/iPat/iPatTrackFinder/src/FinderTolerances.cxx b/Reconstruction/iPat/iPatTrackFinder/src/FinderTolerances.cxx index b2842186ef9..9f461a77650 100755 --- a/Reconstruction/iPat/iPatTrackFinder/src/FinderTolerances.cxx +++ b/Reconstruction/iPat/iPatTrackFinder/src/FinderTolerances.cxx @@ -12,7 +12,7 @@ #include "GaudiKernel/Incident.h" #include "GaudiKernel/SystemOfUnits.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "MagFieldInterfaces/IMagFieldSvc.h" #include "iPatTrackFinder/FinderTolerances.h" #include "iPatUtility/VertexRegion.h" diff --git a/Tracking/Acts/ActsGeometry/CMakeLists.txt b/Tracking/Acts/ActsGeometry/CMakeLists.txt index 54fc8386ae0..5901df1655c 100755 --- a/Tracking/Acts/ActsGeometry/CMakeLists.txt +++ b/Tracking/Acts/ActsGeometry/CMakeLists.txt @@ -9,6 +9,7 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/Identifier InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelReadoutGeometry Control/AthenaBaseComps AthenaKernel DetectorDescription/GeoModel/GeoModelUtilities diff --git a/Tracking/Acts/ActsGeometry/src/ActsAlignmentCondAlg.cxx b/Tracking/Acts/ActsGeometry/src/ActsAlignmentCondAlg.cxx index bfde8c7b4d3..bc59d59d1c3 100644 --- a/Tracking/Acts/ActsGeometry/src/ActsAlignmentCondAlg.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsAlignmentCondAlg.cxx @@ -11,7 +11,7 @@ #include "GaudiKernel/EventIDRange.h" #include "GaudiKernel/ICondSvc.h" #include "GeoModelKernel/GeoAlignableTransform.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "InDetReadoutGeometry/SCT_DetectorManager.h" #include "InDetReadoutGeometry/TRT_DetectorManager.h" #include "StoreGate/StoreGateSvc.h" diff --git a/Tracking/Acts/ActsGeometry/src/GeomShiftCondAlg.cxx b/Tracking/Acts/ActsGeometry/src/GeomShiftCondAlg.cxx index 0d83ab11578..cdc13680051 100644 --- a/Tracking/Acts/ActsGeometry/src/GeomShiftCondAlg.cxx +++ b/Tracking/Acts/ActsGeometry/src/GeomShiftCondAlg.cxx @@ -11,7 +11,7 @@ #include "EventInfo/EventInfo.h" #include "EventInfo/EventID.h" #include "GeoModelKernel/GeoAlignableTransform.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "InDetReadoutGeometry/SCT_DetectorManager.h" #include "InDetReadoutGeometry/TRT_DetectorManager.h" #include "GeoPrimitives/CLHEPtoEigenConverter.h" diff --git a/Trigger/TrigFTK/FTK_DataProviderSvc/CMakeLists.txt b/Trigger/TrigFTK/FTK_DataProviderSvc/CMakeLists.txt index 67b020acafa..4c829b0dcf3 100644 --- a/Trigger/TrigFTK/FTK_DataProviderSvc/CMakeLists.txt +++ b/Trigger/TrigFTK/FTK_DataProviderSvc/CMakeLists.txt @@ -34,6 +34,7 @@ atlas_depends_on_subdirs( PUBLIC InnerDetector/InDetConditions/PixelConditionsTools InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelReadoutGeometry InnerDetector/InDetRecTools/InDetRecToolInterfaces Tracking/TrkEvent/TrkEventPrimitives Tracking/TrkEvent/TrkParameters @@ -60,12 +61,12 @@ atlas_add_library( FTK_DataProviderSvcLib PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps xAODTracking GaudiKernel InDetPrepRawData InDetRIO_OnTrack TrkTrack FTK_DataProviderInterfaces TrigFTK_RawData StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} ${EIGEN_LIBRARIES} AtlasDetDescr GeoPrimitives IRegionSelector RoiDescriptor EventInfo GeneratorObjects InDetIdentifier InDetReadoutGeometry InDetRecToolInterfaces TrkEventPrimitives TrkParameters TrkRIO_OnTrack TrkTrackSummary TrkTruthData TrkFitterInterfaces TrkVertexFitterInterfaces TrkFitterUtils TrkToolInterfaces PixelConditionsData) + PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} ${EIGEN_LIBRARIES} AtlasDetDescr GeoPrimitives IRegionSelector RoiDescriptor EventInfo GeneratorObjects InDetIdentifier InDetReadoutGeometry PixelReadoutGeometrt InDetRecToolInterfaces TrkEventPrimitives TrkParameters TrkRIO_OnTrack TrkTrackSummary TrkTruthData TrkFitterInterfaces TrkVertexFitterInterfaces TrkFitterUtils TrkToolInterfaces PixelConditionsData) atlas_add_component( FTK_DataProviderSvc src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps StoreGateLib SGtests xAODTracking GaudiKernel InDetPrepRawData InDetRIO_OnTrack TrkTrack FTK_DataProviderInterfaces TrigFTK_RawData AtlasDetDescr GeoPrimitives IRegionSelector RoiDescriptor EventInfo GeneratorObjects InDetIdentifier InDetReadoutGeometry InDetRecToolInterfaces TrkEventPrimitives TrkParameters TrkRIO_OnTrack TrkTrackSummary TrkTruthData TrkFitterInterfaces TrkVertexFitterInterfaces TrkFitterUtils TrkToolInterfaces FTK_DataProviderSvcLib PixelConditionsData) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps StoreGateLib SGtests xAODTracking GaudiKernel InDetPrepRawData InDetRIO_OnTrack TrkTrack FTK_DataProviderInterfaces TrigFTK_RawData AtlasDetDescr GeoPrimitives IRegionSelector RoiDescriptor EventInfo GeneratorObjects InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry InDetRecToolInterfaces TrkEventPrimitives TrkParameters TrkRIO_OnTrack TrkTrackSummary TrkTruthData TrkFitterInterfaces TrkVertexFitterInterfaces TrkFitterUtils TrkToolInterfaces FTK_DataProviderSvcLib PixelConditionsData) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/Trigger/TrigFTK/FTK_DataProviderSvc/src/FTK_DataProviderSvc.cxx b/Trigger/TrigFTK/FTK_DataProviderSvc/src/FTK_DataProviderSvc.cxx index d69956cb9dd..04f9d71d1ee 100644 --- a/Trigger/TrigFTK/FTK_DataProviderSvc/src/FTK_DataProviderSvc.cxx +++ b/Trigger/TrigFTK/FTK_DataProviderSvc/src/FTK_DataProviderSvc.cxx @@ -8,7 +8,7 @@ #include "InDetIdentifier/PixelID.h" #include "StoreGate/ReadCondHandle.h" #include "InDetBeamSpotService/IBeamCondSvc.h" -#include "InDetReadoutGeometry/PixelModuleDesign.h" +#include "PixelReadoutGeometry/PixelModuleDesign.h" #include "InDetReadoutGeometry/SCT_ModuleSideDesign.h" #include "InDetReadoutGeometry/SCT_BarrelModuleSideDesign.h" #include "InDetReadoutGeometry/SCT_ForwardModuleSideDesign.h" diff --git a/Trigger/TrigFTK/FTK_RecTools/CMakeLists.txt b/Trigger/TrigFTK/FTK_RecTools/CMakeLists.txt index c04aedccbae..9f72cb8b24a 100644 --- a/Trigger/TrigFTK/FTK_RecTools/CMakeLists.txt +++ b/Trigger/TrigFTK/FTK_RecTools/CMakeLists.txt @@ -34,6 +34,7 @@ atlas_depends_on_subdirs( PUBLIC InnerDetector/InDetConditions/PixelConditionsData InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelReadoutGeometry InnerDetector/InDetDetDescr/PixelGeoModel InnerDetector/InDetRecTools/SiClusterizationTool Tracking/TrkDetDescr/TrkSurfaces ) @@ -50,12 +51,12 @@ atlas_add_library( FTK_RecToolsLib PUBLIC_HEADERS FTK_RecTools INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps GeoPrimitives xAODTracking TrkTrack VxVertex FTK_DataProviderInterfaces TrigFTK_RawData TrkVxEdmCnvLib TrigFTKSimLib InDetPrepRawData InDetRIO_OnTrack TrkParameters TrkToolInterfaces TrkAmbiguityProcessorLib StoreGateLib SGtests EventPrimitives InDetIdentifier InDetReadoutGeometry SiClusterizationToolLib TrkSurfaces PixelConditionsData) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps GeoPrimitives xAODTracking TrkTrack VxVertex FTK_DataProviderInterfaces TrigFTK_RawData TrkVxEdmCnvLib TrigFTKSimLib InDetPrepRawData InDetRIO_OnTrack TrkParameters TrkToolInterfaces TrkAmbiguityProcessorLib StoreGateLib SGtests EventPrimitives InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry SiClusterizationToolLib TrkSurfaces PixelConditionsData) atlas_add_component( FTK_RecTools src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps GeoPrimitives xAODTracking TrkTrack VxVertex TrkVxEdmCnvLib FTK_DataProviderInterfaces TrigFTK_RawData TrigFTKSimLib TrkParameters FTK_RecToolsLib InDetPrepRawData InDetRIO_OnTrack TrkParameters TrkToolInterfaces TrkAmbiguityProcessorLib StoreGateLib SGtests EventPrimitives InDetIdentifier InDetReadoutGeometry SiClusterizationToolLib TrkSurfaces PixelConditionsData) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps GeoPrimitives xAODTracking TrkTrack VxVertex TrkVxEdmCnvLib FTK_DataProviderInterfaces TrigFTK_RawData TrigFTKSimLib TrkParameters FTK_RecToolsLib InDetPrepRawData InDetRIO_OnTrack TrkParameters TrkToolInterfaces TrkAmbiguityProcessorLib StoreGateLib SGtests EventPrimitives InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry SiClusterizationToolLib TrkSurfaces PixelConditionsData) diff --git a/Trigger/TrigFTK/FTK_RecTools/src/FTK_HashIDTool.cxx b/Trigger/TrigFTK/FTK_RecTools/src/FTK_HashIDTool.cxx index caae36097a9..9b23a9351d6 100644 --- a/Trigger/TrigFTK/FTK_RecTools/src/FTK_HashIDTool.cxx +++ b/Trigger/TrigFTK/FTK_RecTools/src/FTK_HashIDTool.cxx @@ -13,7 +13,7 @@ #include "AtlasDetDescr/AtlasDetectorID.h" #include "InDetIdentifier/SCT_ID.h" #include "InDetIdentifier/PixelID.h" -#include "InDetReadoutGeometry/PixelModuleDesign.h" +#include "PixelReadoutGeometry/PixelModuleDesign.h" #include "InDetReadoutGeometry/SCT_ModuleSideDesign.h" #include "InDetReadoutGeometry/SCT_BarrelModuleSideDesign.h" #include "InDetReadoutGeometry/SCT_ForwardModuleSideDesign.h" diff --git a/Trigger/TrigFTK/FTK_RecTools/src/FTK_PixelClusterOnTrackTool.cxx b/Trigger/TrigFTK/FTK_RecTools/src/FTK_PixelClusterOnTrackTool.cxx index f56b243a475..87cdc8273b6 100644 --- a/Trigger/TrigFTK/FTK_RecTools/src/FTK_PixelClusterOnTrackTool.cxx +++ b/Trigger/TrigFTK/FTK_RecTools/src/FTK_PixelClusterOnTrackTool.cxx @@ -12,7 +12,7 @@ /////////////////////////////////////////////////////////////////// #include "FTK_RecTools/FTK_PixelClusterOnTrackTool.h" -#include "InDetReadoutGeometry/PixelModuleDesign.h" +#include "PixelReadoutGeometry/PixelModuleDesign.h" #include "InDetIdentifier/PixelID.h" #include "TrkSurfaces/PlaneSurface.h" #include "EventPrimitives/EventPrimitives.h" diff --git a/Trigger/TrigFTK/TrigFTK_RawDataAlgs/CMakeLists.txt b/Trigger/TrigFTK/TrigFTK_RawDataAlgs/CMakeLists.txt index c8acfcaa426..07fd249e4f2 100644 --- a/Trigger/TrigFTK/TrigFTK_RawDataAlgs/CMakeLists.txt +++ b/Trigger/TrigFTK/TrigFTK_RawDataAlgs/CMakeLists.txt @@ -26,6 +26,7 @@ atlas_depends_on_subdirs( PUBLIC InnerDetector/InDetRecEvent/InDetRIO_OnTrack InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDecr/PixelReadoutGeometry Tracking/TrkEvent/TrkTrack Tracking/TrkEvent/TrkTrackSummary Trigger/TrigFTK/FTK_RecToolInterfaces @@ -40,12 +41,12 @@ atlas_add_library( TrigFTK_RawDataAlgsLib PUBLIC_HEADERS TrigFTK_RawDataAlgs INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps GaudiKernel TrkEventPrimitives FTK_DataProviderInterfaces TrigFTKPool TrigFTK_RawData PileUpToolsLib TrigFTKSimLib InDetRIO_OnTrack - PRIVATE_LINK_LIBRARIES AtlasDetDescr EventInfo xAODTracking xAODTruth InDetIdentifier InDetReadoutGeometry TrkTrack TrkTrackSummary TrkToolInterfaces VxVertex PixelConditionsData ) + PRIVATE_LINK_LIBRARIES AtlasDetDescr EventInfo xAODTracking xAODTruth InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry TrkTrack TrkTrackSummary TrkToolInterfaces VxVertex PixelConditionsData ) atlas_add_component( TrigFTK_RawDataAlgs src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps PileUpToolsLib GaudiKernel TrkEventPrimitives FTK_DataProviderInterfaces TrigFTKPool TrigFTKSimLib InDetRIO_OnTrack TrigFTK_RawData AtlasDetDescr EventInfo xAODTracking xAODTruth InDetIdentifier InDetReadoutGeometry TrkTrack TrkTrackSummary VxVertex TrigFTK_RawDataAlgsLib PixelConditionsData TrkToolInterfaces) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps PileUpToolsLib GaudiKernel TrkEventPrimitives FTK_DataProviderInterfaces TrigFTKPool TrigFTKSimLib InDetRIO_OnTrack TrigFTK_RawData AtlasDetDescr EventInfo xAODTracking xAODTruth InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry TrkTrack TrkTrackSummary VxVertex TrigFTK_RawDataAlgsLib PixelConditionsData TrkToolInterfaces) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/Trigger/TrigFTK/TrigFTK_RawDataAlgs/src/FTKTrackMakerMT.cxx b/Trigger/TrigFTK/TrigFTK_RawDataAlgs/src/FTKTrackMakerMT.cxx index 4b0c7f6c6c5..7804c07f411 100644 --- a/Trigger/TrigFTK/TrigFTK_RawDataAlgs/src/FTKTrackMakerMT.cxx +++ b/Trigger/TrigFTK/TrigFTK_RawDataAlgs/src/FTKTrackMakerMT.cxx @@ -22,7 +22,7 @@ #include "InDetIdentifier/SCT_ID.h" #include "InDetIdentifier/PixelID.h" -#include "InDetReadoutGeometry/PixelModuleDesign.h" +#include "PixelReadoutGeometry/PixelModuleDesign.h" #include "InDetReadoutGeometry/SCT_ModuleSideDesign.h" #include "InDetReadoutGeometry/SCT_BarrelModuleSideDesign.h" #include "InDetReadoutGeometry/SCT_ForwardModuleSideDesign.h" diff --git a/Trigger/TrigFTK/TrigFTK_RawDataAlgs/src/FTK_RDO_MonitorAlgo.cxx b/Trigger/TrigFTK/TrigFTK_RawDataAlgs/src/FTK_RDO_MonitorAlgo.cxx index 97b9db6ae4b..923b3d5880f 100644 --- a/Trigger/TrigFTK/TrigFTK_RawDataAlgs/src/FTK_RDO_MonitorAlgo.cxx +++ b/Trigger/TrigFTK/TrigFTK_RawDataAlgs/src/FTK_RDO_MonitorAlgo.cxx @@ -10,7 +10,7 @@ #include "InDetIdentifier/PixelID.h" #include "InDetIdentifier/SCT_ID.h" -#include "InDetReadoutGeometry/PixelModuleDesign.h" +#include "PixelReadoutGeometry/PixelModuleDesign.h" #include "InDetReadoutGeometry/SCT_BarrelModuleSideDesign.h" #include "InDetReadoutGeometry/SCT_ForwardModuleSideDesign.h" #include "InDetReadoutGeometry/SCT_ModuleSideDesign.h" diff --git a/Trigger/TrigTools/TrigFTKTrackConverter/CMakeLists.txt b/Trigger/TrigTools/TrigFTKTrackConverter/CMakeLists.txt index bdd94f17bba..962f4278770 100644 --- a/Trigger/TrigTools/TrigFTKTrackConverter/CMakeLists.txt +++ b/Trigger/TrigTools/TrigFTKTrackConverter/CMakeLists.txt @@ -23,6 +23,7 @@ atlas_depends_on_subdirs( PUBLIC Generators/GeneratorObjects InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelReadoutGeometry InnerDetector/InDetRecEvent/InDetRIO_OnTrack Tracking/TrkEvent/TrkEventPrimitives Tracking/TrkEvent/TrkParameters @@ -38,7 +39,7 @@ atlas_add_component( TrigFTKTrackConverter src/*.cxx src/components/*.cxx INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} ${HEPMC_LIBRARIES} AthenaBaseComps GaudiKernel TrkFitterInterfaces TrkFitterUtils TrigFTKSimLib StoreGateLib SGtests AtlasDetDescr GeoPrimitives GeneratorObjects InDetIdentifier InDetReadoutGeometry InDetRIO_OnTrack TrkEventPrimitives TrkParameters TrkRIO_OnTrack TrkTruthData PixelConditionsData) + LINK_LIBRARIES ${EIGEN_LIBRARIES} ${HEPMC_LIBRARIES} AthenaBaseComps GaudiKernel TrkFitterInterfaces TrkFitterUtils TrigFTKSimLib StoreGateLib SGtests AtlasDetDescr GeoPrimitives GeneratorObjects InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry InDetRIO_OnTrack TrkEventPrimitives TrkParameters TrkRIO_OnTrack TrkTruthData PixelConditionsData) # Install files from the package: atlas_install_headers( TrigFTKTrackConverter ) diff --git a/Trigger/TrigTools/TrigFTKTrackConverter/src/TrigFTKClusterConverterTool.cxx b/Trigger/TrigTools/TrigFTKTrackConverter/src/TrigFTKClusterConverterTool.cxx index a77f682b302..f62957fb71a 100644 --- a/Trigger/TrigTools/TrigFTKTrackConverter/src/TrigFTKClusterConverterTool.cxx +++ b/Trigger/TrigTools/TrigFTKTrackConverter/src/TrigFTKClusterConverterTool.cxx @@ -30,7 +30,7 @@ #include "TrigFTKTrackConverter/TrigFTKTrackConverter.h" #include "TrigFTKTrackConverter/TrigFTKClusterConverterTool.h" -#include "InDetReadoutGeometry/PixelModuleDesign.h" +#include "PixelReadoutGeometry/PixelModuleDesign.h" #include "InDetReadoutGeometry/SCT_ModuleSideDesign.h" #include "InDetReadoutGeometry/SCT_BarrelModuleSideDesign.h" #include "InDetReadoutGeometry/SCT_ForwardModuleSideDesign.h" diff --git a/Trigger/TrigTools/TrigFTKTrackConverter/src/TrigFTKTrackConverter.cxx b/Trigger/TrigTools/TrigFTKTrackConverter/src/TrigFTKTrackConverter.cxx index 8b53af2d99a..d03efce28b0 100644 --- a/Trigger/TrigTools/TrigFTKTrackConverter/src/TrigFTKTrackConverter.cxx +++ b/Trigger/TrigTools/TrigFTKTrackConverter/src/TrigFTKTrackConverter.cxx @@ -31,7 +31,7 @@ #include "TrigFTKTrackConverter/TrigFTKClusterConverterTool.h" -#include "InDetReadoutGeometry/PixelModuleDesign.h" +#include "PixelReadoutGeometry/PixelModuleDesign.h" #include "InDetReadoutGeometry/SCT_ModuleSideDesign.h" #include "InDetReadoutGeometry/SCT_BarrelModuleSideDesign.h" #include "InDetReadoutGeometry/SCT_ForwardModuleSideDesign.h" diff --git a/Trigger/TrigTools/TrigInDetRecoTools/CMakeLists.txt b/Trigger/TrigTools/TrigInDetRecoTools/CMakeLists.txt index 1276f85f0c2..d2184aac482 100644 --- a/Trigger/TrigTools/TrigInDetRecoTools/CMakeLists.txt +++ b/Trigger/TrigTools/TrigInDetRecoTools/CMakeLists.txt @@ -29,6 +29,7 @@ atlas_depends_on_subdirs( PUBLIC InnerDetector/InDetConditions/InDetBeamSpotService InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelRedoutGeometry InnerDetector/InDetRecEvent/InDetRIO_OnTrack InnerDetector/InDetRecEvent/SiSPSeededTrackFinderData Tracking/TrkDetDescr/TrkSurfaces @@ -47,7 +48,7 @@ atlas_add_component( TrigInDetRecoTools src/*.cxx src/components/*.cxx INCLUDE_DIRS ${TDAQ-COMMON_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps GaudiKernel InDetPrepRawData SiSpacePoint InDetRecToolInterfaces TrkSpacePoint TrkTrack TrigInDetEvent TrigInDetPattRecoEvent TrigSteeringEvent AthenaKernel GeoPrimitives IRegionSelector ByteStreamCnvSvcBaseLib EventInfo InDetIdentifier InDetReadoutGeometry InDetRIO_OnTrack SiSPSeededTrackFinderData TrkSurfaces TrkEventPrimitives TrkParameters TrkRIO_OnTrack TrkSegment TrigTimeAlgsLib TrkEventUtils) + LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps GaudiKernel InDetPrepRawData SiSpacePoint InDetRecToolInterfaces TrkSpacePoint TrkTrack TrigInDetEvent TrigInDetPattRecoEvent TrigSteeringEvent AthenaKernel GeoPrimitives IRegionSelector ByteStreamCnvSvcBaseLib EventInfo InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry InDetRIO_OnTrack SiSPSeededTrackFinderData TrkSurfaces TrkEventPrimitives TrkParameters TrkRIO_OnTrack TrkSegment TrigTimeAlgsLib TrkEventUtils) # Install files from the package: atlas_install_headers( TrigInDetRecoTools ) diff --git a/Trigger/TrigTools/TrigInDetRecoTools/src/TrigL2LayerSetPredictorTool.cxx b/Trigger/TrigTools/TrigInDetRecoTools/src/TrigL2LayerSetPredictorTool.cxx index 0f93896df25..28fedc8e8ef 100644 --- a/Trigger/TrigTools/TrigInDetRecoTools/src/TrigL2LayerSetPredictorTool.cxx +++ b/Trigger/TrigTools/TrigInDetRecoTools/src/TrigL2LayerSetPredictorTool.cxx @@ -8,7 +8,7 @@ #include "InDetIdentifier/PixelID.h" #include "InDetReadoutGeometry/SiDetectorElement.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "InDetReadoutGeometry/SCT_DetectorManager.h" #include "TrigL2LayerSetPredictorTool.h" diff --git a/Trigger/TrigTools/TrigOnlineSpacePointTool/CMakeLists.txt b/Trigger/TrigTools/TrigOnlineSpacePointTool/CMakeLists.txt index c14b579defb..e039bfc686f 100644 --- a/Trigger/TrigTools/TrigOnlineSpacePointTool/CMakeLists.txt +++ b/Trigger/TrigTools/TrigOnlineSpacePointTool/CMakeLists.txt @@ -17,6 +17,7 @@ atlas_depends_on_subdirs( PRIVATE InnerDetector/InDetConditions/SCT_ConditionsTools InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelReadoutGeometry InnerDetector/InDetDetDescr/PixelCabling InnerDetector/InDetDetDescr/SCT_Cabling InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv @@ -44,7 +45,7 @@ atlas_add_component( TrigOnlineSpacePointTool src/*.cxx src/components/*.cxx INCLUDE_DIRS ${TDAQ-COMMON_INCLUDE_DIRS} - LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} AthenaBaseComps IRegionSelector InDetByteStreamErrors ByteStreamData ByteStreamData_test GaudiKernel InDetByteStreamErrors InDetIdentifier InDetReadoutGeometry SCT_CablingLib InDetRawData InDetPrepRawData SiClusterizationToolLib TrkPrepRawData TrigInDetEvent TrigSteeringEvent AtlasDetDescr ByteStreamCnvSvcBaseLib SCT_ConditionsData TrkSpacePoint TrigTimeAlgsLib PixelCablingLib ) + LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} AthenaBaseComps IRegionSelector InDetByteStreamErrors ByteStreamData ByteStreamData_test GaudiKernel InDetByteStreamErrors InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry SCT_CablingLib InDetRawData InDetPrepRawData SiClusterizationToolLib TrkPrepRawData TrigInDetEvent TrigSteeringEvent AtlasDetDescr ByteStreamCnvSvcBaseLib SCT_ConditionsData TrkSpacePoint TrigTimeAlgsLib PixelCablingLib ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/Trigger/TrigTools/TrigOnlineSpacePointTool/src/FastPixelClusterization.h b/Trigger/TrigTools/TrigOnlineSpacePointTool/src/FastPixelClusterization.h index 535329ec018..fe5cc8dc6ee 100644 --- a/Trigger/TrigTools/TrigOnlineSpacePointTool/src/FastPixelClusterization.h +++ b/Trigger/TrigTools/TrigOnlineSpacePointTool/src/FastPixelClusterization.h @@ -8,7 +8,7 @@ #include "TrkPrepRawData/PrepRawDataCLASS_DEF.h" #include "InDetRawData/PixelRDORawData.h" #include "InDetPrepRawData/PixelClusterCollection.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "Identifier/Identifier.h" #include "InDetCondTools/ISiLorentzAngleTool.h" diff --git a/Trigger/TrigTools/TrigOnlineSpacePointTool/src/PixelClusterCacheTool.cxx b/Trigger/TrigTools/TrigOnlineSpacePointTool/src/PixelClusterCacheTool.cxx index dbaa95d57af..a848d407a32 100644 --- a/Trigger/TrigTools/TrigOnlineSpacePointTool/src/PixelClusterCacheTool.cxx +++ b/Trigger/TrigTools/TrigOnlineSpacePointTool/src/PixelClusterCacheTool.cxx @@ -8,7 +8,7 @@ #include "InDetIdentifier/PixelID.h" #include "Identifier/IdentifierHash.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "InDetPrepRawData/SiClusterContainer.h" #include "InDetPrepRawData/PixelClusterCollection.h" diff --git a/Trigger/TrigTools/TrigOnlineSpacePointTool/src/TrigL2LayerNumberTool.cxx b/Trigger/TrigTools/TrigOnlineSpacePointTool/src/TrigL2LayerNumberTool.cxx index 4be575d6664..e96d3939d57 100644 --- a/Trigger/TrigTools/TrigOnlineSpacePointTool/src/TrigL2LayerNumberTool.cxx +++ b/Trigger/TrigTools/TrigOnlineSpacePointTool/src/TrigL2LayerNumberTool.cxx @@ -5,7 +5,7 @@ #include "InDetIdentifier/SCT_ID.h" #include "InDetIdentifier/PixelID.h" #include "InDetReadoutGeometry/SiDetectorElement.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "InDetReadoutGeometry/SCT_DetectorManager.h" #include "TrigL2LayerNumberTool.h" diff --git a/graphics/GeometryJiveXML/CMakeLists.txt b/graphics/GeometryJiveXML/CMakeLists.txt index 8e57bf2cbdd..01e7a782a00 100644 --- a/graphics/GeometryJiveXML/CMakeLists.txt +++ b/graphics/GeometryJiveXML/CMakeLists.txt @@ -15,6 +15,7 @@ atlas_depends_on_subdirs( PUBLIC GaudiKernel InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelReadoutGeometry LArCalorimeter/LArGeoModel/LArReadoutGeometry MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry MuonSpectrometer/MuonIdHelpers @@ -28,7 +29,7 @@ atlas_add_component( GeometryJiveXML src/*.cxx src/components/*.cxx INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps JiveXMLLib CaloDetDescrLib StoreGateLib SGtests GaudiKernel InDetIdentifier InDetReadoutGeometry LArReadoutGeometry MuonReadoutGeometry MuonIdHelpersLib TileDetDescr ) + LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps JiveXMLLib CaloDetDescrLib StoreGateLib SGtests GaudiKernel InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry LArReadoutGeometry MuonReadoutGeometry MuonIdHelpersLib TileDetDescr ) # Install files from the package: atlas_install_headers( GeometryJiveXML ) diff --git a/graphics/GeometryJiveXML/src/GeometryWriter.cxx b/graphics/GeometryJiveXML/src/GeometryWriter.cxx index 709e15434f2..0c245c80154 100755 --- a/graphics/GeometryJiveXML/src/GeometryWriter.cxx +++ b/graphics/GeometryJiveXML/src/GeometryWriter.cxx @@ -20,7 +20,7 @@ // #include "GeoModelKernel/GeoTube.h" // #include "GeoModelKernel/GeoTrd.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "InDetReadoutGeometry/SCT_DetectorManager.h" #include "InDetReadoutGeometry/SiDetectorElement.h" #include "InDetReadoutGeometry/SiDetectorElementCollection.h" diff --git a/graphics/VP1/VP1Systems/VP12DGeometrySystems/CMakeLists.txt b/graphics/VP1/VP1Systems/VP12DGeometrySystems/CMakeLists.txt index b0ff149c010..30afa263496 100644 --- a/graphics/VP1/VP1Systems/VP12DGeometrySystems/CMakeLists.txt +++ b/graphics/VP1/VP1Systems/VP12DGeometrySystems/CMakeLists.txt @@ -15,6 +15,7 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/IdDictDetDescr InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelReadoutGeometry LArCalorimeter/LArGeoModel/LArReadoutGeometry MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry MuonSpectrometer/MuonIdHelpers @@ -30,5 +31,5 @@ atlas_add_library( VP12DGeometrySystems PUBLIC_HEADERS VP12DGeometrySystems INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} LINK_LIBRARIES ${EIGEN_LIBRARIES} GeoPrimitives VP1Base StoreGateLib SGtests CaloDetDescrLib MuonIdHelpersLib - PRIVATE_LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} IdDictDetDescr InDetIdentifier InDetReadoutGeometry LArReadoutGeometry MuonReadoutGeometry TileDetDescr ) + PRIVATE_LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} IdDictDetDescr InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry LArReadoutGeometry MuonReadoutGeometry TileDetDescr ) diff --git a/graphics/VP1/VP1Systems/VP12DGeometrySystems/src/StoreGateGeometryReader.cxx b/graphics/VP1/VP1Systems/VP12DGeometrySystems/src/StoreGateGeometryReader.cxx index d804f34d9cc..5fc71871065 100644 --- a/graphics/VP1/VP1Systems/VP12DGeometrySystems/src/StoreGateGeometryReader.cxx +++ b/graphics/VP1/VP1Systems/VP12DGeometrySystems/src/StoreGateGeometryReader.cxx @@ -14,7 +14,7 @@ #include "GeoModelKernel/GeoPVConstLink.h" #include "GeoModelKernel/GeoTrd.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "InDetReadoutGeometry/SCT_DetectorManager.h" #include "InDetReadoutGeometry/SiDetectorElement.h" #include "InDetReadoutGeometry/SiDetectorElementCollection.h" diff --git a/graphics/VP1/VP1Systems/VP1RawDataSystems/CMakeLists.txt b/graphics/VP1/VP1Systems/VP1RawDataSystems/CMakeLists.txt index eb6cf5aba69..7509b5a495d 100644 --- a/graphics/VP1/VP1Systems/VP1RawDataSystems/CMakeLists.txt +++ b/graphics/VP1/VP1Systems/VP1RawDataSystems/CMakeLists.txt @@ -15,6 +15,7 @@ atlas_depends_on_subdirs( PUBLIC GaudiKernel InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelReadoutGeometry InnerDetector/InDetRawEvent/InDetBCM_RawData InnerDetector/InDetRawEvent/InDetRawData graphics/VP1/VP1HEPVis @@ -43,5 +44,5 @@ atlas_add_library( VP1RawDataSystems VP1RawDataSystems/*.h src/*.h src/*.cxx src PRIVATE_INCLUDE_DIRS ${COIN3D_INCLUDE_DIRS} FILES LUCID_RawEvent/LUCID_Digit.h LINK_LIBRARIES ${EIGEN_LIBRARIES} GeoPrimitives VP1Base GL - PRIVATE_LINK_LIBRARIES ${COIN3D_LIBRARIES} ${GEOMODELCORE_LIBRARIES} EventPrimitives LUCID_RawEvent GaudiKernel InDetIdentifier InDetReadoutGeometry InDetBCM_RawData InDetRawData VP1HEPVis VP1Utils ) + PRIVATE_LINK_LIBRARIES ${COIN3D_LIBRARIES} ${GEOMODELCORE_LIBRARIES} EventPrimitives LUCID_RawEvent GaudiKernel InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry InDetBCM_RawData InDetRawData VP1HEPVis VP1Utils ) diff --git a/graphics/VP1/VP1Systems/VP1RawDataSystems/src/VP1RawDataHandle_PixelRDO.cxx b/graphics/VP1/VP1Systems/VP1RawDataSystems/src/VP1RawDataHandle_PixelRDO.cxx index aca8c915228..9ee440a40a8 100644 --- a/graphics/VP1/VP1Systems/VP1RawDataSystems/src/VP1RawDataHandle_PixelRDO.cxx +++ b/graphics/VP1/VP1Systems/VP1RawDataSystems/src/VP1RawDataHandle_PixelRDO.cxx @@ -17,7 +17,7 @@ #include "VP1Utils/VP1DetInfo.h" #include "VP1Utils/VP1LinAlgUtils.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "InDetReadoutGeometry/SiDetectorElement.h" #include "InDetRawData/PixelRDORawData.h" #include "InDetIdentifier/PixelID.h" diff --git a/graphics/VP1/VP1Systems/VP1TrackSystems/CMakeLists.txt b/graphics/VP1/VP1Systems/VP1TrackSystems/CMakeLists.txt index 3a7af0a14da..044e0424a2e 100644 --- a/graphics/VP1/VP1Systems/VP1TrackSystems/CMakeLists.txt +++ b/graphics/VP1/VP1Systems/VP1TrackSystems/CMakeLists.txt @@ -29,6 +29,7 @@ atlas_depends_on_subdirs( ForwardDetectors/ForwardSimulation/ForwardRegion_SimEv InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelReadoutGeometry InnerDetector/InDetRecEvent/InDetPrepRawData InnerDetector/InDetRecEvent/InDetRIO_OnTrack InnerDetector/InDetSimEvent @@ -83,7 +84,7 @@ atlas_add_library( VP1TrackSystems VP1TrackSystems/*.h src/*.cxx MuonIdHelpersLib MuonRecHelperToolsLib Qt5::Core Qt5::Gui PRIVATE_LINK_LIBRARIES ${COIN3D_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} AthContainers AtlasDetDescr EventPrimitives - ForwardRegion_SimEv InDetIdentifier InDetReadoutGeometry InDetPrepRawData + ForwardRegion_SimEv InDetIdentifier InDetReadoutGeometry PixelReadoutGeometry InDetPrepRawData InDetRIO_OnTrack InDetSimEvent MuonReadoutGeometry MuonChamberT0s MuonPrepRawData MuonRIO_OnTrack MuonSegment MuonSimEvent Particle TrkDetDescrUtils TrkDetElementBase TrkVolumes TrkCompetingRIOsOnTrack diff --git a/graphics/VP1/VP1Systems/VP1TrackSystems/src/SimHitHandle_SiHit.cxx b/graphics/VP1/VP1Systems/VP1TrackSystems/src/SimHitHandle_SiHit.cxx index 4fda1569d55..1e4b1ca4679 100644 --- a/graphics/VP1/VP1Systems/VP1TrackSystems/src/SimHitHandle_SiHit.cxx +++ b/graphics/VP1/VP1Systems/VP1TrackSystems/src/SimHitHandle_SiHit.cxx @@ -20,7 +20,7 @@ #include "InDetSimEvent/SiHit.h" #include "InDetReadoutGeometry/SiDetectorElement.h" #include "InDetReadoutGeometry/SCT_DetectorManager.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "InDetIdentifier/PixelID.h" #include "InDetIdentifier/SCT_ID.h" #include "VP1TrackSystems/VP1TrackSanity.h" diff --git a/graphics/VP1/VP1Utils/CMakeLists.txt b/graphics/VP1/VP1Utils/CMakeLists.txt index 4745154d507..d3b3db5f610 100644 --- a/graphics/VP1/VP1Utils/CMakeLists.txt +++ b/graphics/VP1/VP1Utils/CMakeLists.txt @@ -27,6 +27,7 @@ atlas_depends_on_subdirs( DetectorDescription/Identifier InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry + InnerDetector/InDetDetDescr/PixelReadoutGeometry InnerDetector/InDetRecEvent/InDetRIO_OnTrack LArCalorimeter/LArGeoModel/LArReadoutGeometry MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry @@ -62,7 +63,7 @@ atlas_add_library( VP1Utils VP1Utils/*.h src/*.cxx src/*.cpp PRIVATE_LINK_LIBRARIES ${HEPPDT_LIBRARIES} ${COIN3D_LIBRARIES} ${EIGEN_LIBRARIES} CaloIdentifier CaloTTDetDescr CxxUtils AtlasDetDescr GeoModelUtilities GeoSpecialShapes Identifier InDetIdentifier - InDetReadoutGeometry InDetRIO_OnTrack LArReadoutGeometry + InDetReadoutGeometry PixelReadoutGeometry InDetRIO_OnTrack LArReadoutGeometry MuonReadoutGeometry MuonRIO_OnTrack TileDetDescr TrkSurfaces TrkRIO_OnTrack VP1HEPVis ) endif() diff --git a/graphics/VP1/VP1Utils/src/VP1DetInfo.cxx b/graphics/VP1/VP1Utils/src/VP1DetInfo.cxx index 3e02f9e0bb4..2c940533699 100644 --- a/graphics/VP1/VP1Utils/src/VP1DetInfo.cxx +++ b/graphics/VP1/VP1Utils/src/VP1DetInfo.cxx @@ -22,7 +22,7 @@ #include "GeoModelKernel/GeoPVConstLink.h" #include "InDetReadoutGeometry/TRT_DetectorManager.h" -#include "InDetReadoutGeometry/PixelDetectorManager.h" +#include "PixelReadoutGeometry/PixelDetectorManager.h" #include "InDetReadoutGeometry/SCT_DetectorManager.h" //#include "InDetServMatGeoModel/InDetServMatManager.h" #include "MuonReadoutGeometry/MuonDetectorManager.h" -- GitLab