Go to the documentation of this file.00001 #ifndef HcalLogicalMap_h
00002 #define HcalLogicalMap_h
00003
00004 #include "CondFormats/HcalObjects/interface/HcalMappingEntry.h"
00005 #include "CondFormats/HcalObjects/interface/HcalElectronicsMap.h"
00006 #include <vector>
00007 class HcalTopology;
00008
00009 class HcalLogicalMap {
00010 public:
00011
00012 HcalLogicalMap(const HcalTopology*,
00013 std::vector<HBHEHFLogicalMapEntry>&,
00014 std::vector<HOHXLogicalMapEntry>&,
00015 std::vector<CALIBLogicalMapEntry>&,
00016 std::vector<ZDCLogicalMapEntry>&,
00017 std::vector<HTLogicalMapEntry>&,
00018 std::vector<uint32_t>&,
00019 std::vector<uint32_t>&,
00020 std::vector<uint32_t>&,
00021 std::vector<uint32_t>&,
00022 std::vector<uint32_t>&,
00023 std::vector<uint32_t>&,
00024 std::vector<uint32_t>&,
00025 std::vector<uint32_t>&);
00026
00027 ~HcalLogicalMap( );
00028
00029 void checkHashIds();
00030 void checkElectronicsHashIds() ;
00031 void checkIdFunctions();
00032 void printMap( unsigned int mapIOV );
00033 HcalElectronicsMap generateHcalElectronicsMap();
00034 const DetId getDetId(const HcalElectronicsId&);
00035 const HcalFrontEndId getHcalFrontEndId(const DetId&);
00036 uint32_t static makeEntryNumber(bool,int,int);
00037
00038 private:
00039
00040 void printHBEFMap( FILE* hbefmapfile );
00041 void printHOXMap( FILE* hoxmapfile );
00042 void printCalibMap( FILE* calibmapfile );
00043 void printZDCMap( FILE* zdcmapfile );
00044 void printHTMap( FILE* htmapfile );
00045
00046 unsigned int mapIOV_;
00047
00048 std::vector<HBHEHFLogicalMapEntry> HBHEHFEntries_;
00049 std::vector<HOHXLogicalMapEntry> HOHXEntries_;
00050 std::vector<CALIBLogicalMapEntry> CALIBEntries_;
00051 std::vector<ZDCLogicalMapEntry> ZDCEntries_;
00052 std::vector<HTLogicalMapEntry> HTEntries_;
00053 std::vector<uint32_t> LinearIndex2Entry_;
00054 std::vector<uint32_t> HbHash2Entry_;
00055 std::vector<uint32_t> HeHash2Entry_;
00056 std::vector<uint32_t> HfHash2Entry_;
00057 std::vector<uint32_t> HtHash2Entry_;
00058 std::vector<uint32_t> HoHash2Entry_;
00059 std::vector<uint32_t> HxCalibHash2Entry_;
00060 std::vector<uint32_t> ZdcHash2Entry_;
00061
00062 const HcalTopology* topo_;
00063 };
00064
00065 #endif