00001 #ifndef ATHENA_UTIL_DETECTOR_INFO_V1_H
00002 #define ATHENA_UTIL_DETECTOR_INFO_V1_H
00003
00004 #include <iostream>
00005 #include "DetectorInfoDef_v1.h"
00006
00007 class DetectorInfo_v1
00008 {
00009 public:
00010 DetectorInfo_v1() : m_det(0) {};
00011 ~DetectorInfo_v1() {};
00012 DetectorInfo_v1(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 isAtlasLar() { return (m_det & DI_V1_Atlas_Lar); }
00019 inline bool isAtlasLarEM() { return (m_det & DI_V1_Atlas_Lar_EM); }
00020 inline bool isAtlasLarHEC() { return (m_det & DI_V1_Atlas_Lar_HEC); }
00021 inline bool isAtlasLarFCal() { return (m_det & DI_V1_Atlas_Lar_FCal); }
00022 inline bool isAtlasTile() { return (m_det & DI_V1_Atlas_Tile); }
00023
00024 inline bool isEMSampling() { return (m_det & DI_V1_EM_sampling); }
00025 inline bool isEMBarrel() { return (m_det & DI_V1_EM_barrel); }
00026 inline bool isEMEndcap() { return (m_det & DI_V1_EM_endcap); }
00027 inline bool isEMEndcapInner() { return (m_det & DI_V1_EM_endcap_inner); }
00028 inline bool isEMEndcapOuter() { return (m_det & DI_V1_EM_endcap_outer); }
00029
00030 inline bool isTileSampling() { return (m_det & DI_V1_Tile_sampling); }
00031 inline bool isTileTile() { return (m_det & DI_V1_Tile_tile); }
00032 inline bool isTileBarrel() { return (m_det & DI_V1_Tile_barrel); }
00033 inline bool isTileExtBarrel() { return (m_det & DI_V1_Tile_extbarrel); }
00034 inline bool isTileGap() { return (m_det & DI_V1_Tile_gap); }
00035 inline bool isTileGapScin() { return (m_det & DI_V1_Tile_gapscin); }
00036
00037 inline unsigned getEMSampling() { return ((m_det & DI_V1_EM_sampling)>>DI_V1_EM_sampling_SHIFT); }
00038 inline unsigned getTileSampling() { return ((m_det & DI_V1_Tile_sampling)>>DI_V1_Tile_sampling_SHIFT); }
00039
00040 void dump(unsigned f=0);
00041
00042 private:
00043 unsigned m_det;
00044 };
00045
00046 #endif // ATHENA_UTIL_DETECTOR_INFO_V1_H