00001
00002 #ifndef __LASGLOBALDATA_H
00003 #define __LASGLOBALDATA_H
00004
00005 #include<vector>
00006 #include<iostream>
00007
00028 template <class T>
00029 class LASGlobalData {
00030
00031 public:
00032
00033 enum Subdetector { TECPLUS, TECMINUS, TIB, TOB };
00034 enum TecRing { RING4, RING6 };
00035 enum Beam { BEAM0, BEAM1, BEAM2, BEAM3, BEAM4, BEAM5, BEAM6, BEAM7 };
00036 enum TecDisk { DISK1, DISK2, DISK3, DISK4, DISK5, DISK6, DISK7, DISK8, DISK9 };
00037 enum TibTobPosition { MINUS3, MINUS2, MINUS1, PLUS1, PLUS2, PLUS3 };
00038 LASGlobalData();
00039 T& GetTECEntry( int subdetector, int tecRing, int beam, int tecDisk );
00040 T& GetTIBTOBEntry( int subdetector, int beam, int tibTobPosition );
00041 T& GetTEC2TECEntry( int subdetector, int beam, int tecDisk );
00042 void SetTECEntry( int subdetector, int tecRing, int beam, int tecDisk, T );
00043 void SetTIBTOBEntry( int subdetector, int beam, int tibTobPosition, T );
00044 void SetTEC2TECEntry( int subdetector, int beam, int tecDisk, T );
00045
00046
00047 private:
00048 void Init( void );
00049 std::vector<std::vector<std::vector<T> > > tecPlusData;
00050 std::vector<std::vector<std::vector<T> > > tecMinusData;
00051 std::vector<std::vector<T> > tecPlusATData;
00052 std::vector<std::vector<T> > tecMinusATData;
00053 std::vector<std::vector<T> > tibData;
00054 std::vector<std::vector<T> > tobData;
00055
00056 };
00057
00058
00059 #endif