Go to the documentation of this file.00001 #ifndef L1Trigger_RPCPacData_h
00002 #define L1Trigger_RPCPacData_h
00003
00004
00005
00006
00007
00017 #include <vector>
00018 #include <string>
00019 #include <bitset>
00020 #include <map>
00021 #include <list>
00022 #include <iostream>
00023 #include "CondFormats/L1TObjects/interface/RPCPattern.h"
00024
00025 #include "L1Trigger/RPCTrigger/interface/RPCPatternsParser.h"
00026 #include "L1Trigger/RPCTrigger/interface/TPatternsGroup.h"
00027 #include "L1Trigger/RPCTrigger/interface/TEPatternsGroup.h"
00028 #include "L1Trigger/RPCTrigger/interface/TTPatternsGroup.h"
00029 #include "CondFormats/L1TObjects/interface/L1RPCConfig.h"
00030
00031
00032
00033 class RPCPacData {
00034 friend class RPCPac;
00035
00036 public:
00037
00038 RPCPacData(std::string patFilesDir, int m_tower, int logSector, int logSegment);
00039
00040 RPCPacData(const RPCPattern::RPCPatVec &patVec, const RPCPattern::TQualityVec &qualVec);
00041
00042 RPCPacData(const L1RPCConfig * patConf, const int tower, const int sector, const int segment);
00043
00044 void init(const RPCPatternsParser& parser, const RPCConst::l1RpcConeCrdnts& coneCrdnts);
00045
00046
00047
00048 bool getEPatternsGroupShape(int groupNum, int logPlane, int logStripNum);
00049
00050 bool getTPatternsGroupShape(int logPlane, int logStripNum);
00051
00052 int getPatternsCount();
00053
00054 RPCPattern getPattern(int patNum) const;
00055
00056 int getPatternsGroupCount();
00057
00058 std::string getPatternsGroupDescription(int patternGroupNum);
00059
00060 private:
00061
00062
00063
00064 typedef std::list<TEPatternsGroup> TEPatternsGroupList;
00065 private:
00066
00067 short m_RefGroupCount;
00068
00069 short m_MaxQuality;
00070
00074 RPCPattern::RPCPatVec m_PatternsVec;
00075
00084 RPCConst::TQualityTabsVec m_QualityTabsVec;
00085
00088 TEPatternsGroupList m_EnergeticPatternsGroupList;
00089
00091 TTPatternsGroup m_TrackPatternsGroup;
00092
00093 private:
00100 void insertQualityRecord(unsigned int qualityTabNumber,
00101 unsigned short firedPlanes, short quality);
00102
00106 void insertPatterns(const RPCPattern::RPCPatVec &pattern, const int tower = 99, const int sector = 99, const int segment = 99 );
00107
00113
00114
00121
00122 };
00123 #endif