00001 #ifndef ATHENA_UTIL_DETECTOR_INFO_H 00002 #define ATHENA_UTIL_DETECTOR_INFO_H 00003 00004 #include <iostream> 00005 #include "DetectorInfoDef.h" 00006 00007 class DetectorInfo 00008 { 00009 public: 00010 DetectorInfo() : m_det(0) {}; 00011 ~DetectorInfo() {}; 00012 DetectorInfo(unsigned d) : m_det(d) {}; 00013 00014 inline void set(unsigned d) { m_det = d; } 00015 inline void reset() { m_det = 0; } 00016 inline unsigned get() { return m_det; } 00017 00018 inline bool isLArEM() { return (m_det & DI_Atlas_Lar_EM); } 00019 inline bool isLArHEC() { return (m_det & DI_Atlas_Lar_HEC); } 00020 inline bool isLArFCal() { return (m_det & DI_Atlas_Lar_FCal); } 00021 inline bool isTile() { return (m_det & DI_Atlas_Tile); } 00022 00023 inline bool isLArEMBarrel() { return (m_det & DI_EM_barrel); } 00024 inline bool isLArEMEndcap() { return (m_det & (DI_EM_endcap_inner | DI_EM_endcap_outer)); } 00025 inline bool isLArEMEndcapInner() { return (m_det & DI_EM_endcap_inner); } 00026 inline bool isLArEMEndcapOuter() { return (m_det & DI_EM_endcap_outer); } 00027 00028 inline bool isTileBarrel() { return (m_det & DI_Tile_barrel); } 00029 inline bool isTileExtBarrel() { return (m_det & DI_Tile_extbarrel); } 00030 inline bool isTileGap() { return (m_det & DI_Tile_gap); } 00031 inline bool isTileGapScin() { return (m_det & DI_Tile_gapscin); } 00032 00033 inline unsigned getLArEMSampling() { return ((m_det & DI_EM_sampling)>>DI_EM_sampling_SHIFT); } 00034 inline unsigned getLArHECSampling() { return ((m_det & DI_HEC_sampling)>>DI_HEC_sampling_SHIFT); } 00035 inline unsigned getLArFCalSampling() { return ((m_det & DI_FCal_sampling)>>DI_FCal_sampling_SHIFT); } 00036 inline unsigned getTileSampling() { return ((m_det & DI_Tile_sampling)>>DI_Tile_sampling_SHIFT); } 00037 00038 void dump(unsigned f=0); 00039 00040 private: 00041 unsigned m_det; 00042 }; 00043 00044 #endif // ATHENA_UTIL_DETECTOR_INFO_H