#ifndef IECALGeomId_hxx_seen #define IECALGeomId_hxx_seen #include "IGeometryId.hxx" namespace COMET { /// Define the geometry identifiers for elements in the COMET geometry. namespace GeomId { /// Define the ECAL specific geometry identifiers. namespace ECAL { /// Define a geometry identifier to the entire ECAL detector. IGeometryId Detector(); /// A complete geometry Id IGeometryId Module(int block, int wrapper, int mod_crystal, int cry_out_wrapper, int cry_in_wrapper, int crystal, int apd, int sensor, int window); /// A minimal geometry Id for a meaningful ECAL module (block, crystal) IGeometryId Module(int mod_block, int mod_crystal); /// Check if the id is for the ECAL. bool IsECAL(IGeometryId id); /// Check if the id indecates crystal itself, not wrappings, apds... bool IsCrystal(IGeometryId id); /// Check if the both ids correspond to the same module (block, apd) bool IsSameModule(IGeometryId id1, IGeometryId id2); /// Return Block Id int GetBlockId(IGeometryId id); /// Return Crystal Id int GetCrystalId(IGeometryId id); } } } #endif