36 patFileName = patFilesDir +
"pacPat_t" + rpcconst.
intToString(tower) +
"sc" + rpcconst.
intToString(logSector) +
"sg" +
45 parser.
parse(patFileName);
46 init(parser, coneCrds);
56 for (
unsigned int i = 0;
i < qualVec.size(); ++
i) {
58 std::bitset<RPCConst::m_LOGPLANES_COUNT> qualBits(quality.
m_FiredPlanes);
59 unsigned short firedPlanes = qualBits.to_ulong();
69 for (
unsigned int iqual = 0; iqual < rpcconf->
m_quals.size(); iqual++) {
70 if (rpcconf->
m_quals[iqual].m_tower != tower || rpcconf->
m_quals[iqual].m_logsector != sector ||
71 rpcconf->
m_quals[iqual].m_logsegment != segment)
75 std::bitset<RPCConst::m_LOGPLANES_COUNT> qualBits(quality.
m_FiredPlanes);
76 unsigned short firedPlanes = qualBits.to_ulong();
99 throw RPCException(
"GetPattren(): Patterns vec is empty, mayby it was not filled!");
130 return iEGroup->m_GroupShape.getLogStripState(logPlane, bitNum);
132 throw RPCException(
"getEPatternsGroupShape(): groupNum to big!");
141 if (patternGroupNum == -1)
147 if (i == patternGroupNum)
148 ret =
"EGroup #" + rpcconst.
intToString(i) + iEGroup->getGroupDescription();
153 throw RPCException(
"getEPatternsGroupShape(): groupNum to big!");
173 throw RPCException(
"insertQualityRecord(): wrong qualityTabNumber");
181 bool ignorePos =
false;
182 if (tower == 99 || sector == 99 || segment == 99)
187 for (RPCPattern::RPCPatVec::const_iterator patIt = patternsVec.begin(); patIt != patternsVec.end(); patIt++) {
189 (patIt->getTower() != tower || patIt->getLogSector() != sector || patIt->getLogSegment() != segment))
195 TEPatternsGroupList::iterator iEGroup;
197 if (iEGroup->check(patIt))
203 ", code: " + rpcconst.
intToString(patIt->getCode()) +
", dir: " + rpcconst.
intToString(patIt->getSign()) +
204 ", refGroup: " + rpcconst.
intToString(patIt->getRefGroup()) +
205 ", qualityTabNumber: " + rpcconst.
intToString(patIt->getQualityTabNumber()));
208 iEGroup->addPattern(patIt);
210 throw RPCException(
"InsertPattern(): unsupported pattern type");
225 std::bitset<RPCConst::m_LOGPLANES_COUNT> qualBits(quality.
m_FiredPlanes);
226 unsigned short firedPlanes = qualBits.to_ulong();
std::string getPatternsGroupDescription(int patternGroupNum)
void insertPatterns(const RPCPattern::RPCPatVec &pattern, const int tower=99, const int sector=99, const int segment=99)
std::string getGroupDescription() const
The coordinates of Logic Cone: m_Tower, m_LogSector, m_LogSegment.
ret
prodAgent to be discontinued
bool getLogStripState(int logPlane, unsigned int logStripNum) const
void addPattern(const RPCPattern::RPCPatVec::const_iterator &pattern)
RPCPattern::TQualityVec m_quals
TTPatternsGroup m_TrackPatternsGroup
Here patters used in "baseline" algorith are stored.
void setGroupDescription(std::string groupDescription)
static const TPatternType PAT_TYPE_T
unsigned char m_FiredPlanes
std::vector< RPCPattern > RPCPatVec
void insertQualityRecord(unsigned int qualityTabNumber, unsigned short firedPlanes, short quality)
RPCConst::TQualityTabsVec m_QualityTabsVec
std::string intToString(int number)
Converts inteager number to string.
RPCPattern::RPCPatVec m_PatternsVec
const RPCPattern::RPCPatVec & getPatternsVec(const RPCConst::l1RpcConeCrdnts &coneCrds) const
RPCPattern getPattern(int patNum) const
std::vector< TQuality > TQualityVec
TEPatternsGroupList m_EnergeticPatternsGroupList
static const TPatternType PAT_TYPE_E
bool getEPatternsGroupShape(int groupNum, int logPlane, int logStripNum)
static const int m_LOGPLANES_COUNT
Max Logic Planes Count in trigger towers.
const RPCPattern::TQualityVec & getQualityVec() const
std::vector< short > TQualityTab
int getPatternsGroupCount()
RPCPacData(std::string patFilesDir, int m_tower, int logSector, int logSegment)
Group of paterns for "improved"("energetic") algorithm. In current implementation all patterns in giv...
bool getTPatternsGroupShape(int logPlane, int logStripNum)
RPCPattern::RPCPatVec m_pats
void parse(std::string fileName)
void init(const RPCPatternsParser &parser, const RPCConst::l1RpcConeCrdnts &coneCrdnts)
Power< A, B >::type pow(const A &a, const B &b)