00001 #ifndef L1Trigger_RPCLogCone_h
00002 #define L1Trigger_RPCLogCone_h
00003
00013 #include <vector>
00014 #include <string>
00015 #include <set>
00016 #include <map>
00017
00018
00019
00020 #include "L1Trigger/RPCTrigger/interface/RPCLogHit.h"
00021
00022 #include "L1Trigger/RPCTrigger/interface/RPCConst.h"
00023
00024
00025 class RPCLogCone {
00026 public:
00027
00028
00034 typedef std::map<int, std::vector<int> > TLogPlane;
00035
00037 RPCLogCone();
00038
00040 RPCLogCone(int m_tower, int logSector, int logSegment);
00041
00043 RPCLogCone(const RPCLogHit &logHit);
00044
00046 RPCLogCone(const unsigned long long &pat, int tower, int logSector, int logSegment);
00047
00049 unsigned long long getCompressedCone();
00050
00052 bool addLogHit(const RPCLogHit &logHit);
00053
00054 TLogPlane getLogPlane(int logPlane) const;
00055
00057 int getHitsCnt(int logPlane) const;
00058
00060 void setLogStrip(int logPlane, int logStripNum, int m_digiIdx);
00061
00063 void setLogStrip(int logPlane, int logStripNum);
00064
00066 bool getLogStripState(int logPlane, unsigned int logStripNum) const;
00067
00070 std::vector<int> getLogStripDigisIdxs(int logPlane, unsigned int logStripNum) const;
00071
00072 void setMuonCode(int code);
00073
00074 int getMuonCode() const;
00075
00076 void setMuonSign(int sign);
00077
00078 int getMuonSign() const;
00079
00081 void shift(int pos);
00082
00083 bool isPlaneFired(int logPlane) const;
00084
00085 int getFiredPlanesCnt() const;
00086
00088 int possibleTrigger() const;
00089
00090 int getTower() const;
00091
00092 int getLogSector() const;
00093
00094 int getLogSegment() const;
00095
00096 RPCConst::l1RpcConeCrdnts getConeCrdnts() const;
00097
00098 void setIdx(int index);
00099
00100 int getIdx() const;
00101
00102 std::string toString() const;
00103
00104
00105
00106
00107 private:
00109 std::vector<TLogPlane> m_LogPlanesVec;
00110
00114 std::vector<std::vector<int> > m_DigisIdx;
00115
00116 RPCConst::l1RpcConeCrdnts m_ConeCrdnts;
00117
00118 int m_MuonCode;
00119
00120 int m_MuonSign;
00121
00123 int m_Index;
00124 };
00125
00126 typedef std::vector<RPCLogCone> L1RpcLogConesVec;
00127 #endif
00128